一、概念
提出一种计算机世界里解决复杂软件工程的方法论,拆解问题复杂度,从人类思维角度提出解决问题的步骤和方案。
程序 = 对象 + 消息
1.三大特征
1.1封装
将数据和代码捆绑到一起,以此实现对数据和代码不同级别的访问权限。如私有的成员变量就是封装的体现。能够实现对数据和行为的包装和信息隐藏。
1.2继承
一种层次模型,这种层次模型能够被重用。层次结构的上层具有通用性,但是下层结构则具有特殊性。与c++不同,Java中只有单继承,但是可以多重继承层层嵌套。能够提高工作效率,减少代码冗余。
1.3多态
使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。一个接口,多种方式。
2.抽象
抽象是从被研究对象中抽取与实验相关的共性加以考察,形成正确、简明扼要的认识。
二、对象与类
对象是对客观事物的抽象,类是对对象的抽象
构建一个Circular类(代码忘了放哪了,找时间补上)。
1.类对象的创建
Circular c1=new Circular(2);
其中new Circular(2) 调用构造方法产生了一个类对象,并为此对象开辟空间。其中Circular c1则创建了一个类对象的引用。哪怕再来一个Circular c2=c1;不过也是对同一个对象的引用的传递,而非值传递(String是值传递)。
2.初始化
父类优先,然后按静态属性、静态方法块(包括main)、其他静态方法、普通属性、普通方法块、构造方法、普通方法的顺序进行。
3.构造方法
初始化之后才能使用。子类中构造函数都会默认访问父类中的空参数的构造函数,每一个子类构造内第一行都有默认的语句super();
4.this
this(参数),用于构造函数之间互相调用。或类似this指针,不同的对象调用同一方法用于标识不同对象。以及返回当前对象。
5.final
1.可以用于不变的常量仅赋初始值。
2.用于不可变的对象,final修饰的对象的引用没法改变引用的对象,但对象本身是可以变的,只是这样容易造成误解。
3.可以用于最终的类、方法,防止继承破坏封装性。
6.static
static修饰的属性、方法将和类本身失去关联。static方法不能使用this、super,不能访问非静态方法。反过来可以。static属性可以在不同对象间起到“数据共享”的作用。成员变量存在于堆内存中。静态变量存在于方法区(永久区)中。
三、三大特征的实现
1.继承
1.1组合和继承
组合是has-a 的关系,继承是is-a 的关系。继承耦合紧密,