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

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

代码及注释:

package Sum;
import java.util.*;
class Rect {
    double length;
    double width;
    double perimeter;
    double area;           //长宽面积周长成员变量
     Rect(double n, double k) {
        length = n;
        width = k;
    }                        //构造方法 将值赋给成员变量
    double area1() {
        area = length * width;
        return area;
    }                        //计算返回面积
    double perimeter1() {
        perimeter = 2 * (length + width);
        return perimeter;
    }                        //计算返回周长
}
class Prism{
    double area ;            //矩形面积
    double high;            //
    double volume;            //体积
    Prism(double a,double k){
        area = a;
        high = k;        
    }                        //创建构造方法 为变量赋值
    double volume1() {
        volume = area * high;
        return volume;
    }                        //创建方法计算体积 返回volume
    //修改器 修改体面积 和高
    void setarea(double area) {
        this.area = area;
    }
    void sethigh(double high) {
        this.high = high;
    }
    
    
}
public class Rectangle {
    public static void main(String[] args) {            //主方法
        // TODO Auto-generated method stub
        System.out.println("请输入矩形的长和宽:");
        Scanner reader = new Scanner(System.in);
        double num1 = reader.nextDouble();
        double num2 = reader.nextDouble();    
        Rect a = new Rect(num1, num2);            //创建对象传入值 num1,num2
        System.out.println("矩形的面积为:" + a.area1()); 
        System.out.println("矩形的周长为:" + a.perimeter1());
        System.out.println("请输入四棱柱高:");
        double num3 = reader.nextDouble();    
        Prism b = new Prism(a.area, num3);        //创建对象 将矩形面积和高传入volume1方法中
        System.out.println("四棱柱体积为:" + b.volume1());    //调用volume1方法 输出体积
        System.out.println("请输入更换的矩形的长和宽:");
        double num4 = reader.nextDouble();
        double num5 = reader.nextDouble();    
        Rect c = new Rect(num4, num5);                //创建对象将新的值传入Rect类中
        System.out.println("修改后的矩形的面积为:" + c.area1());        //调用area1计算新的面积
        System.out.println("请输入更换的四棱柱高:");
        double num6 = reader.nextDouble();    
        Prism d = new Prism(c.area, num6);                        //创建对象传入新的值
        System.out.println("修改后四棱柱体积为:" + d.volume1());        //调用volume计算体积
    }
}

运行结果:

********************************************************************************************************************************************

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

代码及注释:

package My;
import java.util.*;
class MyInteger{
    int value;                              //int型数据
    MyInteger(int k){
        value = k;                          //构造方法为Value赋值
        
    }
    //value访问器和修改器
    public int getValue() {
        return value;
    }
    public void setValue(int value) {
        this.value = value;
    }
    boolean  isEven() {                      //布尔型isEven方法判断该数是否为偶数
        return value%2==0;        
    }
    boolean isOdd() {
        return value%2==1;
    }                                      //布尔型isOdd方法判断该数是否为素数
    static boolean isPrime(MyInteger i) {        //布尔型类方法isPrime判断该数是否为素数
        boolean s = true;                        //定义一个布尔型的s变量赋值false
        for(int q=2;q<i.value;q++) {            //循环判断该数是都为素数
            if(i.value%q==0) {
                  s = false;
            }        
        }
        return s;
    }
}

public class Example {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入需要判断的数:");
        Scanner reader = new Scanner(System.in);
        int num = reader.nextInt();            
        MyInteger s1 = new MyInteger(num);            //创建对象传入值num
        System.out.println("该数是否是偶数"+s1.isEven());
        System.out.println("该数是否是奇数"+s1.isOdd());
        System.out.println("该数是否是素数:"+s1.isPrime(s1));

    }

}

运行结果:

posted @ 2019-09-21 12:27  20194695徐少华  阅读(133)  评论(0编辑  收藏  举报