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));
}
}
二、运行结果

浙公网安备 33010602011771号