面對物件程式設計(Java)實驗2
阿新 • • 發佈:2022-03-25
目錄
實驗內容
一、實驗目的
- 掌握Java語言的類和物件的定義及使用的基本方法。
- 掌握繼承機制以及子類和父類之間的轉換。
- 掌握多型性的概念及程式設計。
二、實驗內容
上機實現下列程式並觀察程式的執行情況:
- 宣告一個表示圓的類,包含計算周長和麵積的方法,儲存在檔案Circle.java 中。然後編寫測試類,儲存在檔案ShapeTester.java中,並與Circle.java放在相同的目錄下,進行測試。
- 定義一個抽象類Shape,它有一個抽象方法calArea代表求圖形的面積;分別定義Shape的兩個子類Triangle、Rectangle代表三角形、矩形,這兩個類分別具體實現calArea方法求自己的面積,在main方法裡,利用這三個類建立物件展示Java的多型性。
實驗內容一
Circle.java
package test2; public class Crycle { public double r; public static double perimeter(double r){ double c; c = 2 * 3.14159 * r; return c; } public static double area(double r){ double s; s = 3.14159 * 3.14159 * r; return s; } }
ShapeTester.java
package test2; import java.util.Scanner; public class ShapeTester { public static void main(String [] args){ Crycle crycle = new Crycle(); Scanner input = new Scanner(System.in); crycle.r = input.nextDouble(); double c,s; c = Crycle.perimeter(crycle.r); s = Crycle.area(crycle.r); java.text.DecimalFormat df = new java.text.DecimalFormat("0.000"); System.out.println("周長:" + df.format(c)); System.out.print("面積:" + df.format(s)); } }
實驗內容二
Shape.java
package test2;
import java.util.Scanner;
abstract class Shape {
abstract double calArea();
}
class Rectangle extends Shape{
double a;
double b;
double calArea(){
return this.a * this.b / 2;
}
}
class Triangle extends Shape{
double h;
double d;
double calArea(){
return this.h * this.d / 2;
}
}
class ShapeTest2 {
public static void main(String[] args){
Rectangle rect = new Rectangle();
Scanner input = new Scanner(System.in);
System.out.println("矩形的引數:");
rect.a = input.nextDouble();
rect.b = input.nextDouble();
Triangle tri = new Triangle();
System.out.println("三角形的底:");
tri.d = input.nextDouble();
System.out.println("三角形的高:");
tri.h = input.nextDouble();
double rect_s = rect.calArea();
System.out.println("矩形的面積為:" + rect_s );
double tri_s = tri.calArea();
System.out.println("三角形的面積為:" + tri_s );
}
}