1.面向对象向的三大特征:封装,继承,多态。
(1)封装:利用抽象数据类型(类)将数据和基于数据的操作(方法)绑定在一起,数据被保存在类的内部,系统只有通过被授权的操作方法才能够访问数据。
封装的特点:*数据和基于数据的操作方法构成一个统一体;
*类的操作方法实现细节被隐藏起来,只是通过操作接口名称进行调用,操作内部的变动不会影响接口的使用;
(2)继承:是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为,java中的继承是单继承,即一个类只允许拥有一个父类。
(3)多态:多态是指一个程序中同名但不同方法共存的情况,方法同名表明它们最终目的和功能是相同的,但遇到的情况可能有所不同,所以需要定义含不同具体内容的方法,java提供了两种机制:覆盖与重载。
2.封装的实现
java封装类通过三个步骤实现:
(1)修改属性的可见性,限制访问。
(2)设置属性的修改和读取方法。
(3)在读取属性的方法中,添加对属性读取的限制。
3.对象之间通过封装与组合来设计,具有“高内聚,低耦合”的特点。比如A类里有B类的引用,则A的实例对象就可以看成B的实例对象组合而成。
4.protected修饰的方法和变量仅供给同一个包中的类和子类访问。
5.Object的方法:
(1).clone方法
保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。
(2).getClass方法
final方法,获得运行时类型。
(3).toString方法
该方法用得比较多,一般子类都有覆盖。
(4).finalize方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。
(5).equals方法
该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。
(6).hashCode方法
该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。
就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。
(7).notify方法
该方法唤醒在该对象上等待的某个线程。
(8).notifyAll方法
该方法唤醒在该对象上等待的所有线程。
6.重载的方法的方法名相同,但参数的类型和个数不能相同。
7.(1).父类中的方法在子类中必须可见,即子类继承了父类中的该方法(可以显式的使用super关键字来访问父类中的被重写的方法), 如果父类中的方法为private类型的,那么子类则无法继承,也无法覆盖。
(2).子类和父类的方法必须是实例方法,如果父类是static方法而子类不是实例方法,或者相反都会报错。
如果父类和子类都是static方法,那么子类重写或者覆盖父类方法。
8.封装将内部的复杂结构隐藏了起来,有利于安全操作,继承可以实现对象之间的共性与特性,减少重复操作,为开发带来便利,多态性更贴近人的使用习惯,使程序更方便。
9: