第7次作业--访问权限、对象使用
题目一
在作业5的基础上,再创建一个柱体类,包含矩形对象、高和体积等三个成员变量,一个构造方法进行成员变量初始化,和计算体积、换底两个功能方法,在主类中输入长、宽、高,计算柱体体积,输入新的长、宽、高,创建新的矩形对象,并利用换底方法换底,再次计算柱体体积。
代码
Rect.java
/** * 一个类中有三个三个成员变量,两个方法 * a,b,area变量分别表示长,宽,面积 * 构造方法用于修改成员变量的值,getArea()计算矩形面积; */ package jj; public class Rect { double a; //成员变量 double b; double area; Rect(double a,double b){ //构造方法 this.a=a; this.b=b; } double getArea(){ //计算面积的方法 return area=a*b; } }
Cone.java
/** * 一个类三个成员变量,三个方法 * h,v,rect分别代表高,体积,矩形面积 * 构造方法修改成员变量,修改器进行换底,getv()计算体积 */ package jj; public class Cone { double h; //成员变量 double v; Rect rect; Cone (double h,Rect rect){//构造方法 this.h=h; this.rect=rect; } public void setRect(Rect rect){//修改器 this.rect=rect; } public double getv(){ //计算体积 return h*rect.getArea(); } }
A.java
/** * 一个主类,一个主方法 * 计算体积,调用矩形对象的修改器换底,换底后的体积; */ package jj; /** * * */ public class A { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Cone sc=new Cone (10,new Rect(3,2)); /* * 创建四棱柱对象并为底的长,宽和高赋值(长3宽2高10) */ System.out.println("四棱柱体积是:"+sc.getv()); sc.setRect(new Rect(5,2)); System.out.print("换底后四棱柱体积是:"+sc.getv()); } }
运算结果
题目二
设计名为MyInteger的类,它包括: int型数据域value 一个构造方法,当指定int值时,创建MyInteger对象 数据域value的访问器和修改器 isEven( )和isOdd( )方法,如果当前对象是偶数或奇数,返回true 类方法isPrime(MyInteger i),判断指定的值是否为素数,返回true 在主类中创建MyInteger对象,验证MyInteger类中各方法。
MyInteger.java
/** * 一个类中有一个成员变量,六个方法 * value被赋予数据 * 构造方法初始化,value的访问器和修改器,isEven判断是否为偶数,isOdd判断是否为奇数,isPrime判断是否为素数; */ package gg; public class MyInteger { static int value; MyInteger(int value){ //创建构造方法 this.value=value; } public int getValue() { //访问器 return value; } public void setValue(int value) { //修改器 this.value = value;} public boolean isEven() { //判断是否为偶数的方法 if(value % 2 == 0) return true; return false; } public boolean isOdd() { //判断是否为奇数的方法 if(value % 2 != 0) return true; return false;} public static boolean isPrime(MyInteger i){//判断是否为素数 for (int m = 2; m<= value / 2; m++) { if (value % m == 0) return false; } return true; } }
Work.java
/** * 一个主类,一个主 方法 * 调用方法,输出结果,利用修改器修改value的值 */ package gg; import java.util.*; public class Work { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner reader=new Scanner(System.in); System.out.println("请输入一个数:"); int a=reader.nextInt(); MyInteger t=new MyInteger(a); //创建对象 System.out.println("value是否为偶数:"+t.isEven()); //调用方法,输出结果 System.out.println("value是否为奇数:"+t.isOdd()); System.out.println("value是否为素数:"+t.isPrime(t)); t.setValue(12);//利用修改器修改value的值 System.out.println("value是否为奇数:"+t.isOdd()); System.out.println("vaule是否为偶数:"+t.isEven()); System.out.println("value是否为素数:"+MyInteger.isPrime(t)); } }
运算结果