Java第4章类与对象.ppt
《Java第4章类与对象.ppt》由会员分享,可在线阅读,更多相关《Java第4章类与对象.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 类与对象类与对象本章导读本章导读1 1、面向对象编程面向对象编程面向对象编程面向对象编程2 2、类声明和类体类声明和类体类声明和类体类声明和类体3 3、类体的构成类体的构成类体的构成类体的构成4 4、构造方法与对象的创建构造方法与对象的创建构造方法与对象的创建构造方法与对象的创建5 5、对象的引用与实体对象的引用与实体对象的引用与实体对象的引用与实体6 6、成员变量成员变量成员变量成员变量7 7、方法方法方法方法8 8、方法重载方法重载方法重载方法重载本章导读本章导读9 9、thisthis关键字关键字关键字关键字1010、包包包包1111、import import 语句语句语句
2、语句1212、访问权限访问权限访问权限访问权限1313、对象的组合对象的组合对象的组合对象的组合1414、基本类型数据的类包装基本类型数据的类包装基本类型数据的类包装基本类型数据的类包装1515、反编译和文档生成器反编译和文档生成器反编译和文档生成器反编译和文档生成器1616、JARJAR文件文件文件文件4.1 面向对象编程面向对象编程 n n封装封装封装封装qq将数据以及对数据的操作封装在类中。将数据以及对数据的操作封装在类中。将数据以及对数据的操作封装在类中。将数据以及对数据的操作封装在类中。n n继承继承继承继承qq子类可以继承父类的属性子类可以继承父类的属性子类可以继承父类的属性子类可
3、以继承父类的属性(数据数据数据数据)和功能和功能和功能和功能(操作操作操作操作)n n多态多态多态多态qq操作名称的多态操作名称的多态操作名称的多态操作名称的多态&和继承有关的多态和继承有关的多态和继承有关的多态和继承有关的多态 操作名称的多态操作名称的多态操作名称的多态操作名称的多态:是指可以向操作传递不同消息,是指可以向操作传递不同消息,是指可以向操作传递不同消息,是指可以向操作传递不同消息,以便让对象调用时可能产生不同的行为。以便让对象调用时可能产生不同的行为。以便让对象调用时可能产生不同的行为。以便让对象调用时可能产生不同的行为。和继承有关的多态:和继承有关的多态:和继承有关的多态:和
4、继承有关的多态:是指同一个操作被不同类型对象是指同一个操作被不同类型对象是指同一个操作被不同类型对象是指同一个操作被不同类型对象调用时可能产生不同的行为。调用时可能产生不同的行为。调用时可能产生不同的行为。调用时可能产生不同的行为。4.2 类声明和类体类声明和类体 n n类类类类是组成是组成是组成是组成JavaJava程序的基本要素,类封装了一类对象的状态程序的基本要素,类封装了一类对象的状态程序的基本要素,类封装了一类对象的状态程序的基本要素,类封装了一类对象的状态和方法。和方法。和方法。和方法。n n类是用来定义对象的模板,可以用类创建对象。类是用来定义对象的模板,可以用类创建对象。类是用
5、来定义对象的模板,可以用类创建对象。类是用来定义对象的模板,可以用类创建对象。n n当使用一个类创建了一个当使用一个类创建了一个当使用一个类创建了一个当使用一个类创建了一个对象对象对象对象时,我们也说给出了这个类时,我们也说给出了这个类时,我们也说给出了这个类时,我们也说给出了这个类的一个的一个的一个的一个实例实例实例实例。n n在语法上,类由两部分构成:在语法上,类由两部分构成:在语法上,类由两部分构成:在语法上,类由两部分构成:类声明和类体类声明和类体类声明和类体类声明和类体n n基本格式为:基本格式为:基本格式为:基本格式为:class class 类名类名类名类名 类体的内容类体的内容
6、类体的内容类体的内容 class dog class dog class class 机动车机动车机动车机动车 n n 类名:类名:类名:类名:类名必须是合法的类名必须是合法的类名必须是合法的类名必须是合法的JavaJava标识符,不能是标识符,不能是标识符,不能是标识符,不能是JavaJava中中中中的关键字。的关键字。的关键字。的关键字。n n给类命名时,最好遵守下列习惯:给类命名时,最好遵守下列习惯:给类命名时,最好遵守下列习惯:给类命名时,最好遵守下列习惯:qq如果类名使用如果类名使用如果类名使用如果类名使用拉丁字母拉丁字母拉丁字母拉丁字母,那么名字的,那么名字的,那么名字的,那么名字
7、的首字母首字母首字母首字母使用使用使用使用 大写大写大写大写字母字母字母字母n n如:如:如:如:HelloHello、TimeTime、PeoplePeopleqq类名最好容易识别、见名知意。类名最好容易识别、见名知意。类名最好容易识别、见名知意。类名最好容易识别、见名知意。qq当类名当类名当类名当类名由几个由几个由几个由几个“单词单词单词单词”复合而成复合而成复合而成复合而成时,时,时,时,每个单词的首写字每个单词的首写字每个单词的首写字每个单词的首写字母母母母使用大写。使用大写。使用大写。使用大写。n n如:如:如:如:BeijingTimeBeijingTime、AmericanGam
8、eAmericanGame、HelloChinaHelloChina返回返回返回返回4.3 类体的构成类体的构成n n 写类的写类的写类的写类的目的目的目的目的是为了描述一类事物共有的属性和功能,是为了描述一类事物共有的属性和功能,是为了描述一类事物共有的属性和功能,是为了描述一类事物共有的属性和功能,即将数据和对数据的操作封装在一起,这一过程由类体来即将数据和对数据的操作封装在一起,这一过程由类体来即将数据和对数据的操作封装在一起,这一过程由类体来即将数据和对数据的操作封装在一起,这一过程由类体来实现。实现。实现。实现。n n类体类体类体类体内容可以有内容可以有内容可以有内容可以有2 2种类
9、型的成员:种类型的成员:种类型的成员:种类型的成员:qq成员变量(或域)成员变量(或域)成员变量(或域)成员变量(或域)n n在类体声明定义的变量,用来刻画类创建的对象的属在类体声明定义的变量,用来刻画类创建的对象的属在类体声明定义的变量,用来刻画类创建的对象的属在类体声明定义的变量,用来刻画类创建的对象的属性。性。性。性。qq成员方法成员方法成员方法成员方法(1 1)由类所创建的对象调用,对象调用这些方法操作由类所创建的对象调用,对象调用这些方法操作由类所创建的对象调用,对象调用这些方法操作由类所创建的对象调用,对象调用这些方法操作成员变量形成一定的算法,体现对象具有某种功能。成员变量形成一
10、定的算法,体现对象具有某种功能。成员变量形成一定的算法,体现对象具有某种功能。成员变量形成一定的算法,体现对象具有某种功能。(2 2)构造方法)构造方法)构造方法)构造方法是具有特殊地位的方法,供类创建对象是具有特殊地位的方法,供类创建对象是具有特殊地位的方法,供类创建对象是具有特殊地位的方法,供类创建对象时使用,用来给出类所创建的对象的初始状态。时使用,用来给出类所创建的对象的初始状态。时使用,用来给出类所创建的对象的初始状态。时使用,用来给出类所创建的对象的初始状态。class 机动车机动车 int speed;/变量定义部分变量定义部分 float weight,height;/变量定义
11、部分变量定义部分 void changSpeed(int newSpeed)/方法定义方法定义 speed=newSpeed;float getWeight()/方法定义方法定义 return weight;float getHeight()/方法定义方法定义 return height;n n例:例:例:例:机动车类机动车类机动车类机动车类n n例:例:例:例:机动车类机动车类机动车类机动车类qq成员变量有成员变量有成员变量有成员变量有2 2个个个个floatfloat类型的变量:类型的变量:类型的变量:类型的变量:“weight”“weight”、“height”“height”和一个和一
12、个和一个和一个intint型变量型变量型变量型变量“speed”“speed”。qq成员方法有成员方法有成员方法有成员方法有3 3个:个:个:个:“changSpeed”“changSpeed”、“getWeight”“getWeight”和和和和“getHeight”“getHeight”。对成员变量的说明:对成员变量的说明:n n (1 1)成员变量的类型)成员变量的类型)成员变量的类型)成员变量的类型可以是可以是可以是可以是JavaJava中的任何一种数据类型,包括前中的任何一种数据类型,包括前中的任何一种数据类型,包括前中的任何一种数据类型,包括前面学习过的基本类型:整型、浮点型、字符
13、型、数组以及后面要学习面学习过的基本类型:整型、浮点型、字符型、数组以及后面要学习面学习过的基本类型:整型、浮点型、字符型、数组以及后面要学习面学习过的基本类型:整型、浮点型、字符型、数组以及后面要学习的对象及接口。的对象及接口。的对象及接口。的对象及接口。n n (2 2)成员变量在整个类内都有效,与它在类体中书写的先后位置成员变量在整个类内都有效,与它在类体中书写的先后位置成员变量在整个类内都有效,与它在类体中书写的先后位置成员变量在整个类内都有效,与它在类体中书写的先后位置无关。无关。无关。无关。qq例如:例如:例如:例如:机动车类机动车类机动车类机动车类也可以写成也可以写成也可以写成也
14、可以写成机动车机动车机动车机动车2 2class 机动车机动车2 void changSpeed(int newSpeed)/方法定义方法定义 speed=newSpeed;int speed;/变量定义部分变量定义部分 float getWeight()/方法定义方法定义 return weight;float weight;/变量定义部分变量定义部分 float getHeight()/方法定义方法定义 return height;float height;/变量定义部分变量定义部分机动车机动车2n n对成员变量的说明:对成员变量的说明:对成员变量的说明:对成员变量的说明:(3 3)在定义
15、类的成员变量时可以同时赋予初值,表明类在定义类的成员变量时可以同时赋予初值,表明类在定义类的成员变量时可以同时赋予初值,表明类在定义类的成员变量时可以同时赋予初值,表明类所创建的对象的初始状态。所创建的对象的初始状态。所创建的对象的初始状态。所创建的对象的初始状态。(4 4)对成员变量的操作只能放在方法中,方法可以对成对成员变量的操作只能放在方法中,方法可以对成对成员变量的操作只能放在方法中,方法可以对成对成员变量的操作只能放在方法中,方法可以对成员变量进行操作形成算法员变量进行操作形成算法员变量进行操作形成算法员变量进行操作形成算法(合法合法合法合法、非法非法非法非法)类的成员类型中可以有数
16、据和方法类的成员类型中可以有数据和方法类的成员类型中可以有数据和方法类的成员类型中可以有数据和方法(即数据的定义和即数据的定义和即数据的定义和即数据的定义和方法的定义方法的定义方法的定义方法的定义)但不能有语句,语句必须放在方法中。但不能有语句,语句必须放在方法中。但不能有语句,语句必须放在方法中。但不能有语句,语句必须放在方法中。返回返回返回返回class A int a=9;float b=12.6f;void f()a=12;b=12.56f;合法合法class A int a;float b;a=12;/非法,非法,a=12是赋值语句,不是数据是赋值语句,不是数据 的声明的声明 b=1
17、2.56f;/非法非法 void f()非法非法4.4 构造方法与对象的创建构造方法与对象的创建1 1、构造方法、构造方法、构造方法、构造方法2 2、对象的创建、对象的创建、对象的创建、对象的创建1)1)对象的声明对象的声明对象的声明对象的声明2)2)为声明的对象分配成员变量为声明的对象分配成员变量为声明的对象分配成员变量为声明的对象分配成员变量3)3)创建多个不同的对象创建多个不同的对象创建多个不同的对象创建多个不同的对象3 3、使用对象使用对象使用对象使用对象4.4.1 构造方法构造方法n n 在类创建对象时使用构造方法,以便给类所创建的对在类创建对象时使用构造方法,以便给类所创建的对在类
18、创建对象时使用构造方法,以便给类所创建的对在类创建对象时使用构造方法,以便给类所创建的对象一个合理的初始状态。象一个合理的初始状态。象一个合理的初始状态。象一个合理的初始状态。n n 构造方法的名字必须与它所在的类的名字完全相同,构造方法的名字必须与它所在的类的名字完全相同,构造方法的名字必须与它所在的类的名字完全相同,构造方法的名字必须与它所在的类的名字完全相同,并且不返回任何数据类型,即它是并且不返回任何数据类型,即它是并且不返回任何数据类型,即它是并且不返回任何数据类型,即它是voidvoid型,但型,但型,但型,但voidvoid必须省必须省必须省必须省略不写。略不写。略不写。略不写。
19、n n Java Java允许一个类中有若干个构造方法,但这些允许一个类中有若干个构造方法,但这些允许一个类中有若干个构造方法,但这些允许一个类中有若干个构造方法,但这些构造方构造方构造方构造方法的参数必须不同法的参数必须不同法的参数必须不同法的参数必须不同,即或者是参数的个数不同,或者是参,即或者是参数的个数不同,或者是参,即或者是参数的个数不同,或者是参,即或者是参数的个数不同,或者是参数的类型不同数的类型不同数的类型不同数的类型不同(构造函数重载构造函数重载构造函数重载构造函数重载)。qq例:例:例:例:RectRect类类类类class Rect double sideA,sideB;
20、Rect()/无参数构造方法。无参数构造方法。Rect(double a,double b)/有参数构造方法。有参数构造方法。sideA=a;sideB=b;Rect类类double computerArea()return sideA*sideB;double computerGirth()return(sizeA+sideB)*2;4.4.2 对象的创建对象的创建n n当使用一个类创建了一个对象时,我们也说给出了这个类当使用一个类创建了一个对象时,我们也说给出了这个类当使用一个类创建了一个对象时,我们也说给出了这个类当使用一个类创建了一个对象时,我们也说给出了这个类的一个实例。的一个实例。
21、的一个实例。的一个实例。n n创建对象的步骤创建对象的步骤创建对象的步骤创建对象的步骤(2(2步步步步):1 1、声明对象、声明对象、声明对象、声明对象2 2、为对象分配成员变量、为对象分配成员变量、为对象分配成员变量、为对象分配成员变量4.4.2.1 声明对象声明对象n n格式:类名格式:类名格式:类名格式:类名 对象名对象名对象名对象名;qqRect rectangleOneRect rectangleOne;qq用类声明的数据称为类类型变量,即对象。用类声明的数据称为类类型变量,即对象。用类声明的数据称为类类型变量,即对象。用类声明的数据称为类类型变量,即对象。n n 刚刚声明的对象其内
22、存中没有存放任何数据,它没有刚刚声明的对象其内存中没有存放任何数据,它没有刚刚声明的对象其内存中没有存放任何数据,它没有刚刚声明的对象其内存中没有存放任何数据,它没有“引用引用引用引用”任何实体,是一个空对象。任何实体,是一个空对象。任何实体,是一个空对象。任何实体,是一个空对象。n n 空对象是不能使用的。空对象是不能使用的。空对象是不能使用的。空对象是不能使用的。rectangleOnerectangleOnenullnull4.4.2.2 为对象分配成员变量为对象分配成员变量 n n格式:格式:格式:格式:对象名对象名对象名对象名=new =new 类的构造方法;类的构造方法;类的构造方
23、法;类的构造方法;n n上述的上述的上述的上述的RectRect类提供了类提供了类提供了类提供了2 2个构造方法,下面都是合法的创建个构造方法,下面都是合法的创建个构造方法,下面都是合法的创建个构造方法,下面都是合法的创建对象的语句。对象的语句。对象的语句。对象的语句。qqrectangleOne=new Rect();rectangleOne=new Rect();qqrectangleOne=new Rect(10,20);rectangleOne=new Rect(10,20);n n如果类中没有构造方法,系统会调用默认的构造方法如果类中没有构造方法,系统会调用默认的构造方法如果类中没有
24、构造方法,系统会调用默认的构造方法如果类中没有构造方法,系统会调用默认的构造方法(默默默默认的构造方法是无参数的认的构造方法是无参数的认的构造方法是无参数的认的构造方法是无参数的)。n n如果类里定义了一个或多个构造方法,那么如果类里定义了一个或多个构造方法,那么如果类里定义了一个或多个构造方法,那么如果类里定义了一个或多个构造方法,那么JavaJava不提供默不提供默不提供默不提供默认的构造方法。认的构造方法。认的构造方法。认的构造方法。n n如果上述如果上述如果上述如果上述RectRect只提供一个带参数的构造方法,代码只提供一个带参数的构造方法,代码只提供一个带参数的构造方法,代码只提供
25、一个带参数的构造方法,代码“rectangleOne=new Rect();”“rectangleOne=new Rect();”是非法的。是非法的。是非法的。是非法的。n n创建对象的代码创建对象的代码创建对象的代码创建对象的代码“rectangleOne=new Rect(10,20);”“rectangleOne=new Rect(10,20);”会实会实会实会实现下述两件事:现下述两件事:现下述两件事:现下述两件事:1 1、为成员变量分配内存空间,然后执行构造方法中的语、为成员变量分配内存空间,然后执行构造方法中的语、为成员变量分配内存空间,然后执行构造方法中的语、为成员变量分配内存空
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 对象
限制150内