一分钟简单了解Effective java - 第14条 在共有类中使用访问方法而非公有域
2017-08-01 16:02
330 查看
在类中添加成员变量的时候,应该设置成private,不能将其直接暴露在外部,另外使用get和set方法对该数据域进行操作,这样体现了面向对象的封装性
①直接使用public的数据域和为private的数据域添加上public 的get和set方法,这两种情况对于外部的使用看起来是一致的,实则有很大隐患,比如如果数据域只想提供给外部获取数据的方法而不提供设置数据的方法,此时即可将数据域设置成private,并添加public的get方法
②在实体类中只有数据域的get方法和set方法,换成更复杂的类和方法.如果要修改内部逻辑,外部无需关注内部的逻辑变化,依然调用原接口进行调用.
③get和set中可以加入操作,比如set方法中加入null判断
直接使用公有域无法实现以上条件.
①直接使用public的数据域和为private的数据域添加上public 的get和set方法,这两种情况对于外部的使用看起来是一致的,实则有很大隐患,比如如果数据域只想提供给外部获取数据的方法而不提供设置数据的方法,此时即可将数据域设置成private,并添加public的get方法
②在实体类中只有数据域的get方法和set方法,换成更复杂的类和方法.如果要修改内部逻辑,外部无需关注内部的逻辑变化,依然调用原接口进行调用.
③get和set中可以加入操作,比如set方法中加入null判断
public class Time { private static final int HOURS_PER_DAY = 24; private static final int MINUTES_PER_HOUR = 60; public final int hour; public final int minute; public Time(int hour, int minute){ if(hour < 0 || hour >= HOURS_PER_DAY){ throw new IllegalArgumentException("Hour:" + hour); } if(minute < 0 || minute >= MINUTES_PER_HOUR){ throw new IllegalArgumentException("Min:" + minute); } this.minute = minute; this.hour = hour; } }
直接使用公有域无法实现以上条件.
相关文章推荐
- Effective Java 第14条:在公有类中使用访问方法而非公有域
- effective java(14) 之在公有类中使用访问方法而非公有域
- 第14条:在公有类中使用访问 方法而非公有域
- 第14条:在公有类中使用访问方法而非公有域
- 《Effective java》读书记录-第14条-在公有类中使用访问方法而非公有域
- 简单了解Effective java - 第7条 避免使用终结方法
- 2015070702 - EffactiveJava笔记 - 第14条 共有类使用访问方法而非共有属性
- MySQL---数据库从入门走向大神系列(七)-Java访问数据库配置及简单使用方法execute
- 第14条:在公有类中使用访问方法而非公有域
- Java学习笔记11:在公共类中使用访问方法而非公有域
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Windows使用VNC viewer访问Ubuntu 14.04远程桌面的简单方法
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- 在共有类中使用访问方法而非共有域
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- effective java读书笔记14:在公有类中使用访问方法而非公有域
- 简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码。
- 【Effective Java】Ch4_Class:Item14_在public类中应该使用访问方法而不是public域
- Effective Java:Ch4_Class:Item14_在public类中应该使用访问方法而不是public域
- 第14条:在公有类中使用访问方法而非直接使用公有域