Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
2017-09-21 16:53
281 查看
使类和成员的可访问性最小化
此条实际上就是讲解面向对象的三大特性之一——封装。
先说一下四个修饰符分别为:
private——只有在声明该成员的类才能访问,其他类都不能访问。
default(默认访问修饰符)——又称为“包级私有”,也就是说只有在同一个包下的类才能访问,就算是它的子类但不是在同一包下也不能访问。
protected——有两种情况可以访问:1、和default一样同一个包下的类能够访问。2、它的子类也能访问。
public——任何类都能访问。
为什么要将可访问性最小化呢?
1、实际上原因在于可维护,一旦你将可访问性置为protected或者public,意味着很大范围的类都能对它就行访问、修改、引用等等,如果你修改了这个变量意味着你要同时修改很多其他的类。但如果可访问性很小private的话,意味着你修改了这个变量,其他类并不知道啊,只对属性相关的类修改就行,不用担心还有其他哪个地方有用到。
2、对于成员变量通常使用private类,如果完全不提供访问的渠道或者途径似乎也是“死”的,这是setter/getter方法,有人在初学时可能会发出疑问,既然提供了能访问修改这个成员变量的方法,那何不直接置为public呢?原因在于方法是可以提供检查的,它能检查传入的值是否符合规范。
3、另外还有一条规则限制了降低方法的可访问性的能力,那就是如果方法覆盖了超类中的一个方法,子类中的访问级别就不允许低于超类中的访问级别。就是说如果父类的方法是public,那么子类就不能是private;如果父类的方法是protected,那么子类就只能是protected或者public。
在公有类中使用访问方法而非公有域
这一条实际上我们在上一条已经说到对于类的成员变量,我们通常对它的访问控制置为private,并为它提供getter/setter方法。
此条实际上就是讲解面向对象的三大特性之一——封装。
先说一下四个修饰符分别为:
private——只有在声明该成员的类才能访问,其他类都不能访问。
default(默认访问修饰符)——又称为“包级私有”,也就是说只有在同一个包下的类才能访问,就算是它的子类但不是在同一包下也不能访问。
protected——有两种情况可以访问:1、和default一样同一个包下的类能够访问。2、它的子类也能访问。
public——任何类都能访问。
为什么要将可访问性最小化呢?
1、实际上原因在于可维护,一旦你将可访问性置为protected或者public,意味着很大范围的类都能对它就行访问、修改、引用等等,如果你修改了这个变量意味着你要同时修改很多其他的类。但如果可访问性很小private的话,意味着你修改了这个变量,其他类并不知道啊,只对属性相关的类修改就行,不用担心还有其他哪个地方有用到。
2、对于成员变量通常使用private类,如果完全不提供访问的渠道或者途径似乎也是“死”的,这是setter/getter方法,有人在初学时可能会发出疑问,既然提供了能访问修改这个成员变量的方法,那何不直接置为public呢?原因在于方法是可以提供检查的,它能检查传入的值是否符合规范。
3、另外还有一条规则限制了降低方法的可访问性的能力,那就是如果方法覆盖了超类中的一个方法,子类中的访问级别就不允许低于超类中的访问级别。就是说如果父类的方法是public,那么子类就不能是private;如果父类的方法是protected,那么子类就只能是protected或者public。
在公有类中使用访问方法而非公有域
这一条实际上我们在上一条已经说到对于类的成员变量,我们通常对它的访问控制置为private,并为它提供getter/setter方法。
相关文章推荐
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)
- Effective Java 第14条:在公有类中使用访问方法而非公有域
- 学习effective java-14类和接口之在公有类中使用可访问的方法,而不是使用公有域
- effective java(14) 之在公有类中使用访问方法而非公有域
- 《Effective java》读书记录-第14条-在公有类中使用访问方法而非公有域
- Effective Java - 类和接口 - 使类和成员的可访问性最小化(java 访问级别)
- JavaSE7基础 借助公有的成员方法 访问私有的成员方法
- 第14条:在公有类中使用访问 方法而非公有域
- EffectiveJava(14)在公有类中使用访问方法而非公有域
- 在公有类中使用访问访问方法而非公有域