面向对象程序设计(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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫