Java中的聚合和main方法中的方法

时间:2015-02-16 16:02:20

标签: java aggregation

我有这样的代码效果很好,但我想知道为什么方法区域不可能放入主方法

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;
    }

2 个答案:

答案 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不支持嵌套方法,即使这样做,也没有必要在静态方法中放置非静态方法

最接近的是包含方法的嵌套类,在方法

中声明