面向对象的三大特征:
- 封装(Encapsulation)
- 继承(Inheritance)
- 多态(Polymorphism)
类和对象是面向对象方法的核心概念:
- 类:是对某一事物的描述,是抽象(抽出象的部分)的,概念上的;类描述了对象的属性,行为(方法,函数);
- 对象:是实际存在的该类事物的某一个个体,因而也成为实例(instance);
一个类可以产生多个对象;面向对象的重点是类的设计;
一、面向对象之——封装/隐藏
为什么需要封装?封装的作用和含义?
我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要触摸显像管吗?
我要开车,有必须需要了解汽车的构造原理吗?
封装:顾名思义,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
封装的目的:隐藏对象内部的复杂性,只对外公开简单的接口。增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员。 便于外界调用,从而提高系统的可扩展性、可维护性。
封装的大致原则:
2、把所有的属性藏起来.
3、封装好处:将操作隔离;便于使用;提高重用性;安全性。
我们程序设计要追求:”高内聚,低耦合“//比如苹果手机的设计,只有一个按钮
高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅暴露少量的方法给外部使用。
二、使用访问控制符,实现封装:
java的访问控制符分为两类:类的访问控制符,属性和方法的访问控制符。
1. 类的访问控制符有两种:public, default(默认的,什么都不用写)
public修饰类时,文件名必须与被public修饰的类名一致
default就是包内访问控制符。
当然对于内部类还可以有static修饰,而用static修饰的内部类叫作嵌套类。
2. 属性和方法的访问控制符有四种:private, default, protected, public
可以用如下的表描述:(*表示可访问,空表示不可访问)
封装要点:
类的属性的处理:
1.一般使用private。(除非本属性确定会让子类继承)
2.提供相应的get/set方法来访问相关属性。这些方法通常是public,从未提供对属性的读取操作。
(注意:boolean变量的get方法是用:is开头!)
类的方法的处理:
1.一些只用于本类的辅助性方法可以用private修饰
2.希望被其他类调用的方法用public修饰
本文参考:http://blog.chinaunix.net/uid-20546521-id-1927636.html