刚才看张孝祥的视频教程,说设立了2个方法,setAge和getAge,实现了封装,这样能让其他类访问age这个变量,能限制对属性的不合理操作,但是我在TestPlayer这个类中试验了下,打出来的结果还是"my age is -30",并没有返回啊,请帮忙解答下,要怎么改才能让setAge直接返回age<0的那些值呢?
class Player
{ private int age;
void shout()
{
System.out.println("my age is "+age);
}
public void setAge(int x)
{ if (age <0)
return;
age=x;
}
public int getAge()
{
return age;
}
public static void main(String [] args)
{
Player p1 = new Player();
Player p2 = new Player();
p1.age = -20;
p1.shout();
p2.shout();
}
}
class TestPlayer
{
public static void main(String [] args)
{
Player p1 = new Player();
Player p2 = new Player();
p1.setAge(-30);
p1.shout();
p2.shout();
}
}
class Player
{ private int age;
void shout()
{
System.out.println("my age is "+age);
}
public void setAge(int x)
{ if (age <0)
return;
age=x;
}
public int getAge()
{
return age;
}
public static void main(String [] args)
{
Player p1 = new Player();
Player p2 = new Player();
p1.age = -20;
p1.shout();
p2.shout();
}
}
class TestPlayer
{
public static void main(String [] args)
{
Player p1 = new Player();
Player p2 = new Player();
p1.setAge(-30);
p1.shout();
p2.shout();
}
}
if (x < 0)//这个判断,要判断输入的x是否小于0.如果age的话,默认值是0,所以不会成立,也就不会返回了
return;
age = x;
}
public void setAge(int x)
{ if (age <0) //这里你怎么还是写成age啊,是x,应该是你的笔误吧
//你这里的age是成员变量age,你还没赋值呢,初始是0,0<0当然不成立了,当然不会return了。如果你这理解就难办了
return;
age=x;
}