问答详情
源自:7-1 什么是 Java 中的封装

公有化的属性和set方法有什么区别

直接把属性私有化,通过set方法设置值。

和属性公有化,直接赋值有什么区别。

提问者:慕粉9 2016-09-15 08:25

个回答

  • qq_何必忙著為自己解釋_03169832
    2016-09-15 16:43:43
    已采纳

    公有化的属性,当面向对象时,用户可以随意的更改你的数据,而设置set和get方法,可以有效的防止用户随意的更改,也就是说用户只能在你设置的条件范围内才能更改你的数据。

    当然如果你仅仅是自己用,而不是用于前端的话,说没区别也是可以的

  • Jasonseven
    2016-09-15 10:51:50

    这样写的话是没有什么区别,但是如果你可以在set函数里面加一些限制条件的话,就起到一定的保护作用

  • 慕粉9
    2016-09-15 10:02:42

    public String name;//这个公有化的name属性,直接可以赋值
    
    public void get(String name) {
         name="123";
    }
    private String name;//这个私有化的name属性,公有化的set方法,通过set可以设置值,set是公有的,那和直接设置公有化的属性有什么区别
        
        public String getName() {
            return name;
        }
        public void setName(String newName) {
            name=newName;
        }


  • Jasonseven
    2016-09-15 09:41:18

    第一种方法下,不设置set方法话,外界无法对该属性实行操作,

    第二种的话,可以直接对该属性进行操作。

    使用第一种方法是为了实现数据的封装,对数据采取的一种保护措施