第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());
	}

}

☆运行截图

☆题目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+"是一个素数");
	}
}

☆运行截图

posted @ 2019-09-22 11:27  刘明康20194682  阅读(204)  评论(0编辑  收藏  举报