如果您创建了一个类,请说
public class Supplier {
String s;
public Supplier() {
s = "MyString";
}
}
现在,如果您尝试在同一个类的方法中访问s。运行代码时,变量s仍然为null。
我想知道构造函数如何影响变量。
答案 0 :(得分:0)
如上所述,这种行为不可能真的发生。变量仍有几种方法可以为空:
1)在设置变量之前,您正在调用问题中的方法。例如,请考虑以下类和方法:
public class MyClass{
private String string;
public MyClass(){
method();
string = "Hello";
}
public void method(){
System.out.println(string);
}
}
使用MyClass m = new MyClass();
构建对象将打印null
,因为在调用method()
时,尚未设置string
。
2)你正在调用错误的构造函数。
public class MyClass{
private String string;
public MyClass(){
method();
}
public MyClass(String s){
string = s;
method();
}
public void method(){
System.out.println(string);
}
}
使用MyClass m = new MyClass();
构建对象将打印null
,因为在调用method()
时,string
尚未设置,因为我们调用了错误的构造函数。使用MyClass m = new MyClass("Hello");
构建将解决此问题。