我会直言不讳。 我还在学习一些语法,想知道这段代码之间的区别是什么
代码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.this
和String.
我假设当我在类上使用点运算符时,我正在访问它的静态方法(和/或变量,如果它们没有被隐藏)。
我对此进行了一些研究并得出结论,在使用String.
时我正在访问String
静态方法..但在使用String.this.
时我正在访问我的类的方法Buttonz
正在扩展。
这是对的吗?
如果我是对的并且在浪费时间,我道歉。我需要确保继续前进。谢谢。答案 0 :(得分:0)
String.this
是“合格的this
”语法。它用于引用this
,如果当前类是String
(在这种情况下不是),或者这是一个本地或匿名类(一种内部类),包含此类的名为this
的封闭类的String
。如果这个班级在另一个班级里面,你没有告诉我们;我怀疑是这样的。但即使它是,名为String
的封闭类也不是java.lang.String
,它必须是名为String
的其他类,因为您无法将代码添加到现有类中。然后,我高度怀疑它会有一个名为charAt()
的方法,它返回一些可以传递给new String()
的东西。总而言之,这不是真正的代码。