好吧,所以我是Java的新手,对于任何能够回答它的人都有一个快速的问题。
这个doSomething方法调用了什么对象?它与调用this.doSomething()?
相同public class Something{
public void doSomething(){
System.out.println("Something is done");
}
public Something(){
//what object is this being called on?
doSomething();
}
public static void main(String[] args){
Something foo = new Something();
}
}
任何帮助表示赞赏!
答案 0 :(得分:0)
这个被调用的对象是什么?
将分配给foo
的引用,在构造函数的范围内,它是 this
引用。是的,doSomething();
(在此上下文中)相当于this.doSomething();
通过向UUID
添加Something
(并在doSomething
中显示),我们可以看到这种情况,
public Something() {
uuid = UUID.randomUUID().toString();
doSomething();
}
private final String uuid;
public void doSomething() {
System.out.println(uuid);
}
然后再次在doSomething()
中调用main
public static void main(String[] args) {
Something foo = new Something();
foo.doSomething();
}
你会得到两次相同的UUID。
答案 1 :(得分:0)
是的,doSomething
是在Something类中定义的。因此,这与this.doSomething()
相同。
要从课堂外调用doSomething()
(在" Something
"类中声明),您需要像这样调用它:
public static void main(String[] args){
Something foo = new Something();
foo.doSomething();
}
答案 2 :(得分:0)
是。调用this.doSomething与调用doSomething()相同。不确定GUI正在使用什么。例如,如果您使用Eclipse并使用以下代码并单击doSomething,则会转到void doSomething方法。使用它只是对当前实例的引用。有关此http://www.boost.org/doc/libs/1_35_0/libs/serialization/doc/class_diagram.html
的详细信息,请参阅public class Something{
public void doSomething(){
System.out.println("Something is done");
}
public Something(){
//what object is this being called on?
this.doSomething();
}
public static void main(String[] args){
Something foo = new Something();
}
}