直接来第一篇吧—-JAVA的三大特性之一:封装(Encapsulation)
1.大概概念
封装是面向对象的重要原则,就是把对象的属性和操作结合成为一个独立的整体,并尽可能的隐藏对象内部的实现细节。对数据进行访问的时候只能通过已经定义的接口,控制着用户对类的修改和访问数据的程度。
2.作用
通过封装,可以实现对属性的数据访问限制,同时增加了程序的可维护性。由于取值方法和赋值方法隐藏了实现的变更,因此并不会影响读取或修改该属性的类,避免了大规模的修改,程序的可维护性增强。
3.理解
说到这里,无非就是用public、protected、default、private这四个关键字来进行封装了。所以这里要明白这四个关键字都有什么作用,什么时候能访问,什么时候访问不了,有个经典的表格:
– | 类内部 | package内 | 子类 | 其他 |
---|---|---|---|---|
public | 允许 | 允许 | 允许 | 允许 |
protected | 允许 | 允许 | 允许 | 不允许 |
default | 允许 | 允许 | 不允许 | 不允许 |
private | 允许 | 不允许 | 不允许 | 不允许 |
当然,由此会得到一些其他的修饰词,如abstract、static、final等,之后再看吧,这里public、private很容易理解,难得是protected和default,我是这么理解的:protected是保护的意思,保护肯定是保护自己的孩子,所以子类可以访问。
具体一点:protected(继承访问权限),被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。default(包访问权限),只允许在同一个包中进行访问。
大概就是这些了吧,当然如果访问不到的话,就用getter、setter方法吧,下面是参考的一些网址:
http://www.cnblogs.com/xwdreamer/archive/2012/04/06/2434483.html
http://blog.sina.com.cn/s/blog_5dbdb9780100b6ji.html
http://blog.csdn.net/xinxin19881112/article/details/2944752
http://blog.csdn.net/chenssy/article/details/12757911