0

我会直奔主题。我还在学习一些语法,想知道这段代码有什么区别

代码 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正在扩展的方法。

这个对吗?

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

4

1 回答 1

0

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

于 2013-08-27T06:50:22.100 回答