Java的三大基石之封装
Java基于面向对象开发,有三大基石,分别为封装,继承和多态。现在就讲解一下三大基石之封装。
封装目的:
1.限制在类的外部对类内部成员进行访问,只能通过公共借口来访问类的成员数据。
2.屏蔽细节:这是程序设计的基本思想,便于程序功能的扩展和程序的维护。
封装类:
1.大多数变量都是私有的,变量通过他们自己类的方法修改,一个类只向其它类公开一部分成员(通常是方法)作为接口;
2.若变量或方法为公有,它就是接口的一部分,其它类可以访问它;若为私有,它是实现的一部分,只有类自己的成员可以访问它。
访问控制符:
Java
通过限制访问和被修饰者的可见性达到封装的效果。接下来是四个控制符的控制范围:
Default(默认) public(公共) protected(保护) private(私有)
| 同一个类 | 同一个包 | 不同包的子类 | 不同包的非子类 |
private | √ |
|
|
|
default | √ | √ |
|
|
protected | √ | √ | √ |
|
public | √ | √ | √ | √ |
私有化构造方法:
属性前+private:该属性只能在当前类内部被访问;
在类外对private属性访问需要:创建getter、setter操作接口和赋值:
(eclipse自动生成get/set方法:右键,source->generate getters and setters)
在方法中加入属性控制语句,对属性值得合法性进行判断。
注意:用带参数的构造方法给属性赋值的时候,可以越过setMonth()等方法,造成赋值可以小于0依然出现,因此推荐在带参数的构造方法里面耶使用调用setMonth()方法来做!不要用传统的参数复制方法来做!可以避免bug!