面向对象
1.面向对象思想
(1)思想的概述:
面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对象,强调具备功能的对象;
(2)面向对象思想的特点:
A:面向对象就是一种常见的思想。符合人们的思考习惯。
B:面向对象的出现,将复杂的问题简单化。
C:面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者。
对象:
世间万物皆对象,对象是事物存在的实体。在java中通过new来创建的。
静态特性
对象特有的属性,不能动的部分,用四类八种基本数据类型+string类型保存
动态特性
对象具备的行为,用方法来体现
类
用java语言对现实生活中的事物进行描述,通过类的形式来体现的。
类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。类是抽象的
对象是类抽象出来的一个实例
定义类其实就是在定义类中的成员。
成员:成员变量<-->对应于类对象的属性,
成员方法<-->对应于类对象的行为。
对象
对象是一类事物中抽象出来的一个实例
用 new操作符来创建一个对象
使用“对象.类成员”来获取对象的属性和行为
匿名对象:没有名字的对象 ,如 new Car() ,其实就是定义对象的简写格式。
当对象对方法仅进行一次调用的时候,就可以简化成匿名对象
匿名对象可以作为实际参数进行传递
面向对象的特征主要有以下几个方面:
封装(英语:Encapsulation)
封装就是隐藏对象的属性和实现细节,只向外界提供最简单的编程接口,对数据的访问只能通过已定义的接口。封装是面向对象编程的核心思想,将对象的属性和行为绑定起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。
封装的好处:1.将变化隔离;2.方便使用;3.提高复用性;4.提高安全性
封装的优点:1. 良好的封装能够减少耦合。2. 类内部的结构可以自由修改。
3. 可以对成员变量进行更精确的控制。4. 隐藏信息,实现细节。
继承
继承:多个类中存在相同的属性和行为时,将这些相同的内容抽取到单独的一个类中,那么多个类就无需再定义这些相同的属性和行为,只需继承那个类即可。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。
继承就是子类继承父类的所有特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
但是父类中private属性在子类中,不能直接访问,我们可以通过父类的公共方法进行调用
通过 extends 关键字可以申明一个类是从另外一个类继承而来的
继承的特点:子类继承了父类的所有属性
多态
一个对象在程序不同运行时刻代表的多种状态,父类或者接口的引用指向子类对象
多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1). 方