1.根據周長計算不同形狀圖形的面積
以正方形和圓形為例
(1)分別定義Square類和Circle類,並且定義Square類和Circle類中的c屬性和area方法。
public class Circle Shape{
private double c;
public Circle(double c){
this.c=c;
}
/**
* 計算圓形的面積
*/
public double area(){
return 0.0796*c*c;
}
}
public class Square Shape{
private double c;
public Square(double c){
this.c=c;
}
/**
* 計算正方形的面積
* @param c
*/
public double area(){
return 0.0625*c*c;
}
}
(2)定義父類Shape並抽取子類Square和Circle中共有屬性c和方法area抽取到父類Shape中,並重構Square類和Circle類
public abstract class Shape {
protected double c;
public abstract double area();
}
(3)修改Square類和Circle類。
public class Circle extends Shape{
private double c;
public Circle(double c){
this.c=c;
}
/**
* 計算圓形的面積
*/
public double area(){
return 0.0796*c*c;
}
}
public class Square extends Shape{
private double c;
public Square(double c){
this.c=c;
}
/**
* 計算正方形的面積
* @param c
*/
public double area(){
return 0.0625*c*c;
}
}
(4)定義計算最大面積的方法
public static void maxArea(Shape[] shapes){
double max=shapes[0].area();
int maxIndex=0;
for(int i=1;i<shapes.length;i++){
double area=shapes[i].area();
if(area>max){
max=area;
maxIndex=i;
}
}
System.out.println("數組中索引為"+maxIndex+"的圖形的面積最大,面積為:"+max);
}
(5)測試
public static void main(String[] args){
Shape[] shapes=new Shape[2];
shapes[0]=new Circle(4);
shapes[1]=new Square(4);
maxArea(shapes);
}
