1. 程式人生 > 其它 >面對物件程式設計(Java)實驗2

面對物件程式設計(Java)實驗2

目錄

實驗內容

一、實驗目的

  1. 掌握Java語言的類和物件的定義及使用的基本方法。
  2. 掌握繼承機制以及子類和父類之間的轉換。
  3. 掌握多型性的概念及程式設計。

二、實驗內容
上機實現下列程式並觀察程式的執行情況:

  1. 宣告一個表示圓的類,包含計算周長和麵積的方法,儲存在檔案Circle.java 中。然後編寫測試類,儲存在檔案ShapeTester.java中,並與Circle.java放在相同的目錄下,進行測試。
  2. 定義一個抽象類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 );
    }
}