一道简单的java面试题
1.下面代码运行的结果是( )
public class Ceshi{
public String str = “”;
public Ceshi objCeshi;
public Ceshi(String str2){
this.str = str2;
}
public getString(String str3){
objCeshi = new Ceshi(str3);
}
public static void main(String[] args){
Ceshi obj = new Ceshi(“hello”);
Obj.getString(“word”);
System.out.println(obj.str);
}
}
A.hello
B.helloword
C.word
D.wordhello
本人菜鸟,有高手帮我解答下为什么吗?能详细点当然最好
[解决办法]
A
getString()创建了objCeshi,将word赋值给了str,可是这个str是对象objCeshi的,并不是obj的str。你可以把System.out.println(objCeshi.str);放到getString()或许你能明白点。
[解决办法]
public class Ceshi{ public String str = ""; public Ceshi objCeshi;//声明了一个实例未初始化 public Ceshi(String str2) { this.str = str2; } public void getString(String str3) { objCeshi = new Ceshi(str3);//在这里初始化 } public static void main(String[] args) { Ceshi obj = new Ceshi("hello"); obj.getString("word");//在这里初始化objCeshi System.out.println(obj.str);//这里的obj还是外层Ceshi的实例 由于str是public的所以输出时hello }}
[解决办法]
System.out.println(obj.objCeshi.str);