1. 程式人生 > >java初學基礎 使用繼承 計算圓形周長、面積和圓柱體積

java初學基礎 使用繼承 計算圓形周長、面積和圓柱體積

程式效果圖: 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

程式入口,Geo類

import java.util.Scanner;

public class Geo{
    final double PI = 3.14;
    public static void main(String[] args) {
        boolean i = true;
        while (i) {
        System.out.println("#################");
        System.out.println("# 1:得到圓形周長 #");
        System.out.println("# 2:得到圓形面積 #");
        System.out.println("# 3:得到圓柱體積 #");
        System.out.println("# 4:結束本程式   #");
        System.out.println("#################");
        System.out.println("請輸入功能前序號");
        Scanner scan = new Scanner(System.in);
        int s = scan.nextInt();
        switch (s) {
            case 1:
                Perimeter p = new Perimeter();
                System.out.println("圓的周長為:"+p.getPer(input()));
                break;
            case 2:
                Area a = new Area();
                System.out.println("圓的面積為:"+a.getAre(input()));
                break;
            case 3:
                Volume v =new Volume();
                double area = v.getAre(input());
                System.out.println("圓的體積為:"+v.getVol(area));
                break;
            default:
                i = false;
                System.out.println("程式結束。");
                break;
        }
    }
}
    private static double input(){
        System.out.println("請輸入圓的半徑:");
        Scanner scan = new Scanner(System.in);
        double r = scan.nextFloat();
        return r;
    }
}

用作求周長的Perimeter類

public class Perimeter extends Geo{

    public double getPer(double r){
        return 2*PI*r;
    }
}

用作求面積的Area類

public class Area extends Geo{
    public double getAre(double r){
        return r*PI*r;
    }
}

用作求圓柱體積的Volume類

import java.util.Scanner; 

public class Volume extends Area{
    public double getVol(double area){
        System.out.println("請輸入圓柱的高度:");
        Scanner scan = new Scanner(System.in);
        double h = scan.nextFloat();
        return area*h;
    }
}

還有個優化版本,使用了super呼叫父類方法,有時間再放上。