gpt4 book ai didi

Java匿名类的使用

转载 作者:行者123 更新时间:2023-12-01 23:28:57 24 4
gpt4 key购买 nike

package wrap;

public class Anonymous {

public Circle getCircle(int radius){

return new Circle(radius){
private int rad;
public double area() {
return 3.14*rad*rad;
}
};
}

public static void main(String[] args) {
Anonymous p = new Anonymous();
Circle w = p.getCircle(10);
System.out.println(w.area());
}
}
class Circle {
private int rad;
public Circle(int radius) {
rad = radius;
}
public double area() {
return rad*rad;
}
}

我在 getcircle 方法中创建了 Circle 的匿名内部类。但是调用 getcircle 方法并没有显示“I am inside”。为什么会这样?匿名类应该覆盖外部 Circle 类。

最佳答案

这个

public void Circle(int radius) {

是返回类型为void的方法声明,而不是构造函数。

The Java language specification states

An anonymous class cannot have an explicitly declared constructor. Instead, a Java compiler must automatically provide an anonymous constructor for the anonymous class.

由于您从未调用上面声明的 Circle(int) 方法,因此永远不会打印 String “I am inside”

关于Java匿名类的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19622825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com