本帖最后由 王桂丽 于 2012-7-23 11:59 编辑
/*
需求:描述人的年龄
思路与步骤:1、定义一个类类名为Person
2、在Person类中定义私有的age属性,并提供访问方法
3、在主函数中新建一个Person对象,并用p接收
4、在主函数中调用Setage方法,并赋符合if条件的值30,查看结果
5、在主函数中调用Setage方法,并赋不符合if条件的值-30,查看结果
*/
class PersonDemo
{
public static void main(String[] args)
{
Person p=new Person();
p.Setage(30);//在主函数中调用Setage方法,并赋符合if条件的值30,查看结果
p.Setage(-30);//在主函数中调用Setage方法,并赋不符合if条件的值-30,查看结果
}
}
class Person
{
private int age;//定义私有的age属性
public void Setage(int a)//提供访问age的方法
{
if(age>0&&age<130)
{ age=a;
speak();//调用speak方法
}
else
System.out.println("非法年龄");
}
public int Getage()
{
return age;//返回age的值
}
private void speak()
{
System.out.println("age="+age);
}
}
运行结果是:
[img]file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/2531988876/QQ/WinTemp/RichOle/$W}D{3R2O6[BITV1_6EUAF6.jpg[/img]
疑问:1、为什么输入年龄为30时,运行结果是“非法年龄”?是因为if语句没执行到吗?为什么没执行到?
2、Setage函数中必须得写returnage的语句吗?
3、为什么有时Getage函数中没有写“return age”语句,是个空函数,编译时会提示在Setage函数内缺少返回语句?是因 为 函 数名中有get吗?还是说不管函数名是什么,编译时都会提示缺少返回语句?是否都会提示范围(即在第几行缺少返回值)?
|
|