Java中名称的作用域

Java中名称的作用域,java,Java,一位朋友告诉我,这是学习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)); }

一位朋友告诉我,这是学习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);
    }
}
公共类作用域示例{
公共静态a=新a(a(新a()));
公共静态a类{
a a;
公共a(){
这个.a=a(a(null));
}
公共a(a){
这个a=a;
}
公共a(a){
返回a;
}
公共字符串toString(){
返回“a”;
}
}
公共静态a(a){
返回新的a(a);
}
公共静态void main(字符串[]args){
系统输出打印项次(a);
系统输出打印ln(a(a));
系统输出打印LN(a.a);
a=新的a(a(新的a());
系统输出打印LN(a.a(a));
系统输出打印项次(a);
系统输出打印项次(a);
系统输出打印LN(a类);
System.out.println(a.getClass());
系统输出打印LN(a.a);
系统输出打印ln(a(a));
系统输出打印ln(a(a.a);
}
}

我的建议是不要理睬你的朋友

他或她要么让你发火,要么他或她不知道学生们是如何学习示波器的

首先,他使用
a
作为类、方法和变量名,违反了代码风格准则和常识


第二个问题是,他将理解名称空间的问题添加到了理解范围的问题上,这是不必要的,也是令人困惑的。

哇,这么多a。无论如何,在这种情况下,第一个是类类型,第二个是引用。尝试遵循命名约定,这将消除很多混乱。我是一名专业的Java开发人员,我迷路了。不要试图理解这样的代码。这是一个很好的例子,可以让人们混淆范围。作为一种学习工具,它应该被认为是有害的。这是非常“聪明”的代码。这不是恭维话,这是一个被破坏的代码吗?或者故意修改为不可读。不,这不是评论。这是对这个问题的回答。事实上,这是这个问题唯一明智的答案。我的朋友总是取笑我:/谢谢你的帮助time@AliceBeatsy-送他去苏,我们会取笑他:-)