在我的主要方法中,我试图了解如何从另一个类调用变量。
我试图将其分解为最简单的解决方案,这样我就可以了解所涉及的逻辑。
我的包“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天时间,几乎所有的业余时间都试图弄明白这一点,请温柔我是专注但现在非常新手。在此先感谢,我希望我已正确提交。
答案 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"
}
在您的情况下,您想要创建其中一个,并且您希望制作setter
和getter
(或访问者和变种人,如果您&#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是对象)。
另一种方法是将方法和字段声明为静态(静态方法直接在类上调用),但我建议您在继续之前确保理解类和对象实例化的基本概念。