从昨天开始我就开始用Java编程,而我(从昨天开始)一直是我一生中最大的问题。
例如,假设我有这样的代码:
public class itsAClass {
static private String A;
public static void main() {
A = "This should be changed";
}
public String something() {
return A;
}
}
我想在另一个类中使用方法something()
来获取A
的字符串语句,但是我只有null
。
如何更改A
的值,以便另一个类可以获取值"This should be changed"
?
答案 0 :(得分:1)
您可以在something()方法中调用main()方法。
public class itsAClass{
static private String A;
public static void main() {
A = "This should be changed";
}
public String something() {
main();
return A;
}
public static void main(String[] args){
itsAClass a1 = new itsAClass();
System.out.println(a1.something());// prints This should be changed
}
}
答案 1 :(得分:0)
您必须调用main()
函数。
在另一堂课中:
itsAClass aClassObj = new itsAClass();
aClassObj.main();
// or rather itsAClass.main() as it is a static function
// now A's value changed
System.out.println(aClassObj.something());
答案 2 :(得分:0)
设置私有变量值的方法是通过类中的setter和getter方法。
下面的示例
public class Test {
private String name;
private String idNum;
private int age;
public int getAge() {
return age;
}
public String getName() {
return name;
}
public String getIdNum() {
return idNum;
}
public void setAge( int newAge) {
age = newAge;
}
public void setName(String newName) {
name = newName;
}
public void setIdNum( String newId) {
idNum = newId;
}
}
答案 3 :(得分:0)
如果您只想使此代码生效,那么也可以使something()成为静态。
但这不是解决此问题的正确方法。
如果要在主类中保存代码,可以执行以下操作:
public class AClass {
private String a;
public static void main() {
AClass myC = new AClass();
myC.setA("This should be changed");
// than use myC for your further access
}
public String something() {
return a;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
}
如果要通过外部类访问它而没有直接引用,则可以签出单例模式。
public class AClass {
private final static AClass INSTANCE = new AClass();
private String a;
public static void main() {
getSingleton().setA("This should be changed");
}
public String something() {
return a;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public static AClass getSingleton() {
return INSTANCE;
}
}
这样,您就无法从代码的任何位置通过AClass.getSingleton()访问它。