java get,Java中的get()与set()

一、问题引入

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

很多人是这样回答的:

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

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

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

二、get()和set()作用

(1)、安全性

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

8f43b6100510

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

(2)、灵活性

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

8f43b6100510

(3)、封装性

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

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

1、隐藏类的实现细节;

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

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

4、可进行数据检查

(4)、健壮性

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

简单小例子:

8f43b6100510

总结

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

8f43b6100510

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值