最近几天我一直在使用Java,因此对于Java编程我还是很陌生。
我目前正在阅读一堆在线教程,并尝试学习尽可能多的内容。在一个教程中,我们将学习如何正确使用对象。制作视频的人使用的是在线编译器,而我则在Eclipse中使用。
在我的代码中,我有两个类
第一个叫做objectDesign
public class objectDesign {
public static void main(String[] args) {
System.out.println("We are creating a new PEZ dispenser");
PezDispenser dispenser = new PezDispenser();
System.out.printf("The dispenser is %s", dispenser.characterName);
}
}
第二个叫做PezDispenser
public class PezDispenser {
public String characterName;
public static void main(String[] args) {
String characterName="Mario";
}
}
目标是定义对象应该是谁的角色。我使用了一个名为characterName的字符串,并将其设置为Mario,我想在运行objectDesign类时返回它。我公开考虑了字符串,这将使objectDesign类可以找到信息。但是,每次我运行代码时,控制台都会返回“饮水机为空”。
我在做什么错了?
答案 0 :(得分:0)
我想补充一下GBlodgett's comment,您的程序有两个入口点,其中只有一个被执行。
此外,您实际上从未在characterName
实现中设置PezDispenser
字段,因为您要在静态main
方法中声明一个与任何对象无关的附加局部变量'字段。
由于我没有足够的声誉来发表评论,因此我将其添加为答案。
答案 1 :(得分:0)
您可以使用以下代码
包com.stackoverflow;
公共类ObjectDesign {
public static void main(String[] args) {
System.out.println("We are creating a new PEZ dispenser");
PezDispenser dispenser = new PezDispenser("Mario");
System.out.printf("The dispenser is %s", dispenser.characterName);
}
}
包com.stackoverflow;
公共类PezDispenser {
public String characterName;
public PezDispenser(String characterName) {
// TODO Auto-generated constructor stub
this.characterName=characterName;
}
}
答案 2 :(得分:0)
这里有几种方法
选项1:
公共类PezDispenser {
public String characterName = "Mario";
public static void main(String[] args) {
String characterName="Mario"; // This statement is never executed because this class's main was never invoked.
}
}
选项2:
public class PezDispenser {
public String characterName;
public static void main(String[] args) {
String characterName="Mario";
}
}
public class objectDesign {
public static void main(String[] args) {
System.out.println("We are creating a new PEZ dispenser");
PezDispenser dispenser = new PezDispenser();
dispenser.characterName = "Mario";
System.out.printf("The dispenser is %s", dispenser.characterName);
}
}
这些不是最佳选择,但是按照您试图实现的目标进行操作应该可以达到目的。