为什么这段代码不能产生它应该的输出?它应该返回:
1
42
MyThisTest a = 42
代码输出为空白。每当我为'public static void main(String [] args)设置花括号时,会弹出很多红线错误。任何人都知道如何工作...
public class MyThisTest {
public static void main(String[] args){}
private int a;
public MyThisTest() {
this(42); // calls the other constructor
}
public MyThisTest(int a) {
this.a = a; // assigns the value of the parameter a to the field of the same name
}
public void frobnicate() {
int a = 1;
System.out.println(a); // refers to the local variable a
System.out.println(this.a); // refers to the field a
System.out.println(this); // refers to this entire object
}
public String toString() {
return "MyThisTest a=" + a; // refers to the field a
}
}
答案 0 :(得分:1)
你的主要功能是错误的。它应该创建MyThisTest
并在其上调用frobnicate()
。
像
这样的东西public static void main(String[] args)
{
MyThisTest myThisTest;
myThisTest.frobnicate();
}
答案 1 :(得分:0)
您错过了主要功能中的任何操作:
public static void main(String[] args){}
应该是:
public static void main(String[] args)
{
MyThisTest thisTest = new MyThisTest();
thisTest.frobnicate();
}
主要功能是启动程序时调用的功能。 如果你不在那里做任何事情,什么都不会发生。因此,原始代码中的输出保持空白。
答案 2 :(得分:0)
主要方法是java程序的起点,需要在那里初始化对象。在初始化对象之前,无法调用已定义的构造函数。方法frobnicate也是对象级方法,它只能在实例上调用。你应该在main方法中做所有这些(正如其他人已经解释过的)