美文网首页
Java中的get()与set()

Java中的get()与set()

作者: WEI_FENG | 来源:发表于2019-01-09 10:03 被阅读0次

    一、问题引入

    在程序的设计中,我们普遍的定义一个private变量,然后为这个变量加上get() 、set()方法,那为何不直接定义一个public变量呢?

    很多人是这样回答的:

    1、关系到安全性的问题,貌似具有说服力。但是,使用pubilc变量有何不安全呢?使用get()和set()安全在哪里呢?

    2、有些人回答是java良好的封装性。

    我的理解这一方法更多的作用是数据输入输出的控制。

    二、get()和set()作用

    (1)、安全性

    程序可以选择只读或者只写 或者读写都行。

    定义了一个圆类,定义了属性半径和π,半径只提供写的方法,但不提供读,而π只提供读,但不能写,并提供了一个计算周长的方法getC。在实际项目中,对一些类的设计时,严谨的设计是要考虑哪些类是只读或是只写的。

    (2)、灵活性

    如在定义一个Person类时,设置一个属性name,当取名字的时候,不只是显示名字,代码如下:

    (3)、封装性

    通过将类的成员变量声明为私有的(private),再提供一个或多个共有(public)方法实现对该成员变量的访问或修改,这种方法就被称为封装。

    实现封装可以达到如下目的:

    1、隐藏类的实现细节;

    2、让使用者只能通过事先定制好的方法来访问数据们,可以方便地加入控制逻辑,限制对属性不合理操作;

    3、便于修改,增强代码的可维护性;

    4、可进行数据检查

    (4)、健壮性

    其实java中对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作。提高代码的健壮性。

    简单小例子:

    总结

    一个类通常就是一个小的模块,我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其他一切内容。在进行程序的详细设计时,应尽量避免一个模块总结修改或操作另一个模块的数据,模块设计追求强内聚(许多功能尽量在类的内部独立完成,不让外面干预),弱耦合(提供给外部尽量少的方法调用)。

    相关文章

      网友评论

          本文标题:Java中的get()与set()

          本文链接:https://www.haomeiwen.com/subject/hurvrqtx.html