abstract class Shape{
public abstract double area();
}
class Circle extends Shape{
private double radius;
private final static double pi=3.14159;
public double area(){
return pi*radius*radius;
}
public Circle(double r) { this.radius=r;}
public Circle() {this(3); }
}
class Rect extends Shape {
private double width, height;
public Rect(double width, double height){
this.width=width;
this.height=height;
}
public Rect() { this(2,3); }
public double area(){
return width * height;
}
}
class Triangle extends Shape{
private double base, height;
public Triangle(double base, double height){
this.base=base; this.height=height;
}
public Triangle() { this(3.2,4.5); }
public double area() {
return base*height/2;
}
}
public class ShapeDemo {
public static void main(String[] args) {
Circle c1=new Circle(10);
System.out.println("area=" + c1.area());
}
}
================================================
請將 ShapeDemo.java 的Shape 修改為 interface, 在主類別中用Shape物件陣列建立40個圓,30個矩形,30個三角形, 請印出這些所有形狀的總面積及最大面積是那種物件及其資料(這些形狀的半徑,寬高...值 用亂數產生)
月影藍翎 wrote:
abstract c...(恕刪)
改幾個字而已 ,加油
public class homework1 {
public static void main(String[] args) {
shapeinterface[] shape=new shapeinterface[100];
for (int i = 0; i < shape.length; i++) {
if (i<40){
shape[i] = new Circle((Math.random()*100)+1);
}
if (i>=40 && i<70){
shape[i] = new Rect((Math.random()*100)+1,(Math.random()*100)+1);
}
if (i>=70 && i<100){
shape[i] = new Triangle((Math.random()*100)+1,(Math.random()*100)+1);
}
System.out.println(shape[i].area()+"---"+i);
}
}
}
class Circle implements shapeinterface{
private double radius;
private final static double pi=3.14159;
public double area(){
return pi*radius*radius;
}
public Circle(double r) { this.radius=r;}
public Circle() {this(3); }
}
class Rect implements shapeinterface {
private double width, height;
public Rect(double width, double height){
this.width=width;
this.height=height;
}
public Rect() { this(2,3); }
public double area(){
return width * height;
}
}
class Triangle implements shapeinterface{
private double base, height;
public Triangle(double base, double height){
this.base=base; this.height=height;
}
public Triangle() { this(3.2,4.5); }
public double area() {
return base*height/2;
}
}
public interface shapeinterface{ //interface檔案另外存
public abstract double area();
}
內文搜尋

X