面向物件程式設計(Java)實驗3
阿新 • • 發佈:2022-04-10
目錄
實驗內容
上機實現下列程式並觀察程式的執行情況:
- 設計兩個類A、B,在類A的主方法main裡建立一個類B的匿名內部類物件,覆蓋B中的方法f,並呼叫此方法。
- 定義一個圖形介面,包含計算圖形的面積和周長方法。 定義一個圓類和長方形類分別實現圖形介面的方法。並寫一測試類進行測試。
實驗要求
- 熟悉四種訪問修飾符型別的成員的訪問方法。
- 熟悉靜態成員與非靜態成員的區別。
- 掌握匿名內部類的使用。
實驗內容一
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()); } }
執行結果: