实验目的:
封装Trangle, Ladder, Circle类,完成相应的功能
实验代码:
package com.DiLiuZhou; public class Trangle { private double sideA, sideB, sideC, area, length; private boolean boo; //用于判断能否构成三角形 public Trangle(double a, double b, double c) { sideA = a; sideB = b; sideC = c; if ((a + b > c || a + c > b || b + c > a) && (a - b < c || a - c < b || b - c < a)) // a,b,c构成三角形的条件表达式 { boo = true; } else { boo = false; } } //构造函数 public double getSideA() { return sideA; } public void setSideA(double sideA) { this.sideA = sideA; } public double getSideB() { return sideB; } public void setSideB(double sideB) { this.sideB = sideB; } public double getSideC() { return sideC; } public void setSideC(double sideC) { this.sideC = sideC; } public boolean isBoo() { return boo; } public void setBoo(boolean boo) { this.boo = boo; } //getter setter函数 public double getLength() { if (boo) { return sideA + sideB + sideC; //如果能构成三角形 } else { System.out.println("不是一个三角形,不能计算周长"); return 0; } // 方法体,要求计算出length的值并返回 } public double getArea() { if (boo) { double p = (sideA + sideB + sideC) / 2.0; area = Math.sqrt(p * (p - sideA) * (p - sideB) * (p - sideC)); return area; } else { System.out.println("不是一个三角形,不能计算面积"); return 0; } } public void setABC(double a, double b, double c) { sideA = a; sideB = b; sideC = c; if ((a + b > c && a + c > b && b + c > a) && (a - b < c && a - c < b && b - c < a)) // a,b,c构成三角形的条件表达式 { boo = true; // 给boo赋值。 } else { boo = false; // 给boo赋值。 } } }
package com.DiLiuZhou; public class Lader { private double above, bottom, height, area; Lader(double a, double b, double h) { above = a; // 方法体,将参数a,b,c分别赋值给above,bottom,height bottom = b; height = h; } //构造函数 public double getAbove() { return above; } public void setAbove(double above) { this.above = above; } public double getBottom() { return bottom; } public void setBottom(double bottom) { this.bottom = bottom; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } //getter setter函数 public double getArea() { return (above + bottom) * height / 2;// 方法体,,要求计算出area返回 } }
package com.DiLiuZhou; public class Circle { private double radius, area; public Circle(double r) { radius = r; // 方法体 } public double getArea() { return 3.14 * radius * radius; // 方法体,要求计算出area返回 } public double getLength() { return 2 * 3.14 * radius; // getArea方法体的代码,要求计算出length返回 } public void setRadius(double newRadius) { radius = newRadius; } public double getRadius() { return radius; } //getter setter函数 }
package com.DiLiuZhou; public class Test { public static void main(String args[]) { double length, area; Circle circle = null; Trangle trangle; Lader lader; circle = new Circle(1); // 创建对象circle trangle = new Trangle(12, 13, 14); // 创建对象trangle。 lader = new Lader(12, 13, 14); // 创建对象lader System.out.println("圆的半径为:"+circle.getRadius()); length = circle.getLength(); // circle调用方法返回周长并赋值给length System.out.println("圆的周长:" + length); area = circle.getArea(); // circle调用方法返回面积并赋值给area System.out.println("圆的面积:" + area); System.out.println(); System.out.println("三角形的三边为:"+trangle.getSideA()+", "+trangle.getSideB()+", "+trangle.getSideC()); length = trangle.getLength(); // trangle调用方法返回周长并赋值给length System.out.println("三角形的周长:" + length); area = trangle.getArea(); // trangle调用方法返回面积并赋值给area System.out.println("三角形的面积:" + area); System.out.println(); System.out.println("梯形的上底,下底,高为:"+lader.getAbove()+", "+lader.getBottom()+", "+lader.getHeight()); area = lader.getArea(); // lader调用方法返回面积并赋值给area System.out.println("梯形的面积:" + area); System.out.println(); trangle.setABC(12, 34, 1); // trangle调用方法设置三个边,要求将三个边修改为12,34,1。 System.out.println("重置后的三角形三边为:"+trangle.getSideA()+", "+trangle.getSideB()+", "+trangle.getSideC()); area = trangle.getArea(); // trangle调用方法返回面积并赋值给area System.out.println("三角形的面积:" + area); length = trangle.getLength(); // trangle调用方法返回周长并赋值给length System.out.println("三角形的周长:" + length); } }
实验结果:
圆的半径为:1.0 圆的周长:6.28 圆的面积:3.14 三角形的三边为:12.0, 13.0, 14.0 三角形的周长:39.0 三角形的面积:72.30793524918272 梯形的上底,下底,高为:12.0, 13.0, 14.0 梯形的面积:175.0 重置后的三角形三边为:12.0, 34.0, 1.0 不是一个三角形,不能计算面积 三角形的面积:0.0 不是一个三角形,不能计算周长 三角形的周长:0.0
实验心得:
用包将不同的类分别封装在不同的class中,最后在Test类中对功能进行测试,类似于C++中的工程,各个部分完成各自的任务,各个类封装各自的属性和方法,使各部分的代码既不会很长,也不会太混乱,使得代码既条理清晰又增加了可读性,虽然在以前的代码中由于功能的类相对比较少,包的特性没有很好的表现出来,但从这个工程中就能有比较好的体现了,相信以后会让我们见识到它更大的益处的,以后我会将包的写法进行到底的。
代码方面就是以前一些小类的集结,没什么太多好讲的啦~~~~~~~~~