class Person
{
private int age;
public void setAge(int i)
{
if(i<0 || i>130)
return;
age = i;
}
public int getAge()
{
return age;
}
}
public class TestPerson
{
public static void main(String args[])
{ Person p1 = new Person();
p1.setAge(3);
p1.setAge(-6);
System.out.println(p1.getAge());
}
}我用ECLIPSE运行时 输出的是3 为什么不是 0呢?
{
private int age;
public void setAge(int i)
{
if(i<0 || i>130)
return;
age = i;
}
public int getAge()
{
return age;
}
}
public class TestPerson
{
public static void main(String args[])
{ Person p1 = new Person();
p1.setAge(3);
p1.setAge(-6);
System.out.println(p1.getAge());
}
}我用ECLIPSE运行时 输出的是3 为什么不是 0呢?
解决方案 »
- 基于Java 解析 xml 报文中的循环问题,急急~!在线等各位大神帮帮忙啊
- private不是私有的吗? 子类继承了他为什么还可以传值给private
- liferay portal例子
- 大家好,我想问一下,用jsp做网站,不用框架,安全么
- java程序获取tomcat的虚拟目录的问题?
- tomcat启动时的错误
- 为什么 process.waitFor();没有起作用 ?
- struts2和javabean的set/get方法命名规范不一致吗?
- 求救:在Jbuilder里能显示,浏览器里却不正常
- 单个jsp文件放在weblogic哪个目录下?
- <jsp:getProperty 乱码.....
- 救命....B/S架构的聊天系统 性能问题
if(i <0 || i>130)
return;
p1.setAge(-6) return; age=3
{
if(i <0 || i>130)
return;
age = i;
} 第一次setAge(3)
注意 你的if语句没有大括号。
此时 没有进入if语句没有执行return 设置age=3了第二次setAge(-6)
进入if语句 , 直接返回了 没有执行age=i;
所以打印的时候还是原来的age值
在没有大括号的情况下 if语法默认包含到下一条语句的分号结尾。
return;
age = i;
第一次给i赋值3,不符合if条件,那么age=3;第二次,给i赋值-6,符合if条件,那么就执行return语句,后面的age=i就没有执行。所以最后age=3
根本就不可能是0,楼主你的0是从哪来的啊?
age=0;
return;
}
age = i;
这样你就能得到0了;