2

一个朋友告诉我这是一个学习 Java 作用域的好例子,但我不明白。

是什么a?我完全迷路了!

public class scopesexample {

    public static a a = new a<a>(a(new a()));

    public static class a<a> {
        a a;

        public a() {
            this.a = a(a(null));
        }

        public a(a a) {
            this.a = a;
        }

        public a a(a a) {
            return a;
        }

        public String toString() {
            return "a";
        }
    }

    public static a a(a a) {
        return new a<a>(a);
    }

    public static void main(String[] args) {
        System.out.println( a );
        System.out.println( a( a ) );
        System.out.println( a.a );
        a<a> a = new a<a>(a(new a()));
        System.out.println(a.a( a ));
        System.out.println( a );
        System.out.println( a );
        System.out.println(a.class);
        System.out.println(a.getClass());
        System.out.println(a.a);
        System.out.println(a( a ));
        System.out.println(a( a ).a);
    }
}
4

1 回答 1

10

我的建议是忽略你的朋友。

他或她要么把你清盘,要么他或她不知道学生如何学习示波器。

首先,通过a同时使用类、方法和变量名,他违反了代码风格准则和常识。

第二个问题是他在理解作用域的问题中加入了理解命名空间的问题,这是不必要的,而且是混乱的。

于 2012-09-14T15:12:48.513 回答