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

题目1:

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

源代码:

Rec.java

package com.hou;
import java.util.Scanner;
/**
 * 定义一个矩形类
 * 分别定义构造方法,求面积方法,求周长方法
 * @author ASUS
 *
 */
class Rec {// 定义矩形类
    public double a;// 成员变量a,b,area,girth
    public double b;
    public double area;
    public double girth;

    public Rec(double a, double b) {// 定义有参构造方法
        this.a = a;
        this.b = b;
    }

    public double getArea() {//求面积的成员方法
        area = a * b;
        return area;
    }
    public double getGirth() {//求周长的成员方法
        girth = 2 * (a + b);
        return girth;
    }
}

Cylinder.java

package com.hou;
/**
 * 定义一个柱体类
 * 分别定义一个构造方法
 * 两个成员方法getVolume(),changeArea()
 * @author ASUS
 *
 */
class Cylinder {// 定义柱体类
    public Rec r;// 定义成员变量r,height,volume
    public double height;
    public double volume;

    public Cylinder(Rec r, double height) {// 有参构造方法
        this.r = r;
        this.height = height;
    }

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

    public void changeArea(Rec r) {
        this.r = r;
    }
}

Test99.java

package com.hou;
import java.util.*;//引入java.util包
public class Test99 {

    public static void main(String[] args) {// 定义主方法
        double a; //变量a,b,height,volume
        double b;
        double height;
        double volume;
        Scanner reader = new Scanner(System.in);//创建Scanner对象 reader
        System.out.println("***请您分别输入柱体的长,宽,高:");
        a = reader.nextDouble();
        b = reader.nextDouble();
        height = reader.nextDouble();
        Rec Rec = new Rec(a, b);// 定义矩形类
        Cylinder Cylinder = new Cylinder(Rec, height);// 定义柱体类
        System.out.println("***第一次得出柱体的体积是:" + Cylinder.getVolume());
        System.out.println("***请您输入要更换的长和宽:");
        a = reader.nextDouble();
        b = reader.nextDouble();
        Rec = new Rec(a, b);// 矩形类重新换底a,b
        Cylinder.changeArea(Rec);
        System.out.println("***换底后柱体的体积变为:" + Cylinder.getVolume());
    }

}

程序运行截图:

题目2:

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

源代码:

MyInteger.java

package com.hou;
/**
 * 定义MyInteger类
 * 定义一个整型成员变量,
 * 定义一个构造方法初始化成员变量,一个访问器,一个修改器,
 * 定义一个判断偶数isEven()方法
 * 定义一个判断偶数isOdd()方法奇
 * 定义一个判断是否为素数isPrime()的方法
 * @author ASUS
 *
 */
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 k = 3; k < i.value; k++)
            if (i.getValue() % k == 0)
                return false;
        return true;
    }
}

Test88.java

package com.hou;

import java.util.*;
/**
 * 在主类中创建MyInteger对象
 * 验证MyInteger类中各方法
 * @author ASUS
 *
 */
public class Test88 {
    public static void main(String[] args) {
        Scanner reader=new Scanner(System.in);
        System.out.println("***请输入一个数(判断其是奇数还是偶数):");
        int value = reader.nextInt();
        MyInteger myInteger=new MyInteger(value);//测试构造方法
        System.out.println("***您输入的这个数为"+myInteger.getValue());//测试getValue方法
        if(myInteger.isEven())//
            System.out.println(myInteger.value+"是一个偶数");
        if(myInteger.isOdd())//测试isOdd方法
            System.out.println(myInteger.value+"是一个奇数");
        System.out.println("***请再输入一个数(判断其是是否是素数):");
        value=reader.nextInt();
        myInteger.setValue(value);//测试setValue方法
        if(myInteger.isPrime(myInteger))//测试isPrime方法
            System.out.println(myInteger.value+"是一个素数");
    }
}

程序运行截图:

posted @ 2019-09-22 22:01  侯英龙20194669  阅读(216)  评论(0编辑  收藏  举报