20194653-访问权限、对象使用
题目1:在作业5的基础上,再创建一个柱体类,包含矩形对象、高和体积等三个成员变量,一个构造方法进行成员变量初始化,和计算体积、换底两个功能方法,在主类中输入长、宽、高,计算柱体体积,输入新的长、宽、高,创建新的矩形对象,并利用换底方法换底,再次计算柱体体积。
一、源代码
1.rec.java
/*** * @author X1393 * 创建rec类其中包含 * 成员变量l为矩形的长 * 成员变量h为矩形的宽 * 成员变量area为矩形的面积 * 成员变量C为矩形的周长 * 方法funC求矩形的周长 * 方法funarea求矩形的面积 */ public class rec { double l; double h; double area; double C; public double funC(double a,double b){ //求矩形周长 C=2*a+2*b; return C; } public double funarea(double a,double b){ //求矩形面积 area=a*b; return area; } }
2.getV.java
/** * @author X1393 * 创建getV类,类中包含 * 成员变量H为四棱柱的高 * 成员变量T为矩形 * 构造方法为变量初始化 * funv方法求四棱柱的体积 * getH,setH为四棱柱高的访问器和修改器 * getT,setT为矩形类的访问器和修改器 */ public class getV { rec T=new rec(); double H; //四棱柱的高 getV(double H,rec T){ //构造方法 this.H=H; this.T=T; } public double funv(double a,double b){ //求四棱柱体积 return a*b; } public double getH() { return H; } public void setH(double h) { H = h; } public rec getT() { return T; } public void setT(rec t) { T = t; } }
3.Test.java
/** * 在主方法中创建 * rec类的对象TY用来接受用户输入的矩形长宽 * getV类的V接受矩形和用户输入的四棱柱的高 * 调用rec类与getV类中的方法求出矩形的周长,面积及四棱柱的体积 * 再次创建rec类的对象T1,接受用户输入的新矩形的长宽 * 利用getV中修改器改变其中矩形对象,并接受用户输入的高 * 求出新矩形的周长,面积及四棱柱的体积 */ import java.util.Scanner; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入长,宽,高"); Scanner reader=new Scanner(System.in); rec T=new rec(); //创建rec类的对象T T.h=reader.nextDouble(); T.l=reader.nextDouble(); double A=reader.nextDouble(); getV V=new getV(A,T); //创建getV类型的对象V System.out.println("矩形的周长为"+T.funC(T.h, T.l)); System.out.println("矩形面积为"+T.funarea(T.h, T.l)); System.out.println("四棱柱体积为"+V.funv(T.funarea(T.h, T.l), V.H)); System.out.println("请输入新的长,宽,高"); rec T1=new rec(); //创建rec类的对象T1 T1.l=reader.nextDouble(); T1.h=reader.nextDouble(); double H1=reader.nextDouble(); V.setH(H1); //修改四棱柱的高 V.setT(T1); //修改四棱柱的底 System.out.println("矩形的周长为"+T1.funC(T1.h, T1.l)); System.out.println("矩形面积为"+T1.funarea(T1.h, T1.l)); System.out.println("四棱柱体积为"+V.funv(T1.funarea(T1.h, T1.l), V.H)); } }
二、运行结果
题目2:设计名为MyInteger的类,它包括: int型数据域value 一个构造方法,当指定int值时,创建MyInteger对象 数据域value的访问器和修改器 isEven( )和isOdd( )方法,如果当前对象是偶数或奇数,返回true 类方法isPrime(MyInteger i),判断指定的值是否为素数,返回true 在主类中创建MyInteger对象,验证MyInteger类中各方法。
一、源代码
1.MyInteger.java
/** * @author X1393 *创建MyInteger类其中包含 *成员变量value *构造方法为变量初始化 *getValue为value变量访问器 *setValue为value变量修改器 *isEven方法判断是否为偶数 *isOdd方法判断是否为奇数 *isPrime方法判断是否为素数 */ public class MyInteger { int value; MyInteger(int value) { //构造方法 this.value = value; } public int getValue() { //访问器 return value; } public void setValue(int value) { //修改器 this.value = value; } public boolean isEven(int a){ //判断是否为偶数 if(a%2==0) return true; else return false; } public boolean isOdd(int a){ //判断是否为奇数 if(a%2!=0) return true; else return false; } public boolean isPrime(MyInteger i){ //判断是否为素数 int flag=0; for (int j = 2; j < i.value; j++) { if (j%i.value==0) { flag=1; } } if (flag==1) return false; else return true; } }
2.Test.java
/** * 创建主方法 * 定义变量接受用户输入的数 * 定义MyInteger的对象a * 调用MyInteger中的方法判断结果并输出 */ import java.util.Scanner; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入一个数"); Scanner reader=new Scanner(System.in); int x=reader.nextInt(); MyInteger a=new MyInteger(x); //定义MyInteger类的对象a System.out.println("是否偶数"+a.isEven(x)); System.out.println("是否为奇数"+a.isOdd(x)); System.out.println("是否为素数"+a.isPrime(a)); } }
二、运行结果