实验目的:
封装一类梯形对象Ladder,该类对象具有上底、下底和高的属性,
具有初始化梯形的功能、修改上底、下底和高的功能、求周长的功能、求面积的
功能。
实验代码:
/*封装一类梯形对象Ladder,该类对象具有上底、下底和高的属性,
具有初始化梯形的功能、修改上底、下底和高的功能、求周长的功能、求面积的
功能。*/
public class shiYan2 {
public static void main(String[] args) {
Ladder ladder = new Ladder();
ladder.set_shangDi(10);
ladder.set_xiaDi(18);
ladder.set_gao(3);
double shangDi = ladder.get_shangDi();
double xiaDi = ladder.get_xiaDi();
double gao = ladder.get_gao();
System.out.println("梯形的上底为:"+shangDi);
System.out.println("梯形的下底为:"+xiaDi);
System.out.println("梯形的高为:"+gao);
double zhouChang = ladder.zhouChang();
double area = ladder.area();
System.out.println("梯形的周长为:"+zhouChang);
System.out.println("梯形的面积为:"+area);
}
}
class Ladder {
public double shangDi;
public double xiaDi;
public double gao;
public Ladder() {
shangDi = 0;
xiaDi = 0;
gao = 0;
} // 初始化梯形
public void set_shangDi(double shangDi) {
this.shangDi = shangDi;
}
public void set_xiaDi(double xiaDi) {
this.xiaDi = xiaDi;
}
public void set_gao(double gao) {
this.gao = gao;
} // 修改上底、下底和高
public double get_shangDi() {
return shangDi;
}
public double get_xiaDi() {
return xiaDi;
}
public double get_gao() {
return gao;
}
public double area() {
double area = (shangDi + xiaDi) * gao / 2;
return area;
}
public double zhouChang() {
double yao = Math.sqrt(((xiaDi - shangDi) / 2 * (xiaDi - shangDi) / 2)
+ gao * gao);
return yao * 2 + shangDi + xiaDi;
}
}
实验结果:
梯形的上底为:10.0
梯形的下底为:18.0
梯形的高为:3.0
梯形的周长为:38.0
梯形的面积为:42.0
实验心得:
实验跟上一个封装三角形类几乎是一样的,只是在代码实现方面有一点不明白,老师给的实验要求中有求梯形的周长,可是不同的梯形求周长的方式是不一样的,不知道梯形的形状实在是难以下手,上网查阅求梯形周长的方法,也没有一种可以通用的公式,所以在实验代码中,我算是找了一种投机取巧的方法,默认梯形为等腰梯形,才有了实验代码中求梯形周长的方法,当然其实这样做是不正确的。