第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)); } }
运行结果: