String之间有什么区别。和String.this。 ?

时间:2013-08-26 07:53:53

标签: java methods syntax static this

我会直言不讳。 我还在学习一些语法,想知道这段代码之间的区别是什么

代码A:

 public class Buttonz extends JButton{

        public Buttonz(){
            setText(new String(String.valueOf(i)));
        }

    }

请忽略i未声明的事实,这不是我丢失的地方。

代码B:

public class Buttonz extends JButton{

    public Buttonz(){
        setText(new String(String.this.charAt(i)));
    }

}

我还不明白输入String.thisString.

的不同之处

我假设当我在类上使用点运算符时,我正在访问它的静态方法(和/或变量,如果它们没有被隐藏)。

我对此进行了一些研究并得出结论,在使用String.时我正在访问String静态方法..但在使用String.this.时我正在访问我的类的方法Buttonz正在扩展。

这是对的吗?

如果我是对的并且在浪费时间,我道歉。我需要确保继续前进。谢谢。

1 个答案:

答案 0 :(得分:0)

String.this是“合格的this”语法。它用于引用this,如果当前类是String(在这种情况下不是),或者这是一个本地或匿名类(一种内部类),包含此类的名为this的封闭类的String。如果这个班级在另一个班级里面,你没有告诉我们;我怀疑是这样的。但即使它是,名为String的封闭类也不是java.lang.String,它必须是名为String的其他类,因为您无法将代码添加到现有类中。然后,我高度怀疑它会有一个名为charAt()的方法,它返回一些可以传递给new String()的东西。总而言之,这不是真正的代码。