第四讲类对象和接口优秀PPT.ppt

上传人:石*** 文档编号:78791921 上传时间:2023-03-19 格式:PPT 页数:93 大小:3.07MB
返回 下载 相关 举报
第四讲类对象和接口优秀PPT.ppt_第1页
第1页 / 共93页
第四讲类对象和接口优秀PPT.ppt_第2页
第2页 / 共93页
点击查看更多>>
资源描述

《第四讲类对象和接口优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第四讲类对象和接口优秀PPT.ppt(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第四讲类对象和接口第一页,本课件共有93页第四讲第四讲 类、对象和接口类、对象和接口4.11 abstract 4.11 abstract 类和类和abstractabstract方法方法4.12 super4.12 super关键字关键字4.13 4.13 接口接口4.14 4.14 内部类内部类4.15 4.15 匿名类匿名类4.16 4.16 异常类异常类4.17 Class4.17 Class类类4.18 4.18 基本类型的类包装基本类型的类包装4.19 4.19 反编译和文档生成器反编译和文档生成器4.20 jar4.20 jar文件文件第二页,本课件共有93页第四讲第四讲 类、对

2、象和接口类、对象和接口 一、教学目的一、教学目的 理解类、对象和接口之间的关系,熟练掌握类理解类、对象和接口之间的关系,熟练掌握类的设计方法、对象的使用方法,接口的定义方法,的设计方法、对象的使用方法,接口的定义方法,熟练运用实例成员和类成员编写程序,了解包的基熟练运用实例成员和类成员编写程序,了解包的基本使用方法。本使用方法。二、教学内容:二、教学内容:本章主要介绍类和对象之间的关系,握类本章主要介绍类和对象之间的关系,握类的设计方法、对象的使用方法,以及包的基本的设计方法、对象的使用方法,以及包的基本使用方法。使用方法。第三页,本课件共有93页第四讲第四讲 类、对象和接口类、对象和接口三、

3、重点及难点内容:三、重点及难点内容:重点:重点:1、仔细体会面向对象编程的思想;、仔细体会面向对象编程的思想;2、熟练理解类和对象的概念,理解面向、熟练理解类和对象的概念,理解面向对象的特性;对象的特性;3、会编写简单的类,逐渐掌握面向对象、会编写简单的类,逐渐掌握面向对象编程的方法。编程的方法。四、难点:四、难点:面向对象编程思想的建立。面向对象编程思想的建立。第四页,本课件共有93页第四讲第四讲 类、对象和接口类、对象和接口四、课前思考四、课前思考 1、什么是对象?什么是类?、什么是对象?什么是类?2、面向对象编程的特性有哪三个?它面向对象编程的特性有哪三个?它们各自又有哪些特性?们各自又

4、有哪些特性?3、你知道你知道java语言在面向对象编程方面语言在面向对象编程方面有何独特的特点吗?有何独特的特点吗?第五页,本课件共有93页4.1编程语言的几个发展阶段 1、机器语言(汇编语言)、机器语言(汇编语言)计算机处理信息的早期语言是所谓的机器语言,计算机处理信息的早期语言是所谓的机器语言,这种语言中的指令都是由这种语言中的指令都是由0,1组成的序列,称这样组成的序列,称这样的序列为一条机器指令。的序列为一条机器指令。2、过程语言(、过程语言(C语言)语言)面向过程语言把代码组成叫做过程或函数的块。面向过程语言把代码组成叫做过程或函数的块。每个块的目标是完成某个任务,例如,一个每个块的

5、目标是完成某个任务,例如,一个C的源的源程序就是由若干个书写形式互相独立的函数组成。程序就是由若干个书写形式互相独立的函数组成。3、面向对象语言(、面向对象语言(JAVA,C+)面向对象编程更符合人的思维模式,主要体现在面向对象编程更符合人的思维模式,主要体现在以下三个特性上。以下三个特性上。第六页,本课件共有93页4.1编程语言的几个发展阶段 1)封装性)封装性 封装是面向对象编程的核心思想之一,就是将数据封装是面向对象编程的核心思想之一,就是将数据和对数据的操作封装在一起,也就是一个对象将自己的和对数据的操作封装在一起,也就是一个对象将自己的数据和对这些数据的操作合理有效地封装在一起。数据

6、和对这些数据的操作合理有效地封装在一起。封装将类的外部界面与类的功能实现区分开来,封装将类的外部界面与类的功能实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数口,迫使用户使用外部界面,通过访问接口实现对数据的操作。即使实现细节发生了改变,也还可通过界据的操作。即使实现细节发生了改变,也还可通过界面承担其功能而保留原样,确保调用它的代码还继续面承担其功能而保留原样,确保调用它的代码还继续工作。这使代码维护更简单。工作。这使代码维护更简单。第七页,本课件共有93页4.1编程语言的几个发展阶段 2

7、)继承)继承 3)多态)多态 多态是面向对象编程的有一个重要特征。多态多态是面向对象编程的有一个重要特征。多态有两种含义:有两种含义:一种是:操作名称的多态,即有多个操作具有相同的一种是:操作名称的多态,即有多个操作具有相同的名字,但这些操作所接收的消息类型必须不同(在名字,但这些操作所接收的消息类型必须不同(在JAVA中体现在方法重载上)。中体现在方法重载上)。另一种:是和继承有关的多态,是指同一个操作另一种:是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为。被不同类型对象调用时可能产生不同的行为。例如:狗和猫都喊叫,狗发出的是例如:狗和猫都喊叫,狗发出的是“汪汪汪汪

8、”而猫是而猫是“喵喵喵喵”(在在JAVA中体现在覆盖上中体现在覆盖上)。)。第八页,本课件共有93页4.2类 类是类是Java的核心,也是类是组成的核心,也是类是组成Java程序的基本要素。程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。类封装了一类对象的状态和方法。类是用来定义对象的模板。类是对具有相同属性和方法的一组相似对象的抽象,或者说类是对具有相同属性和方法的一组相似对象的抽象,或者说类是对象的模板。类是对象的模板。类的实现包括两部分类的实现包括两部分:类声明和类体。类声明和类体。第九页,本课件共有93页4.2类 1、类声明、类声明 类的声明格式如下:类的声明格式

9、如下:修饰符修饰符 class extends 父类名父类名 implements 接口名接口名 类主体类主体 class People 第十页,本课件共有93页4.2类 2、类体、类体 1)写类的目的是为了描述一类事物共有的属性)写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一和功能,描述过程由类体来实现。类声明之后的一对大括号对大括号“”,“”以及它们之间的内容称做类以及它们之间的内容称做类体,大括号之间的内容称做类体的内容。体,大括号之间的内容称做类体的内容。2)类体的内容由两部分构:一部分是)类体的内容由两部分构:一部分是变量的定义变量的定义,用来刻画

10、属性;另一部分是方法的定义,用来刻画用来刻画属性;另一部分是方法的定义,用来刻画功能。功能。第十一页,本课件共有93页4.2类 3)声明成员变量的格式为:)声明成员变量的格式为:修饰符修饰符 声明成员方法的格式为:声明成员方法的格式为:(参数列表参数列表)throws 方法体方法体第十二页,本课件共有93页4.2类class 梯形梯形 float 上底上底,下底下底,高高,laderArea;/变量定义部分变量定义部分 float 计算面积计算面积()/方法定义方法定义 laderArea=(上底上底+下底下底)*高高/2.0f;return laderArea;void 修改高修改高(flo

11、at h)/方法定义方法定义 高高=h;第十三页,本课件共有93页4.24.2类类 3、成员变量和局部变量、成员变量和局部变量 1)我们已经知道类体分为两部分。变量定义部)我们已经知道类体分为两部分。变量定义部分所定义的变量被称为类的成员变量。在方法体中定分所定义的变量被称为类的成员变量。在方法体中定义的变量和方法的参数被称为局部变量。义的变量和方法的参数被称为局部变量。2 2)成员变量在整个类内都有效,局部变量只在定)成员变量在整个类内都有效,局部变量只在定)成员变量在整个类内都有效,局部变量只在定)成员变量在整个类内都有效,局部变量只在定义它的方法内有效。义它的方法内有效。义它的方法内有效

12、。义它的方法内有效。3)成员变量又分为实例成员变量(简称实例)成员变量又分为实例成员变量(简称实例变量)和类变量(也称静态变量)变量)和类变量(也称静态变量)。如果成员变。如果成员变量的类型前面加上关键字量的类型前面加上关键字static,这样的成员变,这样的成员变量称做是类变量或静态变量。量称做是类变量或静态变量。第十四页,本课件共有93页4.24.2类类 4)如果局部变量的名字与成员变量的名字相同,)如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时则成员变量被隐藏,即这个成员变量在这个方法内暂时失效失效。5)如果局部变量的名字与成员变量的名字相)如果

13、局部变量的名字与成员变量的名字相同,则成员变量被隐藏。这时如果想在该方法内同,则成员变量被隐藏。这时如果想在该方法内使用成员变量,必须使用关键字使用成员变量,必须使用关键字this。第十五页,本课件共有93页4.24.2类类 4、方法、方法 方法的定义包括两部分:方法声明和方法体。一般格方法的定义包括两部分:方法声明和方法体。一般格式为:式为:方法声明部分方法声明部分 方法体内容方法体内容 1)方法声明)方法声明 最基本的方法声明包括方法名和方法类型。当最基本的方法声明包括方法名和方法类型。当方法不需要返回数据时,方法的类型必须是方法不需要返回数据时,方法的类型必须是void。第十六页,本课件

14、共有93页4.24.2类类 2)方法体)方法体 方法声明之后的一对大括号以及之间的内容成为方方法声明之后的一对大括号以及之间的内容成为方法的方法体。方法体的内容包括局部变量的定义和合法法的方法体。方法体的内容包括局部变量的定义和合法的的Java语言。语言。3)方法参数在整个方法内有效,方法内定义的局部)方法参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效。如果局部变量的定义变量从它定义的位置之后开始有效。如果局部变量的定义是在一个复合语句中,那么该局部变量的有效范围是该复是在一个复合语句中,那么该局部变量的有效范围是该复合语句,即仅在该复合语句中有效,如果局部变量的定义合语

15、句,即仅在该复合语句中有效,如果局部变量的定义是在一个循环语句中,那么该局部变量的有效范围是该循是在一个循环语句中,那么该局部变量的有效范围是该循环语句,即仅在该循环语句中有效环语句,即仅在该循环语句中有效。第十七页,本课件共有93页4.24.2类类 5、方法重载、方法重载 方法重载的意思是:一个类中可以有多个方法具有相方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。重载是个数不同,或者是参数的类型不同。重载是Java 实现多态实现多态性的一种方式。性的一种方式。有

16、两个规则适用于重载方法:有两个规则适用于重载方法:调用语句的参数表必须有足够的不同,以至于调用语句的参数表必须有足够的不同,以至于允许区分出正确的方法被调用。允许区分出正确的方法被调用。方法的返回类型可以各不相同,但它不足以使方法的返回类型可以各不相同,但它不足以使返回类型变成唯一的差异。返回类型变成唯一的差异。重载方法的参数表必须不重载方法的参数表必须不同。同。第十八页,本课件共有93页class Area float getArea(float r)return 3.14f*r*r;double getArea(float x,int y)return x*y;float getArea(

17、int x,float y)return x*y;double getArea(float x,float y,float z)return(x*x+y*y+z*z)*2.0;第十九页,本课件共有93页4.24.2类类 6、构造方法、构造方法 1)构造方法是一种特殊方法,用来对对象进行)构造方法是一种特殊方法,用来对对象进行初始化。初始化。2)它的名字必须与它所在的类的名字完全相)它的名字必须与它所在的类的名字完全相同,而且没有类型,甚至连表示无返回值的空类型同,而且没有类型,甚至连表示无返回值的空类型(void)也没有)也没有。构造方法一般应定义为。构造方法一般应定义为public构构造方法

18、也可以重载造方法也可以重载 3)一般而言,每个类都至少有一个构造函数。)一般而言,每个类都至少有一个构造函数。如果程序员没有为类定义构造函数,如果程序员没有为类定义构造函数,Java虚拟机会虚拟机会自动为该类生成一个默认的构造函数。自动为该类生成一个默认的构造函数。4)要特别注意的是,如果程序员定义了一个或)要特别注意的是,如果程序员定义了一个或多个构造函数,则自动屏蔽掉默认的构造函数。(详多个构造函数,则自动屏蔽掉默认的构造函数。(详见例程)见例程)第二十页,本课件共有93页 5)构造方法重载示例构造方法重载示例 public class Employee private String na

19、me;private int salary;public Employee(String n,int s)name=n;salary=s;public Employee(String n)this(n,0);public Employee()this(Unknown );第二十一页,本课件共有93页4.24.2类类 7 7、类方法和实例方法说明:、类方法和实例方法说明:1 1)类中的方法分为实例方法和类方法。)类中的方法分为实例方法和类方法。2 2)方法声明时,方法类型前面不加关键字)方法声明时,方法类型前面不加关键字staticstatic的是实例方法、加关键字的是实例方法、加关键字stat

20、icstatic的是类方法。的是类方法。3 3)构造方法是特殊的方法,不能用)构造方法是特殊的方法,不能用staticstatic修饰修饰构造方法。构造方法。4 4)实例方法既能对类变量操作也能对实例变)实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作。量操作,而类方法只能对类变量进行操作。5 5)一个类中的方法可以互相调用,实例方法可)一个类中的方法可以互相调用,实例方法可以调用该类中的其他方法;类方法只能调用类方法,以调用该类中的其他方法;类方法只能调用类方法,不能调用实例方法。不能调用实例方法。第二十二页,本课件共有93页4.34.3对象对象 类是创建对象的模板。

21、当使用一个类创建了一个对象类是创建对象的模板。当使用一个类创建了一个对象时,我们也说我们给出了这个类的一个实例。时,我们也说我们给出了这个类的一个实例。1、创建对象、创建对象 创建一个对象包括对象的声明和为对象分配内存创建一个对象包括对象的声明和为对象分配内存两个步骤。两个步骤。(1)对象的声明。对象的声明。一般格式为:一般格式为:类的名字类的名字 对象名字对象名字;如:如:People zhangPing;第二十三页,本课件共有93页4.34.3对象对象 (2)为声明的对象分配内存为声明的对象分配内存 使用使用new运算符和类的构造方法为声明的运算符和类的构造方法为声明的对象分配内存,如果类

22、中没有构造方法,系统对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无会调用默认的构造方法(默认的构造方法是无参数的)。如:参数的)。如:zhangPing=new People();(3)对象的内存模型对象的内存模型 见下例见下例:第二十四页,本课件共有93页 class XiyoujiRenwu float height,weight;String head,ear,hand,foot,mouth;void speak(String s)System.out.println(s);class A public static void main(String a

23、rgs)XiyoujiRenwu zhubajie;/声明对象声明对象 zhubajie=new XiyoujiRenwu();/为对象分为对象分/配内存配内存,使用,使用new 运运 算算 符和默认的构造方法符和默认的构造方法 第二十五页,本课件共有93页4.34.3对象对象 当用当用XiyoujiRenwu类声明一个变量,类声明一个变量,即对象即对象zhubajie时,对象时的内存模型如下:时,对象时的内存模型如下:XiyoujiRenwu zhubajie;第二十六页,本课件共有93页4.3对象 当系统见到:当系统见到:zhubajie=new XiyoujiRenwu();时,就会做两

24、件事:时,就会做两件事:为为height,weight,head,ear,mouth,hand,foot各个变量分配内存,各个变量分配内存,即即XiyoujiRenwu类的成员变量被分配内存类的成员变量被分配内存空间,然后执行构造方法中的语句。空间,然后执行构造方法中的语句。new运算符在为变量运算符在为变量height,weight,head,ear,mouth,hand,foot分配内存后,将返回一个引用给对象变分配内存后,将返回一个引用给对象变量量zhubajie(分配实体后的内存模型如下:)。(分配实体后的内存模型如下:)。第二十七页,本课件共有93页4.3对象第二十八页,本课件共有9

25、3页4.34.3对象对象 2、对象的使用、对象的使用 1)对象不仅可以操作自己的变量改变状态,而且)对象不仅可以操作自己的变量改变状态,而且还拥有了使用创建它的那个类中的方法的能力,对象还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。通过使用这些方法可以产生一定的行为。2)通过使用运算符)通过使用运算符“.”,对象可以实现对自己的,对象可以实现对自己的变量访问和方法的调用。变量访问和方法的调用。3)当对象调用方法时,方法中出现的成员变量)当对象调用方法时,方法中出现的成员变量就是指该对象的成员变量(见例就是指该对象的成员变量(见例4.3)。)。对象名成员变量名

26、对象名成员变量名 对象名成员方法名(对象名成员方法名()第二十九页,本课件共有93页4.34.3对象对象 3、对象的引用和实体、对象的引用和实体 1)当用类创建一个对象时,类中的成员变量被)当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间称做该对象的实体,而分配内存空间,这些内存空间称做该对象的实体,而对象中存放着引用,以确保实体由该对象操作使用。对象中存放着引用,以确保实体由该对象操作使用。2)一个类创建的两个对象,如果具有相同的)一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体。引用,那么就具有完全相同的实体。3)没有实体的对象称作空对象,空对象不能使)没

27、有实体的对象称作空对象,空对象不能使用,即不能让一个空对象去调用方法产生行为。用,即不能让一个空对象去调用方法产生行为。第三十页,本课件共有93页4.34.3对象对象第三十一页,本课件共有93页4.34.3对象对象第三十二页,本课件共有93页4.34.3对象对象 4、参数传值、参数传值 在在JavaJava语言中,向方法传递参数的方式是语言中,向方法传递参数的方式是“按按值传递值传递”。按值传递意味着当将一个参数传递给一。按值传递意味着当将一个参数传递给一个方法时,首先创建了源参数的一个副本并将这个个方法时,首先创建了源参数的一个副本并将这个副本传入了方法,这样方法接收的是原始值的一个副本传入

28、了方法,这样方法接收的是原始值的一个副本。因此,即使在方法中修改了该参数,那仅仅副本。因此,即使在方法中修改了该参数,那仅仅是改变副本,而源参数值保持不变。是改变副本,而源参数值保持不变。1 1)基本数据类型参数的传值)基本数据类型参数的传值 对于基本数据类型的参数,向该参数传递的值的对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别,比如,不可以向级别不可以高于该参数的级别,比如,不可以向intint型型参数传递一个参数传递一个floatfloat值,但可以向值,但可以向doubledouble型参数传递一型参数传递一个个floatfloat值。值。第三十三页,本课件共有9

29、3页4.34.3对象对象 2)引用类型参数的传值)引用类型参数的传值 Java的引用型数据包括对象、数组和接口。当参数的引用型数据包括对象、数组和接口。当参数是引用类型时,是引用类型时,“传值传值”传递的是变量的引用而不是变传递的是变量的引用而不是变量所引用的实体。量所引用的实体。当使用对象实例作为参数传递给方法时,参数的值是当使用对象实例作为参数传递给方法时,参数的值是对对象的引用。也就是说,传递给到方法内部的是对象的对对象的引用。也就是说,传递给到方法内部的是对象的引用值而不是对象的内容。引用值而不是对象的内容。在方法内这个引用值不会被改变。但如果通过该在方法内这个引用值不会被改变。但如果

30、通过该引用值修改了所指向的对象的内容,则方法结束后,引用值修改了所指向的对象的内容,则方法结束后,所修改的对象内容可以保留下来。(详见例程和课本所修改的对象内容可以保留下来。(详见例程和课本例例4.5)第三十四页,本课件共有93页4.4 static4.4 static关键字关键字 在一个类中,使用在一个类中,使用static修饰的变量和方法分别称修饰的变量和方法分别称为为类变量类变量(或称静态变量)和(或称静态变量)和类方法类方法(或称静态方法)(或称静态方法),没有使用,没有使用static修饰的变量和方法分别称为实例变修饰的变量和方法分别称为实例变量和实例方法。量和实例方法。1、实例变量

31、和类变量的区别、实例变量和类变量的区别 一个类通过使用一个类通过使用new运算符可以创建多个不同的运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空对象,不同的对象的实例变量将被分配不同的内存空间,如果类中的成员变量有类变量,那么所有的对象间,如果类中的成员变量有类变量,那么所有的对象的这个类变量都分配给相同的一处内存,改变其中一的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。个对象的这个类变量会影响其它对象的这个类变量。第三十五页,本课件共有93页4.4 static4.4 static关键字关键字 类变量是和该类创建的所有对象

32、相关联的变量,改变类变量是和该类创建的所有对象相关联的变量,改变其中一个对象的这个类变量就同时改变了其它对象的这其中一个对象的这个类变量就同时改变了其它对象的这个类变量。因此,类变量不仅可以通过某个对象访问也个类变量。因此,类变量不仅可以通过某个对象访问也可以直接通过类名访问。实例变量仅仅是和相应的对象可以直接通过类名访问。实例变量仅仅是和相应的对象关联的变量,也就是说,不同对象的实例变量互不相同,关联的变量,也就是说,不同对象的实例变量互不相同,即分配不同的内存空间,改变其中一个对象的实例变量即分配不同的内存空间,改变其中一个对象的实例变量不会影响其它对象的这个实例变量。实例变量可以通过不会

33、影响其它对象的这个实例变量。实例变量可以通过对象访问,不能使用类名访问。对象访问,不能使用类名访问。第三十六页,本课件共有93页4.4 static4.4 static关键字关键字 、实例方法和类方法的区别、实例方法和类方法的区别 实例方法可以被类创建的任何对象调用执行。而实例方法可以被类创建的任何对象调用执行。而类方法不仅可以被类创建的任何对象调用执行,也可类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。以直接通过类名调用。总结:总结:1 1、类成员属于这个类而不是属于这个类的某、类成员属于这个类而不是属于这个类的某个对象。个对象。第三十七页,本课件共有93页4.4 sta

34、tic4.4 static关键字关键字 2、对于类成员,既可以使用对象进行访问,、对于类成员,既可以使用对象进行访问,也可以使用类名直接进行访问,并且在也可以使用类名直接进行访问,并且在类方法类方法中只中只能访问能访问类成员类成员,而不能访问实例成员。,而不能访问实例成员。3、实例成员由每一个对象个体独有,对象的存、实例成员由每一个对象个体独有,对象的存储空间中的确有一块空间用来存储该成员。对于实例储空间中的确有一块空间用来存储该成员。对于实例成员,只能通过对象来访问,不能通过类名进行访问。成员,只能通过对象来访问,不能通过类名进行访问。4、在实例方法中,既可以访问实例成员,也可、在实例方法中

35、,既可以访问实例成员,也可以访问类成员。以访问类成员。第三十八页,本课件共有93页4.5 this4.5 this关键字关键字 有关有关this的几点描述:的几点描述:1)this是是Java的一个关键字,表示某个对象。的一个关键字,表示某个对象。2)this可以出现在实例方法和构造方法中,但不可可以出现在实例方法和构造方法中,但不可以出现在类方法中。以出现在类方法中。3)this关键字出现在类的构造方法中时,代表使用关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。该构造方法所创建的对象。4)this关键字出现在类的实例方法中时,代表关键字出现在类的实例方法中时,代表正在调用该方

36、法的当前对象。正在调用该方法的当前对象。第三十九页,本课件共有93页4.5 this4.5 this关键字关键字 5)需要注意的是,当一个变量被声明为)需要注意的是,当一个变量被声明为static时,是不能用时,是不能用this来指向的,因为来指向的,因为this指向指向某一具体对象,不能用来指示类本身。某一具体对象,不能用来指示类本身。6)this还可以用在某个构造函数的第一句,还可以用在某个构造函数的第一句,用来调用该类的另一个构造函数用来调用该类的另一个构造函数。第四十页,本课件共有93页4.6 4.6 包包 1 1、包语句包语句 1 1)包的概念)包的概念)包的概念)包的概念 包:是包

37、:是JavaJava提供的文件组织方式。提供的文件组织方式。为了便于管理大型软件系统中数目众多的类,为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,解决类命名冲突的问题,JavaJavaJavaJava引入了包(引入了包(引入了包(引入了包(packagepackage)。)。一个包中可以包括很多类文件,包中还可以有子包,一个包中可以包括很多类文件,包中还可以有子包,形成包等级。使用包不仅方便了类文件的管理,而且形成包等级。使用包不仅方便了类文件的管理,而且扩大了扩大了JavaJava命名空间。命名空间。第四十一页,本课件共有93页4.6 4.6 包包 2 2)包的创建)包的创建

38、 创建包的语法格式为:创建包的语法格式为:Package Package ;例如:例如:package myPackage;package myPackage;也可以创建包的层次。也可以创建包的层次。例如:例如:package myPackage.secondPackage;package myPackage.secondPackage;第四十二页,本课件共有93页4.6 4.6 包包 3)package语句的进一步说明语句的进一步说明 (1)package语句必须是文件中的第一条语句。也语句必须是文件中的第一条语句。也就是说,在就是说,在package语句之前,除了空白和注释之外语句之前,除

39、了空白和注释之外不能有任何语句。不能有任何语句。(2)如果不加如果不加package语句,则指定为缺省包语句,则指定为缺省包或无名包。或无名包。(3)包对应着文件系统的目录层次结构。包对应着文件系统的目录层次结构。(4)在在package语句中,用语句中,用“.”来指明包(目来指明包(目录)的层次。录)的层次。第四十三页,本课件共有93页4.6 4.6 包包例:例:package myPackage;public class HelloWorldpublic static void main(String args)System.out.print(Hello World!);第四十四页,本课

40、件共有93页4.6 4.6 包包 2、import语句语句 在编写源文件时,除了自己编写类外,我们经常需在编写源文件时,除了自己编写类外,我们经常需要使用要使用Java提供的许多类,这些类可能在不同的包中,提供的许多类,这些类可能在不同的包中,而使用而使用import 语句可以引入包中的类。语句可以引入包中的类。import import 语句的使用方式如下:语句的使用方式如下:语句的使用方式如下:语句的使用方式如下:1 1)引入包中的类。)引入包中的类。)引入包中的类。)引入包中的类。import java.io.File;2 2)引入整个包。)引入整个包。)引入整个包。)引入整个包。imp

41、ort java.io.*;import java.io.*;3)在同一包中的类可以互相引用,无需)在同一包中的类可以互相引用,无需import语语句。句。第四十五页,本课件共有93页4.74.7访问权限访问权限 1、访问控制修饰符简介、访问控制修饰符简介 访问控制修饰符说明类或类的成员的可访问范围。访问控制修饰符说明类或类的成员的可访问范围。1)public 用用用用publicpublic修饰的类或成员拥有公共作用域,表明此修饰的类或成员拥有公共作用域,表明此修饰的类或成员拥有公共作用域,表明此修饰的类或成员拥有公共作用域,表明此类或类的成员可以被任何类或类的成员可以被任何类或类的成员可以

42、被任何类或类的成员可以被任何JavaJava中的类所访问,是最广泛中的类所访问,是最广泛中的类所访问,是最广泛中的类所访问,是最广泛的作用范围。的作用范围。的作用范围。的作用范围。2)protected 用用protected修饰的变量或方法拥有受保护作修饰的变量或方法拥有受保护作用域,可以被同一个包中所有的类及其他包中该类用域,可以被同一个包中所有的类及其他包中该类的子类所访问。的子类所访问。第四十六页,本课件共有93页4.74.7访问权限访问权限 3)private 用用private修饰的变量或方法拥有私有作用域,只修饰的变量或方法拥有私有作用域,只能在此类中访问,在其他类中,包括该类的

43、子类中也是能在此类中访问,在其他类中,包括该类的子类中也是不允许访问的,不允许访问的,private是最保守的作用范围。是最保守的作用范围。4)friendly(默认)(默认)没有使用任何修饰符的,拥有默认访问权限没有使用任何修饰符的,拥有默认访问权限(也称友好访问权限),表明此类或类的成员可(也称友好访问权限),表明此类或类的成员可以被同一个包中的其它类访问。以被同一个包中的其它类访问。第四十七页,本课件共有93页4.74.7访问权限访问权限 2、私有变量和私有方法、私有变量和私有方法 一个类在另外一个类中创建一个对象后,该对象一个类在另外一个类中创建一个对象后,该对象不能访问自己的私有变量

44、和私有方法不能访问自己的私有变量和私有方法 对于一个类的私有类变量(静态成员变量),对于一个类的私有类变量(静态成员变量),那么在另外一个类中,也不能通过类名来操作这个那么在另外一个类中,也不能通过类名来操作这个私有类变量。私有类变量。对于私有成员变量或方法,只有在本类中创对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有建该类的对象时,这个对象才能访问自己的私有成员变量和类的私有方法。成员变量和类的私有方法。第四十八页,本课件共有93页4.74.7访问权限访问权限 3、共(公)有变量和共(公)有方法、共(公)有变量和共(公)有方法 一个类在另外一个类中创建一个对

45、象后,该对象一个类在另外一个类中创建一个对象后,该对象能访问自己的能访问自己的public变量和变量和public方法。方法。对于一个类的对于一个类的public类变量(静态成员变量),那类变量(静态成员变量),那么在另外一个类中,也能通过类名来操作这个么在另外一个类中,也能通过类名来操作这个public类类变量。变量。第四十九页,本课件共有93页4.74.7访问权限访问权限 4、友好变量和友好方法友好变量和友好方法 不用不用private、public、protected修饰符的成员修饰符的成员变量和方法被称为友好变量和友好方法。变量和方法被称为友好变量和友好方法。一个类在另外一个类中创建一

46、个对象后,如果两个类一个类在另外一个类中创建一个对象后,如果两个类在同一包中,该对象能访问自己的友好变量和友好方法。在同一包中,该对象能访问自己的友好变量和友好方法。对于一个类的友好类变量(静态成员变量),如果两对于一个类的友好类变量(静态成员变量),如果两个类在同一包中,那么在另外一个类中,也能通过类名个类在同一包中,那么在另外一个类中,也能通过类名来操作这个友好类变量。来操作这个友好类变量。第五十页,本课件共有93页4.74.7访问权限访问权限 5、受保护的成员变量和方法、受保护的成员变量和方法 一个类在另外一个类中创建一个对象后,如果两一个类在另外一个类中创建一个对象后,如果两个类在同一

47、包中,该对象能访问自己的个类在同一包中,该对象能访问自己的protected变量变量和和protected方法。方法。对于一个类的对于一个类的protected类变量(静态成员变量),类变量(静态成员变量),如果两个类在同一包中,那么在另外一个类中,也能通如果两个类在同一包中,那么在另外一个类中,也能通过类名来操作这个过类名来操作这个protected类变量。类变量。第五十一页,本课件共有93页4.84.8类的继承类的继承 继承:是存在于面向对象程序中的两个类继承:是存在于面向对象程序中的两个类之间的一种关系。当一个类之间的一种关系。当一个类A能够获取另一个能够获取另一个类类B中所有非私有的数

48、据和操作的定义作为自中所有非私有的数据和操作的定义作为自己的部分或全部成分时,就称这两个类之间具己的部分或全部成分时,就称这两个类之间具有继承关系。被继承的类有继承关系。被继承的类B称为父类或超类,称为父类或超类,继承了父类或超类的数据和操作的类继承了父类或超类的数据和操作的类A称为子称为子类。类。第五十二页,本课件共有93页4.84.8类的继承类的继承 一个父类可以同时拥有多个子类,这时这个父类一个父类可以同时拥有多个子类,这时这个父类实际上是所有子类的公共域和公共方法的集合,而每实际上是所有子类的公共域和公共方法的集合,而每一子类则是父类的特殊化,是在父类的基础之上对公一子类则是父类的特殊

49、化,是在父类的基础之上对公共域和方法在功能、内涵方面的扩展和延伸。共域和方法在功能、内涵方面的扩展和延伸。使用继承具有以下的好处:降低代码编写中的冗使用继承具有以下的好处:降低代码编写中的冗余度,更好地实现了代码复用的功能,提高程序编写余度,更好地实现了代码复用的功能,提高程序编写的效率。由于降低了代码的冗余度,使得程序在维护的效率。由于降低了代码的冗余度,使得程序在维护时就变得非常的方便。时就变得非常的方便。第五十三页,本课件共有93页4.84.8类的继承类的继承 1、子类、子类 在类的声明中,通过使用关键字在类的声明中,通过使用关键字extends来创建一来创建一个类的子类,格式如下个类的

50、子类,格式如下:class 子类名子类名 extends 父类名父类名 例如:例如:class Students extends People 第五十四页,本课件共有93页4.84.8类的继承类的继承 2、子类的继承、子类的继承 类可以有两种重要的成员:成员变量和方法。子类可以有两种重要的成员:成员变量和方法。子类的成员中有一部分是子类自己声明定义的,另一类的成员中有一部分是子类自己声明定义的,另一部分是从它的父类继承的。部分是从它的父类继承的。所谓子类继承父类的成员变量作为自己的一个成所谓子类继承父类的成员变量作为自己的一个成员变量,就好象它们是在子类中直接声明一样,可以员变量,就好象它们是

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

当前位置:首页 > 生活休闲 > 资格考试

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

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