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

来源:7-1 什么是 Java 中的封装

慕粉9

2016-09-15 08:25

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

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

写回答 关注

4回答

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

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

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

    慕粉9

    谢谢了

    2016-09-16 08:56:43

    共 1 条回复 >

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

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

    慕粉9

    大部分属性set方法都没有什么限制,也就是说不加限制条件,基本没用了?

    2016-09-15 11:16:56

    共 2 条回复 >

  • 慕粉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方法话,外界无法对该属性实行操作,

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

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

    慕粉9

    看下面

    2016-09-15 10:03:09

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530646 学习 · 6091 问题

查看课程

相似问题