Java第六周实验报告
来源:互联网 发布:mac版安卓刷机软件 编辑:程序博客网 时间:2024/05/18 02:38
实验目的:
封装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,heightbottom = 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); // 创建对象circletrangle = new Trangle(12, 13, 14); // 创建对象trangle。lader = new Lader(12, 13, 14); // 创建对象laderSystem.out.println("圆的半径为:"+circle.getRadius());length = circle.getLength(); // circle调用方法返回周长并赋值给lengthSystem.out.println("圆的周长:" + length);area = circle.getArea(); // circle调用方法返回面积并赋值给areaSystem.out.println("圆的面积:" + area);System.out.println();System.out.println("三角形的三边为:"+trangle.getSideA()+", "+trangle.getSideB()+", "+trangle.getSideC());length = trangle.getLength(); // trangle调用方法返回周长并赋值给lengthSystem.out.println("三角形的周长:" + length);area = trangle.getArea(); // trangle调用方法返回面积并赋值给areaSystem.out.println("三角形的面积:" + area);System.out.println();System.out.println("梯形的上底,下底,高为:"+lader.getAbove()+", "+lader.getBottom()+", "+lader.getHeight());area = lader.getArea(); // lader调用方法返回面积并赋值给areaSystem.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调用方法返回面积并赋值给areaSystem.out.println("三角形的面积:" + area);length = trangle.getLength(); // trangle调用方法返回周长并赋值给lengthSystem.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++中的工程,各个部分完成各自的任务,各个类封装各自的属性和方法,使各部分的代码既不会很长,也不会太混乱,使得代码既条理清晰又增加了可读性,虽然在以前的代码中由于功能的类相对比较少,包的特性没有很好的表现出来,但从这个工程中就能有比较好的体现了,相信以后会让我们见识到它更大的益处的,以后我会将包的写法进行到底的。
代码方面就是以前一些小类的集结,没什么太多好讲的啦~~~~~~~~~
- Java第六周实验报告
- 第六周实验报告
- 第六周C++实验报告
- C++第六周实验报告
- 第六周实验报告1
- 第六周实验报告1
- 第六周实验报告1
- 第六周实验报告1
- 第六周实验报告1
- 第六周实验报告1
- 第六周实验报告2
- 第六周实验报告二
- 第六周实验报告2
- 第六周实验报告3
- 第六周实验报告2
- 第六周实验报告3
- 第六周实验报告2
- 第六周实验报告4
- javascript中window.showModalDialog的用法
- (笔试前准备)字符串匹配算法总结
- 2012-10-9杭州阿里巴巴,研发笔试题目
- JQuery 简介
- 摄氏度转换华氏度
- Java第六周实验报告
- Web Secret:图片服务(一)——构建一个基本的图片服务
- Symbian绘图编程
- python中list操作
- Django性能优化
- 【DFS】hdu2451 Simple Addition Expression
- typedef与define比较 typedef用法
- typedef用法介绍
- (笔试前复习)java-两种方法求第一个最长的可重复子串