Java基础——面向对象
我喜欢你,就是只单纯地,忠诚于见到你时猛烈的心跳,和见不到你时难挨的思念。
面向对象
1、面向过程 & 面向对象
- 面向过程思想:
- 步骤清晰简单,第一步做什么,第二步做什么……
- 面对过程适合处理一些较为简单的问题
- 面向对象思想:
- 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索
- 面向对象适合处理复杂的问题,适合处理需要多人协作的问题
- 对于描述复杂的事物,未来从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理
2、什么是面向对象
- 面向对象编程(Object-Oriented Programming,OOP)
- 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据
- 抽象
- 三大特性:
- 封装
- 继承
- 多态
- 从认识论角度考虑是现有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象
- 从代码运行角度考虑是先有类后又对象。类是对象的模板
3、类与对象
3.1 什么是类
- 类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物
现实中,描述一类事物:
- 属性:就是该事物的状态信息
- 行为:就是该事物能够做什么
3.2 什么是对象
- 对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为
3.3 类与对象的关系
- 类是对一类事物的描述,是抽象的
- 对象是一类事物的实例,是具体的
- 类是对象的模板,对象是类的实例
4、类的定义
4.1 事物与类的对比
现实世界的一类事物:
属性:事物的状态信息
行为:事物能够做什么
Java中用class描述事物也是如此:
成员变量:对应事物的属性
成员方法:对应事物的行为
3.2 类的定义格式
public class ClassName {
// 成员变量
// 成员方法
}
- 定义类:就是定义类的成员,包括成员变量和成员方法
- 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外
- 成员方法:和以前定义方法几乎是一样的。只不过把static去掉,static的作用在面向对象后面再详细讲解
4、创建与初始化对象
-
使用
new关键字创建对象Student student = new Student(); -
使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
-
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
一个对象的内存图:

两个对象使用同一个方法内存图:

两个引用指向同一个对象的内存图:

使用对象作为方法的参数:

使用对象类型作为方法的返回值:

5、成员变量和局部变量
- 定义的位置不一样
- 局部变量:在方法的内部
- 成员变量:在方法的外部,直接写在类当中
- 作用范围不一样
- 局部变量:只有方法当中才可以使用,出了方法就不能再用
- 成员变量:整个类全部可以通用
- 默认值不一样
- 局部变量:没有默认值,如果要想使用,必须手动进行赋值
- 成员变量:如果没有赋值,会有默认值,规则和数组一样
- 内存的位置不一样
- 局部变量:位于栈内存
- 成员变量:位于堆内存
- 生命周期不一样
- 局部变量:随着方法进栈而诞生,随着方法出栈而消失
- 成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失

浙公网安备 33010602011771号