无法看到其他类的变量

时间:2015-05-02 06:03:54

标签: java netbeans

我的问题很简单,即使是我的Java 1课程,但我似乎无法解决这个问题。为什么我的主类不能看到在另一个中初始化的变量?我正在使用NetBeans。我正在创建项目Test123,然后是一个类TestStuff。两者都使用包test123。它们位于NetBeans将其发送到的同一个src文件夹中。

package test123;

public class Test123 {

public static void main(String[] args) {

    help = "hi";
    thank = "hello";

}

}

----------------------------------------------- -----------------

package test123;

public class TestStuff {
String help;
String thank;

public void weee(){

System.out.print("yay");
help = "me";
thank = "you";

}
}

3 个答案:

答案 0 :(得分:0)

变量helpthank实例变量。如果您创建类型为TestStuff的对象,则该对象将包含变量helpthank。 (如果您创建更多类型为TestStuff的对象,则每个对象都有自己的helpthank变量。)要获得它们,您必须创建一个类型为{的对象{1}}(即TestStuff实例),然后访问属于该对象的变量:

TestStuff

你只需要在TestStuff testObject = new TestStuff(); testObject.help = "hi"; testObject.thank = "hello"; 课程之外,而不是在课堂内。

答案 1 :(得分:0)

只需创建一个TestStuff类的实例,如:

TestStuff testobject= new TestStuff();
testobject.help="hii";
testobject.thank="hello"

将此代码放在main()方法内的Test123类中。 获取对变量的访问绑定到TestStuff类的对象。

答案 2 :(得分:0)

变量helpthank在类中声明,称为实例变量。该类的每个实例都有自己的变量副本。您应该将它们声明为私有,并提供getter / setter来访问它们。

    public class TestStuff {
        private String help;
        private String thank;

        public String getHelp() {
            return help;
        }

        public void setHelp(String help) {
            this.help = help;
        }

        public String getThank() {
            return thank;
        }

        public void setThank(String thank) {
            this.thank = thank;
        }

        public void weee() {
            System.out.println("yay");
            help = "me";
            thank = "you";
            }
     }

然后,您可以创建该类的实例并在该实例上调用方法。它将更改该实例的变量helpthank的值。

public class Test123 {
    public static void main(String[] args) {
        TestStuff testStuff = new TestStuff();
        System.out.println("Before: " + testStuff.getHelp() + " " + testStuff.getThank());
        testStuff.weee();
        System.out.println("After: " + testStuff.getHelp() + " " + testStuff.getThank());
    }
}

正如预期的那样,输出将是: 之前:null null 好极了 之后:我你