第A章9象的生命周期 Touuspspuaip
第 4 章 Java对象的生命周期
主要内容 4.1对象的声明与创建 4.1.1基本术 4.1.2对象的声明 ·4.1.3对象的创建 4.1.4数组对象的声明和创建 4.2对象的初始化 ·4.2.1成员变量的缺省初始化过程 4.2.2类成员变量的初始化与静态代码块 ·4.2.3实例成员变量的初始化与构造方法 ·4.2.4程序健壮性的代价和编码启示 ·4.2.5类成员变量与实例成员变量初始化的区别 4.2.6继承链上相关类的加载顺序以及构造方法链的调用 14.3对象的使用 4.3.1多态的使用 4.3.2对象的比较 4.3.3对象的传递 ·4.3.4内部类的使用 ■4.4对象的清除 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 2 主要内容 ◼ 4.1 对象的声明与创建 • 4.1.1 基本术语 • 4.1.2 对象的声明 • 4.1.3 对象的创建 • 4.1.4 数组对象的声明和创建 ◼ 4.2 对象的初始化 • 4.2.1 成员变量的缺省初始化过程 • 4.2.2 类成员变量的初始化与静态代码块 • 4.2.3 实例成员变量的初始化与构造方法 • 4.2.4 程序健壮性的代价和编码启示 • 4.2.5 类成员变量与实例成员变量初始化的区别 • 4.2.6 继承链上相关类的加载顺序以及构造方法链的调用 ◼ 4.3 对象的使用 • 4.3.1 多态的使用 • 4.3.2 对象的比较 • 4.3.3 对象的传递 • 4.3.4 内部类的使用 ◼ 4.4 对象的清除
4.1对象的声明与创建
4.1 对象的声明与创建
基本术语:类 类(Cass) 可以由用户自己定义的引用类型,它是相 似对象的软件抽象、创建对象的模板。 ■每一个类都组合了一些能够反映某种类型 属性的字段和反映某种类型动作的方法。 2021/2/20 ava面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 4 基本术语:类 ◼ 类(Class) 可以由用户自己定义的引用类型,它是相 似对象的软件抽象、创建对象的模板。 ◼ 每一个类都组合了一些能够反映某种类型 属性的字段和反映某种类型动作的方法
基本术语:对象 口对象( object) 是一个人、地址、物品、事件、概念、屏 幕显示或者报表,它属于某一个类,对象 拥有自己的属性值和方法调用。 ■作为类设计的初衷,每一个类都将存在许 多相互独立的对象。 通常我们说一个对象是类的一个实例, 个对象的生命周期包括声明、创建、使用 和清除四个状态。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 5 基本术语:对象 ◼ 对象(Object) 是一个人、地址、物品、事件、概念、屏 幕显示或者报表,它属于某一个类,对象 拥有自己的属性值和方法调用。 ◼ 作为类设计的初衷,每一个类都将存在许 多相互独立的对象。 ◼ 通常我们说一个对象是类的一个实例,一 个对象的生命周期包括声明、创建、使用 和清除四个状态
基本术语:对象引用 ■在]ava语言中只能引用对象,无法声明 个直接包含对象的变量。 类类型变量称为引用变量,它们并不直接 保留对象,只是保留对象的地址,而不是 拥有对象本身,通过引用变量即可以得到 个对象。 所有对象总是且只是通过内存引用访问的, 这种方式称为间接寻址 对象引用可以在需要的时候自动撤销。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 6 基本术语:对象引用 ◼ 在Java语言中只能引用对象,无法声明一 个直接包含对象的变量。 ◼ 类类型变量称为引用变量,它们并不直接 保留对象,只是保留对象的地址,而不是 拥有对象本身,通过引用变量即可以得到 一个对象。 ◼ 所有对象总是且只是通过内存引用访问的, 这种方式称为间接寻址。 ◼ 对象引用可以在需要的时候自动撤销
类、对象和对象引用的关系示意图 注册使用 声明引用 ·创建生产 实例对象 交通管理 STOP 获得引用 类工厂 ·对象使用 爱妻 “爱妻” 爱妻 米 废清除 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 7 类、对象和对象引用的关系示意图
基本术语:类变量 ■类变量必须在类体中声明,并且使用关键字 static”,因此也称为静态变量。 类变量在类被加载时完成相应的初始化工作 ■类变量在一个运行系统中只有一份供整个类和实 例对象共享的值,该值有可能被类(及其子类) 和它们所创建的实例改变,每一次的改变都将影 响到该类(及其子类)和其它实例的调用 类变量的作用域是整个类。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 8 基本术语:类变量 ◼ 类变量必须在类体中声明,并且使用关键字 “static”,因此也称为静态变量。 ◼ 类变量在类被加载时完成相应的初始化工作。 ◼ 类变量在一个运行系统中只有一份供整个类和实 例对象共享的值,该值有可能被类(及其子类) 和它们所创建的实例改变,每一次的改变都将影 响到该类(及其子类)和其它实例的调用。 ◼ 类变量的作用域是整个类
基本术语:实例变量 实例变量在类体中声明但不使用关键字 “ static”,也称为非静态变量 1它在对象初始化时完成相应的初始化工作, 并由某一个对象独自拥有 实例变量的作用域是某一个类具体创建的 实例对象 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 9 基本术语:实例变量 ◼ 实例变量在类体中声明但不使用关键字 “static”,也称为非静态变量。 ◼ 它在对象初始化时完成相应的初始化工作, 并由某一个对象独自拥有。 ◼ 实例变量的作用域是某一个类具体创建的 实例对象
基本术语:局部变量 ■局部变量在某一个语句(如for语句)或代码块 (如方法体)中声明。 ■当该语句或代码块被调用时,每次都将立即创建 相关的局部变量。 ■在一个局部变量的声明语句中可能包含有用于初 始化的表达式,但是,该表达式一般要等到这条 声明语句被执行的时候才会进行相应的初始化 当该语句或代码块被执行完毕退出,相应的局部 变量也将失效 局部变量的作用域是声明该变量的语句或代码块。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 10 基本术语:局部变量 ◼ 局部变量在某一个语句(如for语句)或代码块 (如方法体)中声明。 ◼ 当该语句或代码块被调用时,每次都将立即创建 相关的局部变量。 ◼ 在一个局部变量的声明语句中可能包含有用于初 始化的表达式,但是,该表达式一般要等到这条 声明语句被执行的时候才会进行相应的初始化。 当该语句或代码块被执行完毕退出,相应的局部 变量也将失效。 ◼ 局部变量的作用域是声明该变量的语句或代码块