Java - 从另一个类调用变量

时间:2014-11-14 18:16:50

标签: java

在我的主要方法中,我试图了解如何从另一个类调用变量。

我试图将其分解为最简单的解决方案,这样我就可以了解所涉及的逻辑。

我的包“var”中有两个类:

第1类 - Source.java

package var;

public class Source {

    int source1;

    class setSource{

    int source1 = 5;

}
}

第2类 - Var.java

package var;

public class Var {

    public static void main(String[] args) {

        int Var;

        Var = Source.setSource();

    }

}

第一次在这里发帖但是我已经花了4天时间,几乎所有的业余时间都试图弄明白这一点,请温柔我是专注但现在非常新手。在此先感谢,我希望我已正确提交。

4 个答案:

答案 0 :(得分:5)

好的,我可以看到你在想什么但是你的某些语义不正确。您要定义的是method。方法采用以下结构:

<access modifier> <return type> <method name> (<method arguments>)

所以例如

public void doSomething(String value) {
    // This is the public method that returns nothing. It is called doSomething
    // It expects a string value that it will call "value"
}

在您的情况下,您想要创建其中一个,并且您希望制作settergetter(或访问者和变种人,如果您&#39;我是豪华的。)

您的Setter

这只是一种常规方法。其目的是设置某些类字段的值。所以,让我们来定义我们的课程。

public class MyClass {
    private int num;
}

现在我们已经有了一个MyClass的课程num。但是哦,不,它是private,所以让我们创建一个setter,以便用户可以更新值。按照我们的方法公式,我们从public访问开始修改。然后我们定义返回类型,即void,因为它不返回任何内容。该方法的名称应遵循java命名约定,即单词&#34; set&#34;然后是成员的名字,最后是setter的值..或者所有在一起:

public void setNum(int num) {
    this.num = num;
}

这将使用您传入的值更新类中的值。非常好!

您的获取者

嗯,这很简单。按照我们的公式,它是public的方法,因为每个人都可以访问它;它返回一些东西(在这种情况下是int),这是返回类型;这个名字遵循&#34; get&#34;的惯例。后跟名称,它不需要参数。

public int getNum() {
    return num;
}

这将返回num的值。

最后,使用它们!

public class MainClass {
    public static void main(String[] args) {
        MyClass myClass = new MyClass();

        // Create a new MyClass instance.

        myClass.setNum(4);
        // Update the value in the class with the number 4.

        System.out.println("The number is " + myClass.getNum());
        // Outputs: "The number is 4"
    }
}

答案 1 :(得分:2)

您正在使用静态调用,因此您必须设置此变量public static

public static int source1;

直接访问它们:

Var = Source.source1;

答案 2 :(得分:2)

你的概念没有很好的完善。

你的课应该是这样的

public class Source {
    private int source;
    public void setSource(int src){ // Called setter
       source = src;
    }

    public int getSource(){ // Called getter
       return source;
    }    
}

public class Var {    
    public static void main(String[] args) {
        int Var;
        Source source = new Source();
        source.setSource(10);
        Var = source.getSource(); // Var has value 10 in it.
    }
}

答案 3 :(得分:1)

Source是一个类,您需要创建一个对象,该对象是该类的成员,然后在其上调用该方法。此外,方法调用的语法不正确。

package var;

public class Source {

    int source1 = 1;

    public void setSource(){

         source1 = 5;

    }
}

然后:

package var;

public class Var {

    public static void main(String[] args) {    

        Source source = new Source();
        System.out.println(source.source1);

        source.setSource();
        System.out.println(source.source1);
    }

}

我希望在你编译并运行时对你有意义。

(请注意,Java区分大小写。在上面的示例中,Source是类,source是对象)。

另一种方法是将方法和字段声明为静态(静态方法直接在类上调用),但我建议您在继续之前确保理解类和对象实例化的基本概念。