第7次作业--访问权限、对象使用

题目一

在作业5的基础上,再创建一个柱体类,包含矩形对象、高和体积等三个成员变量,一个构造方法进行成员变量初始化,和计算体积、换底两个功能方法,在主类中输入长、宽、高,计算柱体体积,输入新的长、宽、高,创建新的矩形对象,并利用换底方法换底,再次计算柱体体积。

代码

Rect.java

/**
 * 一个类中有三个三个成员变量,两个方法
 * a,b,area变量分别表示长,宽,面积
 * 构造方法用于修改成员变量的值,getArea()计算矩形面积;
 */
package jj;

public class Rect {
    double a;              //成员变量
    double b;
    double area;
    Rect(double a,double b){   //构造方法
        this.a=a;
        this.b=b;
    }
    double getArea(){        //计算面积的方法
        return area=a*b;
    }
    }

Cone.java

/**
 * 一个类三个成员变量,三个方法
 * h,v,rect分别代表高,体积,矩形面积
 * 构造方法修改成员变量,修改器进行换底,getv()计算体积
 */
package jj;

public class Cone {
    double h;         //成员变量
    double v;
    Rect rect;
    Cone (double h,Rect rect){//构造方法
        this.h=h;
        this.rect=rect;
    }
    public void setRect(Rect rect){//修改器
        this.rect=rect;
    }
    public double getv(){         //计算体积
        return h*rect.getArea();
    }
}

A.java

/**
 * 一个主类,一个主方法
 * 计算体积,调用矩形对象的修改器换底,换底后的体积;
 */
package jj;
/**
 * 
 *
 */
public class A {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Cone sc=new Cone (10,new Rect(3,2));
       /* 
        * 创建四棱柱对象并为底的长,宽和高赋值(长3宽2高10)
        */
        System.out.println("四棱柱体积是:"+sc.getv());
           sc.setRect(new Rect(5,2));
           System.out.print("换底后四棱柱体积是:"+sc.getv());
    }

}

运算结果

 

 

 题目二

设计名为MyInteger的类,它包括: int型数据域value 一个构造方法,当指定int值时,创建MyInteger对象 数据域value的访问器和修改器 isEven( )和isOdd( )方法,如果当前对象是偶数或奇数,返回true 类方法isPrime(MyInteger i),判断指定的值是否为素数,返回true 在主类中创建MyInteger对象,验证MyInteger类中各方法。

MyInteger.java

/**
 * 一个类中有一个成员变量,六个方法
 * value被赋予数据
 * 构造方法初始化,value的访问器和修改器,isEven判断是否为偶数,isOdd判断是否为奇数,isPrime判断是否为素数;
 */
package gg;

public class MyInteger {
    static int value;
    MyInteger(int value){        //创建构造方法
        this.value=value;
        
}
    public int getValue() {      //访问器
        return value;
    }
    public void setValue(int value) {    //修改器
        this.value = value;}
        public boolean isEven() { //判断是否为偶数的方法
             if(value % 2 == 0)
                return true;
            return false;
            }
         
         public boolean isOdd() { //判断是否为奇数的方法
             if(value % 2 != 0)
                    return true;
                return false;}
         public static boolean isPrime(MyInteger i){//判断是否为素数
             for (int m  = 2; m<= value / 2; m++) {
                    if (value % m == 0)
                        return false;
                }
                return true;
                }
}

Work.java

/**
 * 一个主类,一个主 方法
 * 调用方法,输出结果,利用修改器修改value的值
 */
package gg;
import java.util.*;
public class Work {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
         Scanner reader=new Scanner(System.in);
            System.out.println("请输入一个数:");
            int a=reader.nextInt();
            MyInteger t=new MyInteger(a); //创建对象
            System.out.println("value是否为偶数:"+t.isEven()); //调用方法,输出结果
            System.out.println("value是否为奇数:"+t.isOdd());
            System.out.println("value是否为素数:"+t.isPrime(t));
            t.setValue(12);//利用修改器修改value的值
            System.out.println("value是否为奇数:"+t.isOdd());
            System.out.println("vaule是否为偶数:"+t.isEven());
            System.out.println("value是否为素数:"+MyInteger.isPrime(t));
    }

}

运算结果

 

posted @ 2019-09-22 11:45  王庆祥  阅读(125)  评论(0编辑  收藏  举报