定義Point,Circle和Cylinder三個類,三個類都有x、y屬性,而Circle增加了屬性radius和求面積的方法area(),Cylinder類又增加屬性height和求體積的方法volume()。撰寫應用程式分別創建三個類的物件,并測驗各個類相應的方法。
uj5u.com熱心網友回復:
/**
* @author: heiye
* @date: 2020-03-20 10:27
**/
public abstract class Point {
double x, y;
public abstract double volume();
public abstract double area();
/**
* 測驗方法
*/
public static void main(String[] args) {
Circle circle = new Circle();
circle.setRadius(2);
Cylinder cylinder = new Cylinder(circle);
cylinder.setHeight(3);
System.out.println("圓的體積:"+circle.volume());
System.out.println("圓的面積:"+circle.area());
System.out.println("圓柱體的體積:"+cylinder.volume());
}
}
/**
* 求圓的面積,體積
*/
class Circle extends Point {
private double radius;
/**
* 體積
* 乘以100除以100為了保留幾位小數,不建議,會造成精度流失
* @return
*/
@Override
public double volume() {
return (double) ((int) (Math.PI * Math.pow(radius, 3) * 4 / 3 * 100)) / 100;
}
/**
* 面積
*
* @return
*/
@Override
public double area() {
return (double) ((int) (Math.PI * Math.pow(radius, 2) * 100)) / 100;
}
public void setRadius(double radius) {
this.radius = radius;
}
}
/**
* 求圓柱體的面積,體積
*/
class Cylinder extends Point {
private double height;
private Circle circle;
/**
* 注入圓
* @param circle
*/
public Cylinder(Circle circle){
this.circle = circle;
}
/**
* 體積
* @return
*/
@Override
public double volume() {
return circle.area()*height;
}
@Override
public double area() {
return 0;
}
public void setHeight(double height) {
this.height = height;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/114738.html
標籤:Java相關
上一篇:有大佬可以幫個忙嗎
