我有这样的代码效果很好,但我想知道为什么方法区域不可能放入主方法
public class Circle {
Operation op;
double pi = 3.14;
double area(int radius) {
op = new Operation();
int rsquare = op.square(radius);
return rsquare * pi;
}
public static void main(String arg[]) {
Circle c = new Circle();
double s = c.area(5);
System.out.println(s);
}
class Operation {
int square(int n) {
return n * n;
}
}
}
不起作用的例子:
public static void main(String arg[]) {
double area ( int radius){
op = new Operation();
int rsquare = op.square(radius);
return rsquare * pi;
}
答案 0 :(得分:1)
在Java方法中嵌套方法实现代码的唯一方法是使用anonymous classes。在你的情况下,这看起来像这样(代码必须嵌套在一类排序中):
public static interface Circle {
double area(int radius);
}
public static interface Operation {
int square(int n);
}
public static void main(String arg[]) {
Circle c = new Circle() {
Operation op;
double pi = 3.14;
public double area(int radius) {
op = new Operation() {
public int square(int n) {
return n * n;
}
};
int rsquare = op.square(radius);
return rsquare * pi;
}
};
double s = c.area(5);
System.out.println(s);
}
答案 1 :(得分:0)
取
double area(){...}
在main
方法之外
Java不支持嵌套方法,即使这样做,也没有必要在静态方法中放置非静态方法
最接近的是包含方法的嵌套类,在方法
中声明