public class PersonTest {
private int age = 20;
private String name = "Hello";
public String getInfo()
{
String name = "XiaoBai";
int age = 12;
if (name != null)
{
return "Name: "+ name + "\n" +"age:"+ age; //这里访问的是局部变量
}
return "Name: "+ this.name + "\n" +"age:"+ this.age; //这里访问的是成员变量
}
public static void main(String[] args) {
PersonTest p1 = new PersonTest();
System.out.println(p1.getInfo());}}String name = "XiaoBai";这个地方如何修改,才能输出成员变量的值,而不是局部变量的值?
private int age = 20;
private String name = "Hello";
public String getInfo()
{
String name = "XiaoBai";
int age = 12;
if (name != null)
{
return "Name: "+ name + "\n" +"age:"+ age; //这里访问的是局部变量
}
return "Name: "+ this.name + "\n" +"age:"+ this.age; //这里访问的是成员变量
}
public static void main(String[] args) {
PersonTest p1 = new PersonTest();
System.out.println(p1.getInfo());}}String name = "XiaoBai";这个地方如何修改,才能输出成员变量的值,而不是局部变量的值?
或者直接就private String name;
这样写纯粹是想告诉你,当名字相同时,怎么访问的是局部变量,怎么访问的是成员变量
这个程序本身是没有实际意义的,正常的时候是不会这样写的,楼主不用深究不过还是稍微解释一下吧:
首先,要想返回的是成员变量的值,判断条件需为假,即name应该为null,这里的name是前面的局部变量,所以要改的话,可以将其赋值为空,即String name = null