我是java的新手,我试图将以下示例中的变量从一个类传递到另一个类,我想知道这是否可能以及如果是这样我将如何处理它。
由于此代码不起作用,因为它不是静态的。
主类
public class testAll
{
public static void main(String[] args)
{
One one = new One();
Two two = new Two();
}
}
第一堂课:
public class One
{
public int test = 4;
public int getTest()
{
return this.test;
}
}
第二节课:
public class Two
{
public void value()
{
System.out.print("Var is: " + One.getTest());
}
}
谢谢,
纳兹
答案 0 :(得分:2)
让我们考虑一下,如果你想从B类访问A类变量,那么A类需要了解B类。
public class A {
public A(B classB){
this.classB = classB;
}
public void printValue(){
System.out.println(this.classB.getTest());
}
}
现在,您需要在构造函数中将ClassB的实例传递给ClassA,以便Class A在调用printValue()时具有对ClassB的引用;
ClassB b = new ClassB();
ClassA a = new ClassA(b);
b.getTest();
a.printValue();
答案 1 :(得分:1)
您必须先为Class One创建一个实例。试试这个
public void value()
{
One one_object = new One();
System.out.print("Var is: " + one_object.getTest());
}
答案 2 :(得分:1)
public class Two {
private One one;
public Two(One one) {
this.one = one;
}
public void printValue() {
System.out.print("Var is: " + one.getTest());
}
}
public class Main {
public static void main(String [] args) {
One one = new One();
Two two = new Two(one);
two.printValue();
}
}
答案 3 :(得分:0)
有两种方式 - 传递引用或传递值:
public class One {
private int value = 0;
public One(final int value) {
this.value = value;
}
public int getValue() { return value; }
}
public class Two {
private One one = null;
public Two(final int value) {
this.one = new One(value);
}
public Two(final One one) {
this.one = one;
}
public int getValue() { return one.getValue(); }
}
将引用传递给One实例时,将从One读取该值,并仅更改One实例内部保存的值。传递一个原语(int,boolean ...)时,该值被两个实例复制并“拥有”。阅读更多关于参考和价值观的差异,以掌握这个想法。一旦你明白了,这很简单。