面向对象程序设计(Java)实验3
实验内容
上机实现下列程序并观察程序的运行情况:
- 设计两个类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());
}
}
运行结果:
本文来自作者:CK_0ff,转载请注明原文链接:https://www.cnblogs.com/Ck-0ff/p/16127820.html