1.面向过程(POP)与面向对象(OOP).
- 二者都是一种思想,面向对象是相对于面向过程而言的。
- 面向过程( Procedure Oriented Programming),强调的 是功能行为,以函数为最小单位,考虑怎么做。
- 面向对象(Object Oriented Programming),将功能封装进对 象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如 抽象、分类、继承、多态等。
- 经典案例:人把大象装进冰箱。
- 面相过程强调的是整个过程(步骤1:打开冰箱;2:把大象装进去;3:把冰箱门关住);
- 面相对象则是把整件事情拆分成若干个对象进行处理(人、冰箱、大象三个对象,每个对象都有自己的属性的方法)。
2.面向对象的三大特征.
- 封装(Encapsulation)
- 继承(Inheritance)
- 多态(Polymorphism)
3.类和对象介绍.
- 类(Class)和对象(Object)是面向对象的两大核心概念。
- 类是对一类事物的描述,是抽象的、概念上的定义。
- 对象是实际存在的该类事物的每个个体,因而也称为实例(instance),一句话总结:世界万物皆为对象。
- 举例: 类 = 抽象概念的人;对象 = 实实在在的某个人。
- 面向对象程序设计的重点是类的设计,类的设计其实就是类的成员的设计。
4.Java类及类的成员.
4.1类的组成.
- 现实世界的生物体,大到鲸鱼,小到蚂蚁,都是由最基本的细胞构成的。同理,Java代码世界是由诸多个不同功能的类构成的。
- 现实生物世界中的细胞又是由什么构成的呢?细胞核、细胞质… 那么,Java中用类class来描述事物也是如此。常见的类的成员有:属性(Field)和方法(Method)。
4.2定义类的语法格式.
4.2类里面定义属性.
- 类里面属性的组成部分:访问修饰符 数据类型 属性名 = 值;
- 访问修饰符目前我们都使用:public,公开的/公共的;
- 类里面属性的值:
- 在定义属性的时候初始化值(默认值):那么在测试类里面调用该属性的时候使用的就是默认值。如果在测试类里面给该属性重新赋值,那么会覆盖该属性的初始化值(默认值)。
- 在定义属性的时候不初始化值:Java会给默认值,int默认的是:0;double默认的是:0.0;String默认的是:null。
- 类里面的属性其实就是变量,一个类里面可以声明 N个属性,属性名不能重复。
4.3类里面定义方法.
- 方法就是这个类的行为,动作;
- 一个类里面可以定义 N 个方法。
5.使用类.
5.1用类创建对象.
- 类设计好之后,我们开始使用类。
- 使用类就是用类去创建对象(实例化对象),如:
- 创建对象和定义变量对比,我们自定义的类其实就是一种数据类型,一种引用数据类型,和String道理一样。
- 用类创建对象的核心:把自定义的类当做一种数据类型来使用;
- 创建对象我们一般在测试类的main方法里面进行(目前);
- 跨包在实例化对象的时候要先导包;
- 一个类可以创建 N个对象,对象名不能重复。
5.2调用对象的属性及方法.
5.2.1调用对象的属性.
- 调用对象的属性一般有两种用途:重新给该属性赋值或者直接打印该属性的值。如:
- 如果存在多个对象,每个对象有自己的属性和方法,对象和对象之间的属性和方法互补干扰。比如:张三有自己的名字和性别,李四有自己的名字和性别。
5.2.2调用对象的方法.
6.类==引用数据类型.
- 我们自定义的类都是一种数据类型,我们称之为:“引用类型”;
- 学习OOP的核心:把类当做一种数据类型来使用。