黑马程序员技术交流社区

标题: 关于类中的get***和set*** [打印本页]

作者: 黑马连家华    时间: 2012-2-28 21:16
标题: 关于类中的get***和set***
本帖最后由 Noword 于 2012-2-28 21:30 编辑

class PersonAge
{
        private int age
        public void setAge (int a)
        {
                if (a > 0 && a< 150)
                {        age = a;
                        speak();
                }
                else
                        System.out.println("Wrong age");
        }
        void speak()
        {
                System.out.println("age="+age);
        }
        public int getAge ()
        {
                return age;
        }
}
不知道这个getAge()方法有什么用呢?跟setAge有什么关系?
作者: 刘基军    时间: 2012-2-28 21:23
由于age被private修饰,根据修饰符的访问权限,在PersonAge类外,是无法直接使用age成员。而这时可以通过调用getAge()方法来获得age(getAge()是public修饰)
作者: 黑马连家华    时间: 2012-2-28 21:29
刘基军 发表于 2012-2-28 21:23
由于age被private修饰,根据修饰符的访问权限,在PersonAge类外,是无法直接使用age成员。而这时可以通过调 ...

跟我想的差不多,得到肯定了,我也就能放心地记下了~
作者: 冯兵兵    时间: 2012-2-28 22:00
为了提高程序的封装性和安全性,由于类中的成员被private修饰,这样在其他类中就无法直接访问和修改类中的成员。(个人见解)
作者: 丁晓宇    时间: 2012-3-1 12:28
封装 - 把属性私有化,提供共有访问方法,真正项目里的业务不必写在getter&setter中,因为会有相应的业务层根据业务来控制属性的。
作者: 胡军喜    时间: 2012-3-1 17:25
本帖最后由 胡军喜 于 2012-3-1 17:26 编辑

你的类中有age这个私有属性,这个属性只能本类可以访问,提供了getAge()和setAge()方法后,就可以通过这两个方法来操作类的age属性。
要不然,你又写了age属性,又不让外部类来操作它,那你写它有什么作用?
作者: a504079589    时间: 2012-3-1 18:53
PersonAge类中的age被限制了访问权限 private为私有的! 无法从别的类中直接调用 要提供一个能调用的方法  get() set() 把这些属性封装在PersonAge的类中 要想调用此类中的属性就要通过get()方法来调用  可以通过set()方法设定参数!




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