第3章 Java与面向对象编程.ppt

上传人:qwe****56 文档编号:70014832 上传时间:2023-01-14 格式:PPT 页数:47 大小:1.02MB
返回 下载 相关 举报
第3章 Java与面向对象编程.ppt_第1页
第1页 / 共47页
第3章 Java与面向对象编程.ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《第3章 Java与面向对象编程.ppt》由会员分享,可在线阅读,更多相关《第3章 Java与面向对象编程.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java第第3 3章章 JavaJava与面向对象编程与面向对象编程 Java类类类类 2包包包包 4面向对象基础面向对象基础面向对象基础面向对象基础 3 1对象对象对象对象3 3数据共享数据共享数据共享数据共享 6类成员的访问控制权限类成员的访问控制权限类成员的访问控制权限类成员的访问控制权限3 5本章内容提要本章内容提要 Java 面向对象的程序设计方法面向对象的程序设计方法面向对象的程序设计方法面向对象的程序设计方法力求符合人脑的思力求符合人脑的思力求符合人脑的思力求符合人脑的思维方式,通过符合人类思维的更抽象的客观世界维方式,通过符合人类思维的更抽象的客观世界维方式,通过符合人类思维的

2、更抽象的客观世界维方式,通过符合人类思维的更抽象的客观世界模型,降低、分解问题的难度和复杂性,并以此模型,降低、分解问题的难度和复杂性,并以此模型,降低、分解问题的难度和复杂性,并以此模型,降低、分解问题的难度和复杂性,并以此来解决问题。来解决问题。来解决问题。来解决问题。与结构化的程序设计方法有何区别?与结构化的程序设计方法有何区别?与结构化的程序设计方法有何区别?与结构化的程序设计方法有何区别?3 3.面向对象基础面向对象基础 Java 面向对象的基本原理面向对象的基本原理 面向对象方法学面向对象方法学面向对象方法学面向对象方法学是面向对象程序设计技术的是面向对象程序设计技术的是面向对象程

3、序设计技术的是面向对象程序设计技术的理论基础。该理论的出发点和基本原则,是尽可理论基础。该理论的出发点和基本原则,是尽可理论基础。该理论的出发点和基本原则,是尽可理论基础。该理论的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法能模拟人类习惯的思维方式,使开发软件的方法能模拟人类习惯的思维方式,使开发软件的方法能模拟人类习惯的思维方式,使开发软件的方法与人类的认知过程同步,通过对人类认识客观世与人类的认知过程同步,通过对人类认识客观世与人类的认知过程同步,通过对人类认识客观世与人类的认知过程同步,通过对人类认识客观世界及事物发展过程的抽象,建立规范的分析设计界及事物发展过程的

4、抽象,建立规范的分析设计界及事物发展过程的抽象,建立规范的分析设计界及事物发展过程的抽象,建立规范的分析设计方法,由此使程序具有良好的封装性、可读性、方法,由此使程序具有良好的封装性、可读性、方法,由此使程序具有良好的封装性、可读性、方法,由此使程序具有良好的封装性、可读性、可维护性、可重用性等一系列优点。可维护性、可重用性等一系列优点。可维护性、可重用性等一系列优点。可维护性、可重用性等一系列优点。3 3.面向对象基础面向对象基础 Java面向对象的基本概念面向对象的基本概念 1 1 1 1对象对象对象对象对象就是现实世界中实体在计算机逻辑中的映对象就是现实世界中实体在计算机逻辑中的映对象就

5、是现实世界中实体在计算机逻辑中的映对象就是现实世界中实体在计算机逻辑中的映射和体现。射和体现。射和体现。射和体现。实体都具有一定的属性和行为。实体都具有一定的属性和行为。实体都具有一定的属性和行为。实体都具有一定的属性和行为。从面向对象的观点来看,所有的面向对象的程从面向对象的观点来看,所有的面向对象的程从面向对象的观点来看,所有的面向对象的程从面向对象的观点来看,所有的面向对象的程序都是由对象构成的。序都是由对象构成的。序都是由对象构成的。序都是由对象构成的。3 3.面向对象基础面向对象基础 Java 2 2 2 2类类类类 类类类类就是具有相同或相似属性和行为的对象的就是具有相同或相似属性

6、和行为的对象的就是具有相同或相似属性和行为的对象的就是具有相同或相似属性和行为的对象的抽象。抽象。抽象。抽象。在面向对象的程序设计中,类与对象是抽象在面向对象的程序设计中,类与对象是抽象在面向对象的程序设计中,类与对象是抽象在面向对象的程序设计中,类与对象是抽象与具体的关系。与具体的关系。与具体的关系。与具体的关系。3 3.面向对象基础面向对象基础 Java 3 3 3 3属性属性属性属性对象的属性主要用来描述对象的状态。对象的属性主要用来描述对象的状态。对象的属性主要用来描述对象的状态。对象的属性主要用来描述对象的状态。属性用变量来定义。属性用变量来定义。属性用变量来定义。属性用变量来定义。

7、4 4 4 4行为行为行为行为对象的行为又称为对象的操作,主要描述对象对象的行为又称为对象的操作,主要描述对象对象的行为又称为对象的操作,主要描述对象对象的行为又称为对象的操作,主要描述对象内部的各种动态信息。内部的各种动态信息。内部的各种动态信息。内部的各种动态信息。行为用方法来刻画。行为用方法来刻画。行为用方法来刻画。行为用方法来刻画。3 3.面向对象基础面向对象基础 Java 面向对象编程的特点面向对象编程的特点 1 1 1 1封装封装封装封装 封装封装封装封装,就是将事物的内部实现细节隐藏起来,就是将事物的内部实现细节隐藏起来,就是将事物的内部实现细节隐藏起来,就是将事物的内部实现细节

8、隐藏起来,对外提供一致的公共的接口间接访问隐藏数据。对外提供一致的公共的接口间接访问隐藏数据。对外提供一致的公共的接口间接访问隐藏数据。对外提供一致的公共的接口间接访问隐藏数据。优点:使得优点:使得优点:使得优点:使得JavaJavaJavaJava程序具有良好的可维护性程序具有良好的可维护性程序具有良好的可维护性程序具有良好的可维护性 使得代码的重用性大为提高使得代码的重用性大为提高使得代码的重用性大为提高使得代码的重用性大为提高 3 3.面向对象基础面向对象基础 Java 2 2 2 2继承继承继承继承当一个类拥有另一个类的数据和操作时,就称这当一个类拥有另一个类的数据和操作时,就称这当一

9、个类拥有另一个类的数据和操作时,就称这当一个类拥有另一个类的数据和操作时,就称这两个类具有继承关系。两个类具有继承关系。两个类具有继承关系。两个类具有继承关系。被继承的类称为父类或超类,继承父类的类称为被继承的类称为父类或超类,继承父类的类称为被继承的类称为父类或超类,继承父类的类称为被继承的类称为父类或超类,继承父类的类称为子类。子类。子类。子类。继承有单重继承和多重继承之分。继承有单重继承和多重继承之分。继承有单重继承和多重继承之分。继承有单重继承和多重继承之分。优点:使得面向对象的程序结构清晰,易于理解。优点:使得面向对象的程序结构清晰,易于理解。优点:使得面向对象的程序结构清晰,易于理

10、解。优点:使得面向对象的程序结构清晰,易于理解。3 3.面向对象基础面向对象基础 Java 3.3.3.3.多态多态多态多态多态多态多态多态指多种表现形式,就是对象响应外部激励指多种表现形式,就是对象响应外部激励指多种表现形式,就是对象响应外部激励指多种表现形式,就是对象响应外部激励而使其形式发生改变的现象。而使其形式发生改变的现象。而使其形式发生改变的现象。而使其形式发生改变的现象。多态有两种情况:多态有两种情况:多态有两种情况:多态有两种情况:一种是通过类之间继承导致的同名方法覆一种是通过类之间继承导致的同名方法覆一种是通过类之间继承导致的同名方法覆一种是通过类之间继承导致的同名方法覆盖体

11、现的,另一种是通过同一个类中同名方法盖体现的,另一种是通过同一个类中同名方法盖体现的,另一种是通过同一个类中同名方法盖体现的,另一种是通过同一个类中同名方法的重载体现的。的重载体现的。的重载体现的。的重载体现的。优点:提高了程序的抽象程度和简洁性。优点:提高了程序的抽象程度和简洁性。优点:提高了程序的抽象程度和简洁性。优点:提高了程序的抽象程度和简洁性。3 3.面向对象基础面向对象基础 Java类的结构类的结构 class class class class extends extends extends extends implements implements implements imp

12、lements 类体类体类体类体 成员变量定义成员变量定义成员变量定义成员变量定义;成员方法定义成员方法定义成员方法定义成员方法定义;在类的声明格式中,在类的声明格式中,在类的声明格式中,在类的声明格式中,内部的内容表示可内部的内容表示可内部的内容表示可内部的内容表示可选的,可以根据需要有选择的进行编写。选的,可以根据需要有选择的进行编写。选的,可以根据需要有选择的进行编写。选的,可以根据需要有选择的进行编写。3 3.2 2 类类 Java 1 1 1 1类的声明类的声明类的声明类的声明 类的声明由类的声明由类的声明由类的声明由修饰符、关键字修饰符、关键字修饰符、关键字修饰符、关键字class

13、classclassclass、类名、类名、类名、类名、继承父类、实现接口继承父类、实现接口继承父类、实现接口继承父类、实现接口五部分构成。五部分构成。五部分构成。五部分构成。例如:例如:例如:例如:class Student /class Student /class Student /class Student /定义类定义类定义类定义类StudentStudentStudentStudent intintintint stu_namestu_namestu_namestu_name;/定义类属性定义类属性定义类属性定义类属性 stu_namestu_namestu_namestu_nam

14、e;3 3.2 2 类类 Java (1 1 1 1)继承父类)继承父类)继承父类)继承父类 关键字关键字关键字关键字extendsextendsextendsextends表示当前类是已经存在的某表示当前类是已经存在的某表示当前类是已经存在的某表示当前类是已经存在的某个类的子类。个类的子类。个类的子类。个类的子类。JavaJavaJavaJava语言中只允许单一继承。语言中只允许单一继承。语言中只允许单一继承。语言中只允许单一继承。类通常不需要从头生成。他们可以从其他的类通常不需要从头生成。他们可以从其他的类通常不需要从头生成。他们可以从其他的类通常不需要从头生成。他们可以从其他的类派生而来

15、,继承祖先类的可用类成员。即使是类派生而来,继承祖先类的可用类成员。即使是类派生而来,继承祖先类的可用类成员。即使是类派生而来,继承祖先类的可用类成员。即使是从头创建的新类也必须继承从头创建的新类也必须继承从头创建的新类也必须继承从头创建的新类也必须继承ObjectObjectObjectObject类。类。类。类。3 3.2 2 类类 Java (2 2 2 2)实现接口)实现接口)实现接口)实现接口 关键字关键字关键字关键字implementsimplementsimplementsimplements表示当前类实现了某个接表示当前类实现了某个接表示当前类实现了某个接表示当前类实现了某个接

16、口定义的功能或方法。口定义的功能或方法。口定义的功能或方法。口定义的功能或方法。接口接口接口接口是和类相似一种是和类相似一种是和类相似一种是和类相似一种JavaJavaJavaJava程序的基本单元,程序的基本单元,程序的基本单元,程序的基本单元,是是是是JavaJavaJavaJava程序用来实现多重继承的一种特殊机制。程序用来实现多重继承的一种特殊机制。程序用来实现多重继承的一种特殊机制。程序用来实现多重继承的一种特殊机制。3 3.2 2 类类 Java(3 3 3 3)修饰符)修饰符)修饰符)修饰符3 3.2 2 类类修饰符种类修饰符种类修饰符种类修饰符种类关键字关键字关键字关键字含义含

17、义含义含义限制限制限制限制访问控制符public 声明类是公有的,可以被任何类使用或继承。一个源程序中最多只能存在一个公有类。最终类说明符final 声明该类不能被继承。抽象类说明符abstract 声明该类不能被实例化,但可以被继承。无修饰符 可以被同一个程序包中的其他类访问和继承 Java 2.2.2.2.类体类体类体类体 class class class class 通常,通常,通常,通常,JavaJavaJavaJava中把成员变量放在方法前面定义。中把成员变量放在方法前面定义。中把成员变量放在方法前面定义。中把成员变量放在方法前面定义。3 3.2 2 类类 Java成员变量成员变量

18、 在类体中并且在方法之外定义的变量称为在类体中并且在方法之外定义的变量称为在类体中并且在方法之外定义的变量称为在类体中并且在方法之外定义的变量称为成员成员成员成员变量变量变量变量。修饰符修饰符修饰符修饰符 变量类型变量类型变量类型变量类型 变量名;变量名;变量名;变量名;例如:例如:例如:例如:Integer Integer Integer Integer stuAgestuAgestuAgestuAge;intintintint age=9 age=9 age=9 age=9;3 3.2 2 类类 Java1 1 1 1访问控制权限访问控制权限访问控制权限访问控制权限 publicpubli

19、cpublicpublic、privateprivateprivateprivate及及及及protectedprotectedprotectedprotected2 2 2 2静态变量修饰符静态变量修饰符静态变量修饰符静态变量修饰符 又被称为类变量,静态变量用关键字又被称为类变量,静态变量用关键字又被称为类变量,静态变量用关键字又被称为类变量,静态变量用关键字staticstaticstaticstatic表示。表示。表示。表示。3 3 3 3常量修饰符常量修饰符常量修饰符常量修饰符 指在程序中不能被改变的变量,常量用关键指在程序中不能被改变的变量,常量用关键指在程序中不能被改变的变量,常量

20、用关键指在程序中不能被改变的变量,常量用关键字字字字finalfinalfinalfinal表示。表示。表示。表示。3 3.2 2 类类 Java 成员方法成员方法 1 1 1 1方法定义方法定义方法定义方法定义 方法也由两部分组成,即方法也由两部分组成,即方法也由两部分组成,即方法也由两部分组成,即方法头和方法体方法头和方法体方法头和方法体方法头和方法体。()throws throws throws throws 3 3.2 2 类类 Java (1 1 1 1)方法修饰符)方法修饰符)方法修饰符)方法修饰符 方法修饰符控制方法在什么条件下使用以及方法修饰符控制方法在什么条件下使用以及方法修

21、饰符控制方法在什么条件下使用以及方法修饰符控制方法在什么条件下使用以及如何使用,包括如何使用,包括如何使用,包括如何使用,包括publicpublicpublicpublic(公有的)、(公有的)、(公有的)、(公有的)、privateprivateprivateprivate(私有的)及(私有的)及(私有的)及(私有的)及protectedprotectedprotectedprotected(保护的)。(保护的)。(保护的)。(保护的)。(2 2 2 2)返回值类型)返回值类型)返回值类型)返回值类型 返回值类型可以是基本数据类型、应用类型返回值类型可以是基本数据类型、应用类型返回值类型可

22、以是基本数据类型、应用类型返回值类型可以是基本数据类型、应用类型(引用类型)以及(引用类型)以及(引用类型)以及(引用类型)以及voidvoidvoidvoid(空类型)。(空类型)。(空类型)。(空类型)。3 3.2 2 类类 Java (3 3 3 3)方法名)方法名)方法名)方法名 (4 4 4 4)形参列表)形参列表)形参列表)形参列表 形参列表是以形参列表是以形参列表是以形参列表是以“,”分开的、参数的数据类型分开的、参数的数据类型分开的、参数的数据类型分开的、参数的数据类型和变量名的列表。和变量名的列表。和变量名的列表。和变量名的列表。(111,nnn)(5 5 5 5)throw

23、sthrowsthrowsthrows 方法的异常列表定义了可能抛出的各种异常。方法的异常列表定义了可能抛出的各种异常。方法的异常列表定义了可能抛出的各种异常。方法的异常列表定义了可能抛出的各种异常。3 3.2 2 类类 Java 2 2 2 2方法体方法体方法体方法体 方法的功能实现部分,主要由局部变量和语方法的功能实现部分,主要由局部变量和语方法的功能实现部分,主要由局部变量和语方法的功能实现部分,主要由局部变量和语句构成。句构成。句构成。句构成。方法体也可以是空的,即没有任何变量和语方法体也可以是空的,即没有任何变量和语方法体也可以是空的,即没有任何变量和语方法体也可以是空的,即没有任何

24、变量和语句。句。句。句。例如:例如:例如:例如:void void void void setName(StringsetName(StringsetName(StringsetName(String name)name)name)name)例例例例3-13-13-13-1方法的定义方法的定义方法的定义方法的定义3 3.2 2 类类 Java构造方法构造方法(1 1 1 1)构造方法的方法名与类名相同。)构造方法的方法名与类名相同。)构造方法的方法名与类名相同。)构造方法的方法名与类名相同。(2 2 2 2)构造方法不允许声明返回值。)构造方法不允许声明返回值。)构造方法不允许声明返回值。)构

25、造方法不允许声明返回值。(3 3 3 3)构造方法的作用是完成对类对象的初始化。)构造方法的作用是完成对类对象的初始化。)构造方法的作用是完成对类对象的初始化。)构造方法的作用是完成对类对象的初始化。(4 4 4 4)构造方法只能通过)构造方法只能通过)构造方法只能通过)构造方法只能通过newnewnewnew运算符调用,不能通过运算符调用,不能通过运算符调用,不能通过运算符调用,不能通过 对象或类调用。对象或类调用。对象或类调用。对象或类调用。(5 5 5 5)一个类可以定义多个构造方法。)一个类可以定义多个构造方法。)一个类可以定义多个构造方法。)一个类可以定义多个构造方法。3 3.2 2

26、 类类 Java 例例例例3-23-23-23-2构造方法的定义构造方法的定义构造方法的定义构造方法的定义构造方法的作用:构造方法的作用:构造方法的作用:构造方法的作用:(1 1 1 1)为每个新建的对象赋初始值,从而保证每一)为每个新建的对象赋初始值,从而保证每一)为每个新建的对象赋初始值,从而保证每一)为每个新建的对象赋初始值,从而保证每一个新建的对象处于合理正常的状态。个新建的对象处于合理正常的状态。个新建的对象处于合理正常的状态。个新建的对象处于合理正常的状态。(2 2 2 2)引入更多的灵活度,使得初始化工作不仅仅)引入更多的灵活度,使得初始化工作不仅仅)引入更多的灵活度,使得初始化

27、工作不仅仅)引入更多的灵活度,使得初始化工作不仅仅包括成员变量的赋值,还可以有更复杂的操作。包括成员变量的赋值,还可以有更复杂的操作。包括成员变量的赋值,还可以有更复杂的操作。包括成员变量的赋值,还可以有更复杂的操作。3 3.2 2 类类 Java对象创建对象创建1 1 1 1声明对象声明对象声明对象声明对象 type type type type objectnameobjectnameobjectnameobjectname;例如:例如:例如:例如:Student Student Student Student xiaolinxiaolinxiaolinxiaolin;3 3.3 3 对象

28、对象xiaolin Java 2 2 2 2建立对象并初始化建立对象并初始化建立对象并初始化建立对象并初始化 实际上就是将一个类实例化,这是通过实际上就是将一个类实例化,这是通过实际上就是将一个类实例化,这是通过实际上就是将一个类实例化,这是通过newnewnewnew关键字来完成的。关键字来完成的。关键字来完成的。关键字来完成的。例如:例如:例如:例如:new Student(new Student(new Student(new Student(小林小林小林小林,1001,12);,1001,12);,1001,12);,1001,12);3 3.3 3 对象对象小林小林100112 Ja

29、va 对象引用被赋值后,将指向一个真正的对象,对象引用被赋值后,将指向一个真正的对象,对象引用被赋值后,将指向一个真正的对象,对象引用被赋值后,将指向一个真正的对象,即对象引用的内存空间中存储这个新建立对象的即对象引用的内存空间中存储这个新建立对象的即对象引用的内存空间中存储这个新建立对象的即对象引用的内存空间中存储这个新建立对象的内存空间的首地址,那么通过对象引用就可以访内存空间的首地址,那么通过对象引用就可以访内存空间的首地址,那么通过对象引用就可以访内存空间的首地址,那么通过对象引用就可以访问这个对象的所有可以访问的成员了。问这个对象的所有可以访问的成员了。问这个对象的所有可以访问的成员

30、了。问这个对象的所有可以访问的成员了。3 3.3 3 对象对象小林小林1001120 x032xiaolin0 x1032 Java 通过同一个类模板可以声明多个对象引用,通过同一个类模板可以声明多个对象引用,通过同一个类模板可以声明多个对象引用,通过同一个类模板可以声明多个对象引用,也可以建立并初始化多个对象:也可以建立并初始化多个对象:也可以建立并初始化多个对象:也可以建立并初始化多个对象:Student Student Student Student xiaolinxiaolinxiaolinxiaolin,xiaofeixiaofeixiaofeixiaofei;xiaolinxiao

31、linxiaolinxiaolin=new Student(=new Student(=new Student(=new Student(小林小林小林小林,1001,12);,1001,12);,1001,12);,1001,12);xiaofeixiaofeixiaofeixiaofei=new Student(=new Student(=new Student(=new Student(小飞小飞小飞小飞i,1002,16);i,1002,16);i,1002,16);i,1002,16);Student Student Student Student xiaoqiangxiaoqiangx

32、iaoqiangxiaoqiang=xiaolinxiaolinxiaolinxiaolin;3 3.3 3 对象对象 Java 例例例例3-33-33-33-3创建对象创建对象创建对象创建对象判断对象判断对象判断对象判断对象a a a a的引用是否存在的引用是否存在的引用是否存在的引用是否存在a!=nulla!=nulla!=nulla!=null或或或或 a=nulla=nulla=nulla=null;判断判断判断判断a a a a、b b b b两个对象的引用是否相等两个对象的引用是否相等两个对象的引用是否相等两个对象的引用是否相等a=ba=ba=ba=b;判断判断判断判断a a a

33、a、b b b b两个对象的值是否相等两个对象的值是否相等两个对象的值是否相等两个对象的值是否相等 a.equals(ba.equals(ba.equals(ba.equals(b)。3 3.3 3 对象对象 Java使用对象使用对象 有两种方式使用对象:有两种方式使用对象:有两种方式使用对象:有两种方式使用对象:一是通过对对象变量的引用来使用对象;一是通过对对象变量的引用来使用对象;一是通过对对象变量的引用来使用对象;一是通过对对象变量的引用来使用对象;objectRenference.variableobjectRenference.variableobjectRenference.var

34、iableobjectRenference.variable;二是通过调用对象的方法来使用对象。二是通过调用对象的方法来使用对象。二是通过调用对象的方法来使用对象。二是通过调用对象的方法来使用对象。objectRenference.methodName(paramlistobjectRenference.methodName(paramlistobjectRenference.methodName(paramlistobjectRenference.methodName(paramlist););););3 3.3 3 对象对象 Java 例例例例3-43-43-43-4使用对象使用对象使用对

35、象使用对象3 3.3 3 对象对象 姓名:王非姓名:王非姓名:王非姓名:王非 学号:学号:学号:学号:10011100111001110011 学院编号:学院编号:学院编号:学院编号:11111111 姓名:黎明姓名:黎明姓名:黎明姓名:黎明 学号:学号:学号:学号:10012100121001210012 学院编号:学院编号:学院编号:学院编号:12 12 12 12 Java释放对象释放对象 Java Java Java Java中,对象使用的内存空间的释放是自动中,对象使用的内存空间的释放是自动中,对象使用的内存空间的释放是自动中,对象使用的内存空间的释放是自动完成的,不需要在编码时考虑

36、对象的释放问题。完成的,不需要在编码时考虑对象的释放问题。完成的,不需要在编码时考虑对象的释放问题。完成的,不需要在编码时考虑对象的释放问题。JavaJavaJavaJava运行系统具有所谓的运行系统具有所谓的运行系统具有所谓的运行系统具有所谓的“垃圾回收机制垃圾回收机制垃圾回收机制垃圾回收机制”,垃,垃,垃,垃圾回收器(圾回收器(圾回收器(圾回收器(garbage cllectorsgarbage cllectorsgarbage cllectorsgarbage cllectors,GCGCGCGC)在后台运)在后台运)在后台运)在后台运行,定时查看所有对象,识别那些不再被引用的行,定时查

37、看所有对象,识别那些不再被引用的行,定时查看所有对象,识别那些不再被引用的行,定时查看所有对象,识别那些不再被引用的对象(垃圾),给予释放,回收分配给这些对象对象(垃圾),给予释放,回收分配给这些对象对象(垃圾),给予释放,回收分配给这些对象对象(垃圾),给予释放,回收分配给这些对象的内存。的内存。的内存。的内存。3 3.3 3 对象对象 Java对象引用与对象实体对象引用与对象实体 对象引用和对象实体是相互独立的。对象引用和对象实体是相互独立的。对象引用和对象实体是相互独立的。对象引用和对象实体是相互独立的。例例例例3-53-53-53-5通过对象引用遥控对象实体通过对象引用遥控对象实体通过

38、对象引用遥控对象实体通过对象引用遥控对象实体3 3.3 3 对象对象 学生:学生:学生:学生:小明小明小明小明 学生:学生:学生:学生:小明小明小明小明 学生:学生:学生:学生:小强小强小强小强 学生:学生:学生:学生:小强小强小强小强 null null null null Java 为了更好的管理这些类,为了更好的管理这些类,为了更好的管理这些类,为了更好的管理这些类,JavaJavaJavaJava引入了引入了引入了引入了包包包包的概的概的概的概念。念。念。念。包是一种类似于文件夹的一种组织形式,包包是一种类似于文件夹的一种组织形式,包包是一种类似于文件夹的一种组织形式,包包是一种类似于

39、文件夹的一种组织形式,包把各种类组织起来,一方面对类的命名空间进行把各种类组织起来,一方面对类的命名空间进行把各种类组织起来,一方面对类的命名空间进行把各种类组织起来,一方面对类的命名空间进行管理,另一方面作为隐含的访问控制修饰符,是管理,另一方面作为隐含的访问控制修饰符,是管理,另一方面作为隐含的访问控制修饰符,是管理,另一方面作为隐含的访问控制修饰符,是信息隐藏和封装的有力工具。信息隐藏和封装的有力工具。信息隐藏和封装的有力工具。信息隐藏和封装的有力工具。3 3.4 4 包包 Java 包的概念包的概念 为了方便管理,通常将需要在一起工作的类放为了方便管理,通常将需要在一起工作的类放为了方

40、便管理,通常将需要在一起工作的类放为了方便管理,通常将需要在一起工作的类放在一个包中。只要包名是惟一的,那么包中的在一个包中。只要包名是惟一的,那么包中的在一个包中。只要包名是惟一的,那么包中的在一个包中。只要包名是惟一的,那么包中的类就有了惟一的类全名。类就有了惟一的类全名。类就有了惟一的类全名。类就有了惟一的类全名。包的引入解决了类名冲突问题。包的引入解决了类名冲突问题。包的引入解决了类名冲突问题。包的引入解决了类名冲突问题。包是一种多层次的组织结构,其成员有子包、包是一种多层次的组织结构,其成员有子包、包是一种多层次的组织结构,其成员有子包、包是一种多层次的组织结构,其成员有子包、类和接

41、口。类和接口。类和接口。类和接口。3 3.4 4 包包 Java 创建包创建包 创建包需要使用关键字创建包需要使用关键字创建包需要使用关键字创建包需要使用关键字packagepackagepackagepackage,其一般的格,其一般的格,其一般的格,其一般的格式和语法为:式和语法为:式和语法为:式和语法为:package package package package 包名;包名;包名;包名;这条语句必须位于源文件的第一行,并且在同这条语句必须位于源文件的第一行,并且在同这条语句必须位于源文件的第一行,并且在同这条语句必须位于源文件的第一行,并且在同一个源文件中只能编写一条一个源文件中只能

42、编写一条一个源文件中只能编写一条一个源文件中只能编写一条packagepackagepackagepackage语句。语句。语句。语句。例如:例如:例如:例如:package newpackage;package newpackage;package newpackage;package newpackage;package society.family;package society.family;package society.family;package society.family;例例例例3-73-73-73-7创建包创建包创建包创建包3 3.4 4 包包 Java 导入包导入包 1

43、 1 1 1使用类全名使用类全名使用类全名使用类全名 例例例例3-83-83-83-8使用类全名使用类全名使用类全名使用类全名3 3.4 4 包包A0 100 10A0 100 10A0 100 10A0 100 10A1 101 11A1 101 11A1 101 11A1 101 11A2 102 12A2 102 12A2 102 12A2 102 12A3 103 13A3 103 13A3 103 13A3 103 13A4 104 14A4 104 14A4 104 14A4 104 14 Java 2 2 2 2导入需要的使用的类导入需要的使用的类导入需要的使用的类导入需要的使用

44、的类 利用利用利用利用importimportimportimport关键字,将需要使用的类导入到关键字,将需要使用的类导入到关键字,将需要使用的类导入到关键字,将需要使用的类导入到当前程序中,当前程序中,当前程序中,当前程序中,例例例例3-93-93-93-9导入需要的类导入需要的类导入需要的类导入需要的类3 3.4 4 包包 Java 3 3 3 3导入整个包导入整个包导入整个包导入整个包 包中的所有的类都被加载到当前文件中。包中的所有的类都被加载到当前文件中。包中的所有的类都被加载到当前文件中。包中的所有的类都被加载到当前文件中。例如:例如:例如:例如:import schools.*;

45、import schools.*;import schools.*;import schools.*;所有的所有的所有的所有的JavaJavaJavaJava程序自动导入程序自动导入程序自动导入程序自动导入java.langjava.langjava.langjava.lang包,因此,包,因此,包,因此,包,因此,import import import import java.langjava.langjava.langjava.lang.*.*.*.*语句可以省略不写。另外编译器语句可以省略不写。另外编译器语句可以省略不写。另外编译器语句可以省略不写。另外编译器在查找需要的类时有特定的查

46、找顺序,先是在查找需要的类时有特定的查找顺序,先是在查找需要的类时有特定的查找顺序,先是在查找需要的类时有特定的查找顺序,先是JavaJavaJavaJava基本基本基本基本类库中的类,后是用户自定义的类。类库中的类,后是用户自定义的类。类库中的类,后是用户自定义的类。类库中的类,后是用户自定义的类。3 3.4 4 包包 Java JavaJavaJavaJava有四种类成员的访问控制形式,分别为有四种类成员的访问控制形式,分别为有四种类成员的访问控制形式,分别为有四种类成员的访问控制形式,分别为缺省的(默认的)、公有的、保护的、私有的缺省的(默认的)、公有的、保护的、私有的缺省的(默认的)、

47、公有的、保护的、私有的缺省的(默认的)、公有的、保护的、私有的。类的每个成员都有自己的访问修饰符,但最类的每个成员都有自己的访问修饰符,但最类的每个成员都有自己的访问修饰符,但最类的每个成员都有自己的访问修饰符,但最多只能使用一个访问修饰符,并且访问修饰符必多只能使用一个访问修饰符,并且访问修饰符必多只能使用一个访问修饰符,并且访问修饰符必多只能使用一个访问修饰符,并且访问修饰符必须放在其他修饰符之前。须放在其他修饰符之前。须放在其他修饰符之前。须放在其他修饰符之前。如果类不可访问,则其成员也不可访问,因如果类不可访问,则其成员也不可访问,因如果类不可访问,则其成员也不可访问,因如果类不可访问

48、,则其成员也不可访问,因此讨论类成员的访问控制的前提必须是类是可访此讨论类成员的访问控制的前提必须是类是可访此讨论类成员的访问控制的前提必须是类是可访此讨论类成员的访问控制的前提必须是类是可访问的。问的。问的。问的。3 3.5 5 类成员的访问控制权限类成员的访问控制权限 Java 1 1 1 1privateprivateprivateprivate修饰符修饰符修饰符修饰符 privateprivateprivateprivate修饰的成员变量和方法仅能在其类修饰的成员变量和方法仅能在其类修饰的成员变量和方法仅能在其类修饰的成员变量和方法仅能在其类的方法中被访问,其他类无法直接访问。的方法中

49、被访问,其他类无法直接访问。的方法中被访问,其他类无法直接访问。的方法中被访问,其他类无法直接访问。【例例例例3-103-103-103-10】私有成员的定义和使用私有成员的定义和使用私有成员的定义和使用私有成员的定义和使用3 3.5 5 类成员的访问控制权限类成员的访问控制权限 falsefalsefalsefalse xiaoming:1000 xiaoming:1000 xiaoming:1000 xiaoming:1000 xiaoming:1001 xiaoming:1001 xiaoming:1001 xiaoming:1001 Java 2 2 2 2无修饰符无修饰符无修饰符无修

50、饰符 如果成员没有指定任何访问修饰符,则表示如果成员没有指定任何访问修饰符,则表示如果成员没有指定任何访问修饰符,则表示如果成员没有指定任何访问修饰符,则表示该成员具有缺省的访问权限,该成员具有缺省的访问权限,该成员具有缺省的访问权限,该成员具有缺省的访问权限,3 3 3 3protectedprotectedprotectedprotected修饰符修饰符修饰符修饰符 protectedprotectedprotectedprotected修饰符表示成员的访问权限局限修饰符表示成员的访问权限局限修饰符表示成员的访问权限局限修饰符表示成员的访问权限局限在同一个包的其他类以及其子类(可以属于其他

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁