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

☆题目1

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

☆代码及注释

☆☆Rectangle类

import java.util.Scanner;

/**
 * 定义一个矩形类其中包含一个有参的构造方法,一个求面积方法,一个求周长方法
 * 
 * @author minky
 *
 */
class Rectangle {// 矩形类
    public double length;// 成员变量
    public double width;
    public double area;
    public double girth;

    public Rectangle(double length, double width) {// 构造方法
        this.length = length;
        this.width = width;
    }

    public double getArea() {// 成员方法,求矩形面积
        area = length * width;
        return area;
    }

    public double getGirth() {// 成员方法,求矩形周长
        girth = 2 * (length + width);
        return girth;
    }
}

☆☆Cuboid类

/**
 * 定义一个柱体类,三个成员变量,一个构造方法,两个成员方法
 * 
 * @author minky
 *
 */
class Cuboid {// 柱体类
    public Rectangle r;// 成员变量
    public double height;
    public double volume;

    public Cuboid(Rectangle r, double height) {// 构造方法
        this.r = r;
        this.height = height;
    }

    public double getVolume() {// 成员方法,求体积
        volume = r.getArea() * height;
        return volume;
    }

    public void changeArea(Rectangle r) {// 成员方法,换底
        this.r = r;
    }
}

☆☆测试类

/**
 * 测试类,测试输入长宽高,求体积,以及换底。
 * 
 * @author minky
 *
 */
public class Test {

    public static void main(String[] args) {// 主方法
        double length;
        double width;
        double height;
        double volume;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入长宽高:");
        length = scanner.nextDouble();
        width = scanner.nextDouble();
        height = scanner.nextDouble();
        Rectangle rectangle = new Rectangle(length, width);// 定义矩形类
        Cuboid cuboid = new Cuboid(rectangle, height);// 定义柱体类
        System.out.println("柱体的体积是" + cuboid.getVolume());
        System.out.println("请输入要更换的长和宽:");
        length = scanner.nextDouble();
        width = scanner.nextDouble();
        rectangle = new Rectangle(length, width);// 重新初始化矩形类
        cuboid.changeArea(rectangle);// 换底
        System.out.println("换底后柱体的体积是" + cuboid.getVolume());
    }

}

☆运行截图

1792987-20190922103133873-1260227486.png

☆题目2

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

☆☆MyInteger类

/**
 * MyInteger类,其中包含一个整型成员变量,一个有参构造方法,一个访问器,一个修改器,两个实例方法判断偶数或奇数,一个类方法判断是否为素数
 * 
 * @author minky
 *
 */
class MyInteger {
    public int value;

    public MyInteger(int value) {// 构造方法
        this.value = value;
    }

    public int getValue() {// 访问器
        return value;
    }

    public void setValue(int value) {// 修改器
        this.value = value;
    }

    public boolean isEven() {// 判断是否为偶数
        if (this.value % 2 == 0)
            return true;
        else
            return false;
    }

    public boolean isOdd() {// 判断是否为奇数
        if (this.value % 2 == 1)
            return true;
        else
            return false;
    }

    public static boolean isPrime(MyInteger i) {// 判断是否为素数
        for (int j = 3; j < i.value; j++)
            if (i.getValue() % j == 0)
                return false;
        return true;
    }
}

☆☆测试类

import java.util.Scanner;
/**
 * 测试类,测试MyInteger类中的各个方法
 * @author minky
 *
 */
public class Test {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个数:");
        int value=scanner.nextInt();
        MyInteger myInteger=new MyInteger(value);//测试构造方法
        System.out.println("该值为"+myInteger.getValue());//测试getValue方法
        if(myInteger.isEven())//测试isEven方法
            System.out.println(myInteger.value+"是一个偶数");
        if(myInteger.isOdd())//测试isOdd方法
            System.out.println(myInteger.value+"是一个奇数");
        System.out.println("再输入一个数");
        value=scanner.nextInt();
        myInteger.setValue(value);//测试setValue方法
        if(myInteger.isPrime(myInteger))//测试isPrime方法
            System.out.println(myInteger.value+"是一个素数");
    }
}

☆运行截图

1792987-20190922112640553-589615338.png

转载于:https://www.cnblogs.com/laxla/p/11566755.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值