課后作業(yè),不知道這樣的功能行不行
父類:
package Duotai;
public abstract class Shape {
?public abstract void perimeter(double x,double y);
?public abstract void perimeter(double r);
?public abstract void area(double x,double y);
?public abstract void area(double r);
}
矩形:
package Duotai;
public class Rectangle extends Shape {
?
?@Override
?public void perimeter(double x, double y) {
??// TODO Auto-generated method stub
??double peri=2*x*y;
??System.out.println("矩形的周長為:"+peri);
?}
?@Override
?public void perimeter(double r) {
??// TODO Auto-generated method stub
??
?}
?@Override
?public void area(double x, double y) {
??// TODO Auto-generated method stub
??double area=x*y;
??System.out.println("矩形的面積為:"+area);
?}
?@Override
?public void area(double r) {
??// TODO Auto-generated method stub
??
?}
}
圓形:
package Duotai;
public class Circle extends Shape {
?@Override
?public void perimeter(double x, double y) {
??// TODO Auto-generated method stub
??
?}
?@Override
?public void perimeter(double r) {
??// TODO Auto-generated method stub
??double pi=3.14;
??double peri=2*pi*r;
??System.out.println("圓形的周長為:"+peri);
?}
?@Override
?public void area(double x, double y) {
??// TODO Auto-generated method stub
??
?}
?@Override
?public void area(double r) {
??// TODO Auto-generated method stub
??double pi=3.14;
??double area=pi*r*r;
??System.out.println("圓形的面積為:"+area);
?}
}
測試類:
package Duotai;
import java.util.Scanner;
public class Initail03 {
?public static void main(String[] args) {
??// TODO Auto-generated method stub
??calculate();
?}
??public static void calculate(){
??Shape Rec1=new Rectangle();
??Shape Cir1=new Circle();
??Scanner input=new Scanner(System.in);//創(chuàng)建Scanner對象
??System.out.println("請輸入圖形:");
??String shape=input.next();
?
?
??switch(shape){
???case "rectangle":
???System.out.println("請輸入矩形的長:");
???double length=input.nextDouble();
???System.out.println("請輸入矩形的寬:");
???double width=input.nextDouble();
???Rec1.perimeter(length,width);
???Rec1.area(length,width);
?????
???break;
???
???case "circle":
???System.out.println("請輸入圓形的半徑:");
???double radius=input.nextDouble();
???Cir1.perimeter(radius);
???Cir1.area(radius);
???
???break;
???
???default:
????System.out.println("輸入有誤,請輸入正確圖形");
????calculate();
????
??}
?}?
?
}
2017-07-08
看上去沒問題,但是你的rectangle的周長是不是算錯了?
2017-07-14
太復(fù)雜了,而且沒有文本或者讓其他注釋,后期檢查就是渣渣