黑马程序员技术交流社区

标题: 技术问题 [打印本页]

作者: 胡家兵    时间: 2015-5-5 10:15
标题: 技术问题
class Person
{
    private int age;
    public void setAge(int a)
    {
          if(a>0 && a<130)
          {
               age=a;
               speak();
           }
          else
               System.out.println("feifa");
    }
    public int getAge()
    {
          return age;
     }
   void speak()
   {
         System.out.println("age="+age);
   }
}
class PersonDemo
{
    public static void main(String[] args)
    {
         Person p=new Person();
          p.setAge(40)
    }
}
我想问这个程序里面setAge那段到底什么用啊?从头到尾都没看见怎么用。能删除吗

作者: 淡定..    时间: 2015-5-5 10:17
setAge和getAge是同时出现的,意思,一个是设置值,一个返回值
作者: ZSMAN    时间: 2015-5-5 12:13
一般情况下,属性都要private,所以有个get和set还是很有必要的~~
作者: 肖某    时间: 2015-5-5 12:40
最后不是用到了吗?p.setAage(40)?还有 你最后少了个分号
作者: 1017161726    时间: 2015-5-5 13:09
其他类要想访问Person类中的私有成员-age,是不能直接访问到的,所以Person类提供了一个setAge()方法,你可以试一试,直接在主函数访问Person中私有的age,会报错:可以在Person中访问。
作者: zuoyou    时间: 2015-5-5 13:22
setage 为了设置age这个属性的值啊!age是private修饰的。
作者: 396460221    时间: 2015-5-5 14:22
一般定义属性不会暴露出去给别人直接访问的,但总要让别人用到,所以要定义一个方法来设置和获取该属性。
作者: Demomiku    时间: 2015-5-5 16:22
删除后你就没法设置age的值的啊,它是私有的
作者: 19期1910    时间: 2015-5-5 22:07
set成员变量是赋值 ,也可以用带参构造方法来赋值,二选一。
作者: 雪风飞花    时间: 2015-5-5 22:20
有用啊,这个方法可以对age赋值并对age范围进行判断
作者: 殃金咒    时间: 2015-5-6 00:27
长姿势了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2