从Java中的其他类引用对象时出错

时间:2018-08-08 16:02:21

标签: java html eclipse class object

最近几天我一直在使用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类可以找到信息。但是,每次我运行代码时,控制台都会返回“饮水机为空”。

我在做什么错了?

3 个答案:

答案 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);
    }
}

这些不是最佳选择,但是按照您试图实现的目标进行操作应该可以达到目的。