简单的Java面向对象程序
上一篇随笔Java静态方法和实例方法的区别以及this的用法,老师看了以后说我还是面向过程的编程,不是面向对象的编程,经过修改以后,整了一个面向对象的出来:
/** * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法; * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果. */ package mission3; /** * 定义一个圆形类,以及圆形的私有成员属性 */ public class Circular { private double r; //圆的半径 private double PI; //圆周率 private double circularArea; //圆的面积 //自动生成getter和setter方法 public double getR() { return r; } public void setR(double r) { this.r = r; } public double getPI() { return PI; } public void setPI(double PI) { this.PI = PI; } public double getCircularArea() { return circularArea; } public void setCircularArea(double circularArea) { this.circularArea = circularArea; } }
/** * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法; * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果. */ package mission3; /** * 定义一个三角形类,以及三角形的私有成员属性 */ public class Triangle { private double base; //三角形的底边长 private double high; //三角形的高 private double triangleArea; //三角形的面积 //自动生成getter和setter方法 public double getBase() { return base; } public void setBase(double base) { this.base = base; } public double getHigh() { return high; } public void setHigh(double high) { this.high = high; } public double getTriangleArea() { return triangleArea; } public void setTriangleArea(double triangleArea) { this.triangleArea = triangleArea; } }
/** * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法; * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果. */ package mission3; /** * 定义一个梯形类,以及梯形的私有成员属性 */ public class Trapezoid { private double topLength; //梯形上底边长 private double baseLength; //梯形下底边长 private double high; //梯形的高 private double trapezoidArea; //梯形的面积 //自动创建setter和getter方法 public double getTopLength() { return topLength; } public void setTopLength(double topLength) { this.topLength = topLength; } public double getBaseLength() { return baseLength; } public void setBaseLength(double baseLength) { this.baseLength = baseLength; } public double getHigh() { return high; } public void setHigh(double high) { this.high = high; } public double getTrapezoidArea() { return trapezoidArea; } public void setTrapezoidArea(double trapezoidArea) { this.trapezoidArea = trapezoidArea; } }
/** * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法; * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果. */ package mission3; import java.util.Scanner; /** * 定义一个计算类,专门用来存计算方法供主类调用 */ public class Calculator { //计算圆面积的方法 public void calculateArea(Circular circular){ //获取圆的对象的属性,计算出圆的面积属性赋给圆这个对象 circular.setCircularArea(circular.getR()*circular.getR()*circular.getPI()); } //计算三角形面积的方法 public void calculateArea(Triangle triangle){ //获取三角形对象的属性,计算出三角形的面积赋值给三角形对象 triangle.setTriangleArea(triangle.getBase()*triangle.getHigh()/2); } //计算梯形的面积的方法 public void calculateArea(Trapezoid trapezoid){ //获取梯形对象的属性,计算出梯形的面积赋值给梯形对象 trapezoid.setTrapezoidArea((trapezoid.getTopLength()+trapezoid.getBaseLength())*trapezoid.getHigh()/2); } }
/** * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法; * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果. */ package mission3; public class Test { public static void main(String[] args) { //new一个圆的类 Circular cir = new Circular(); //给圆的属性赋值 cir.setR(50); cir.setPI(Math.PI); //new一个计算类 Calculator cal = new Calculator(); //调用计算类进行计算 cal.calculateArea(cir); //输出圆的属性 System.out.println("半径为"+cir.getR()+",圆周率为"+cir.getPI()+"情况下的圆的面积是:"+cir.getCircularArea()); //new一个三角形的类 Triangle tri = new Triangle(); //给三角形的属性赋值 tri.setBase(20); tri.setHigh(30); //调用计算类进行计算 cal.calculateArea(tri); //输出三角形的属性 System.out.println("底边长为"+tri.getBase()+",高为"+tri.getHigh()+"的三角形面积是:"+tri.getTriangleArea()); //new一个梯形的类 Trapezoid tra = new Trapezoid(); //给梯形的属性赋值 tra.setBaseLength(20); tra.setTopLength(30); tra.setHigh(20); //调用计算类进行计算 cal.calculateArea(tra); //输出梯形的属性 System.out.println( "上底边长为"+tra.getTopLength() +",下底边长为"+tra.getBaseLength() +",高为"+tra.getHigh() +"的梯形面积是"+tra.getTrapezoidArea()); } }