我试图将值从一个类的方法传递给其他类的方法。在其他一些方法中使用....所有类都在不同的文件中,但是在同一个包中。这可能通过继承(但是所有类都被导入)或其他任何东西......不能直接将值传递给hereToUse()
...试图简化代码以便编写一个虚拟代码
这是一个虚拟代码......(忽略一些基本错误,它是一个虚拟代码......重要的是访问hereToUse()
中的值)。提前谢谢..
A.java>>>>>>
class A{
public String name; // can't pass value here.... It must be Null
public void start(){
B obj = new B();
name = obj.getValueFrom("XYZ");
}
public static void main(String args[]){
A objA = new A();
objA.start();
}
}
B.java>>>>
class B{
public String nameB; // can't pass value here.... It must be Null
public String getValueFrom(String name){
nameB = name;
return nameB;
}
public void hereToUse(){
//System.out.println(getValueFrom("something"));
//Here i need a value "XYZ" ...
}
}
我们只能拨打start()
一次...... hereToUse()
被其他一些人调用...
这可能吗? ...我是java新手...请帮我解决这个问题
也给我一些解释。
输出为:null
预期输出是XYZ ......
答案 0 :(得分:0)
第一个问题是您尝试从静态上下文调用成员函数。尝试这样做会导致编译时错误。 this
关键字仅存在于非静态上下文中。我相信你希望你的main
方法看起来像这样:
public static void main(String args[]) {
A aInstance = new A();
aInstance.start();
System.out.println(aInstance.name);
}
在main
的第一行,我们创建了A
的新实例。然后我们调用start方法,最后将name
打印到控制台。