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

面向物件程式設計(Java)實驗3

目錄

實驗內容

上機實現下列程式並觀察程式的執行情況:

  1. 設計兩個類A、B,在類A的主方法main裡建立一個類B的匿名內部類物件,覆蓋B中的方法f,並呼叫此方法。
  2. 定義一個圖形介面,包含計算圖形的面積和周長方法。 定義一個圓類和長方形類分別實現圖形介面的方法。並寫一測試類進行測試。

實驗要求

  1. 熟悉四種訪問修飾符型別的成員的訪問方法。
  2. 熟悉靜態成員與非靜態成員的區別。
  3. 掌握匿名內部類的使用。

實驗內容一

package test3;

class B {
    public void f(){
        System.out.println("Hello World");
    };
}

public class A {
    public static void main(String [] args){
        B demo = new B(){
            public void f(){
                System.out.print("Hello Java");
            }
        };
        demo.f();
    }
}

執行結果:

實驗內容二

package test3;
import java.lang.Math;
import java.util.Scanner;
public interface Shape {
    double area();
    double perimeter();
}
abstract class circle implements Shape{
    public double r;
    public circle(double r){
        this.r = r;
    }
}
abstract class rectangle implements Shape{
    public double x;
    public double y;
    public rectangle(double x,double y){
        this.x = x;
        this.y = y;
    }
}

class demo{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        double r = input.nextDouble();
        circle a = new circle(r) {
            @Override
            public double area() {
                double ar;
                ar = Math.PI * r * r;
                return ar;
            }

            @Override
            public double perimeter() {
                double pe = Math.PI * r * 2;
                return pe;
            }
        };
        System.out.println(a.area());
        System.out.println(a.perimeter());
        double x = input.nextDouble();
        double y = input.nextDouble();
        rectangle b = new rectangle(x,y) {
            @Override
            public double area() {
                return x*y;
            }

            @Override
            public double perimeter() {
                return 2*(x+y);
            }
        };
        System.out.println(b.area());
        System.out.println(b.perimeter());
    }
}

執行結果: