1. 程式人生 > >利用類的繼承計算並輸出圓柱體的體積和表面積

利用類的繼承計算並輸出圓柱體的體積和表面積


import java.util.*;
	public class Main {
		public static void main(String[] args) {
			Scanner in=new Scanner(System.in);
			double x,y,r,h;
			x=in.nextDouble();y=in.nextDouble();//圓心座標			                r=in.nextDouble();h=in.nextDouble();//半徑高度
			Cylinder cy=new Cylinder(x,y,r,h);
			System.out.println("r="+cy.getR());
			System.out.println("h="+cy.getH());
			System.out.println("V="+Math.round(cy.calcV()*100)/100.);
			System.out.println("S="+Math.round(cy.calcArea()*100)/100.);
		}
	} 
	class Circle{
		private double x,y,r;
		public Circle(double x,double y,double r){
			this.x=x;this.y=y;this.r=r;
		}
		public double perimeter(){      //計算圓周長
			return 2*Math.PI*r;
		}
		public double area(){           //計算圓面積
			return Math.PI*r*r;
		}
		public double getR(){
			return r;

		}
	}
	class Cylinder extends Circle{
		private double h;
		public Cylinder(double x, double y, double r,double h) {
			super(x, y, r);//呼叫父類構造方法
			this.h=h;
			// TODO Auto-generated constructor stub
		}
		public double getH(){
			return h;
			}
		public double calcV(){//計算圓柱體體積
			return super.area()*h; //呼叫父類的求圓面積的方法
		}
		public double calcArea(){//計算圓柱體表面積
			return super.area()*2+super.perimeter()*h;//呼叫父類的求圓周長的方法
		}
	}

輸出都為返回雙精度浮點數