Java程序设计教学做一体化教程_第4章_类与对象课件.ppt
《Java程序设计教学做一体化教程_第4章_类与对象课件.ppt》由会员分享,可在线阅读,更多相关《Java程序设计教学做一体化教程_第4章_类与对象课件.ppt(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/2/9第 1 页类与对象类与对象 Java程序设计教学做一体化教程程序设计教学做一体化教程 第第4章章2023/2/9第 2 页主要内容主要内容2023/2/9第 3 页 抽象 抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。张三,李四-人类;人类-王五2023/2/9第 4 页抽象思想在软件设计的应用:问题领域问题领域各种各种类类程序程序对象对象对象对象对象对象对象对象2023/2/9第 5 页抽象思想在软件设计的应用:超市销售问题超市销售问题员工类员工类商品类商品类供货商供货商程序程序(运行)(运行)对象对象对象对象对象对象对象对象静态程序静态程序2023/2/9第 6
2、 页类与对象类(类(class)是既包括数据又包括作用)是既包括数据又包括作用于数据的一组操作的封装体。于数据的一组操作的封装体。对象(对象(object)是类的实例)是类的实例(instance)。2023/2/9第 7 页类与对象2023/2/9第 8 页封装封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:2023/2/9第 9 页类实现了封装电视机类电视机类 音量音量100.00 亮度亮度57.00对象的属性.调节音量调节亮度对象提供的服务这就样实现了封这就样实现了封装装1、把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(
3、即对象)。2023/2/9第 10 页类实现了封装运动员类运动员类 血压血压110 心率心率60对象的属性:反映对象的状态。.跑睡眠对象的行为:可以改变对象状态(又称服务)这就样实现了封这就样实现了封装装2、信息隐蔽。即尽可能隐蔽对象的内部细节,对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。2023/2/9第 11 页类设计的两大要素:成员变量成员函数或者成员方法2023/2/9第 12 页电视机类电视机类 音量音量100.00 亮度亮度57.00调节音量调节亮度Class Televsion private float volume=100.00f;privat
4、e float brightness=57.00f;public float adjustVolume().;public float adjustBright();2023/2/9第 13 页4.1数据和算法的封装数据和算法的封装 4.1.1核心知识核心知识 1类与数据和算法的封装类与数据和算法的封装 编编写写类类的的目目的的是是把把数数据据和和对对数数据据的的操操作作封封装装成成一一个个整整体体,可可以以使使程程序员不必知道数据操作的细节,就可以使用这些数据以及相关的操作。序员不必知道数据操作的细节,就可以使用这些数据以及相关的操作。2简单的简单的Circle类(类(Circle.java
5、)面面向向对对象象的的一一个个重重要要思思想想就就是是将将某某些些数数据据以以及及针针对对这这些些数数据据上上的的操操作封装在一个类中,也就是说,类的主要构成是数据以及数据上的操作。作封装在一个类中,也就是说,类的主要构成是数据以及数据上的操作。3使用使用Circle类创建对象类创建对象 上述上述Circle类不是主类,因为类不是主类,因为Circle类没有类没有main方法。方法。Circle类好比类好比是生活中的一个电阻,如果没有电器设备使用它,电阻将无法体现其作是生活中的一个电阻,如果没有电器设备使用它,电阻将无法体现其作用。用。以下以下Java程序的程序的Application4_1类
6、(主类)中用类(主类)中用Circle类创建了对象,类创建了对象,该对象可以完成计算圆面积的任务。该对象可以完成计算圆面积的任务。2023/2/9第 14 页 4.1.2 能力目标能力目标 编编写写简简单单的的封封装装矩矩形形相相关关数数据据和和算算法法的的Rectangle类类,并并在应用程序使用在应用程序使用Rectangle类创建对象来计算矩形的面积类创建对象来计算矩形的面积。2023/2/9第 15 页 4.1.3 任务驱动 用户从键盘输入矩形的宽和高,程序输出矩形的面积用户从键盘输入矩形的宽和高,程序输出矩形的面积。Rectangle.java Application4_2.java
7、 代码。代码。程序运行效果如图程序运行效果如图4.14.1。2023/2/9第 16 页 任务小结任务小结 (1)类类的的目目的的是是创创建建具具有有属属性性(变变量量)和和行行为为(方方法法)的的对对象象。程程序序可可以以让让对对象象操操作作自自己己的的变变量量改改变变状状态态,而而且且可可以以让让对对象象调调用用方法体现其行为。方法体现其行为。(2)对象通过使用对象通过使用“.”运算符操作自己的变量和调用方法。运算符操作自己的变量和调用方法。对象操作自己的变量的格式为:对象操作自己的变量的格式为:对象对象.变量变量;例如:例如:rect.wdith=100;rect.height=90;调
8、用方法的格式为:调用方法的格式为:对象对象.方法方法;例如:例如:puterArea();2023/2/9第 17 页4.2 4.2 类的结构类的结构 4.2.1 核心知识核心知识 _11类的定义类的定义使用关键字使用关键字class定义一个类,语法格式如下:定义一个类,语法格式如下:class 类名类名 /类声明 /类体开始 /类体内容 /类体结束2类体类体 类类体体的的内内容容由由如如下下所所述的两部分构成:述的两部分构成:变量的声明:变量的声明:用来存储用来存储数据(体现属性值)。数据(体现属性值)。方方法法的的定定义义:方方法法可可以以对对类类中中声声明明的的变变量量进进行行操操作作,
9、即即给给出出算算法法(体现行为)。(体现行为)。class Rectangle double width;/矩形的宽(变量声明)double height;/矩形的高(变量声明 double computerArea()/计算面积(方法)double area=width*height;return area;double getPerimeter()/计算周边长(方法)double perimeter=2*height+2*width;return perimeter;2023/2/9第 18 页 4.2.1 核心知识核心知识 _23成员变量成员变量 类中声明变量部分所声明的变量被称为成员变
10、量。类中声明变量部分所声明的变量被称为成员变量。成成员员变变量量的的类类型型可可以以是是Java中中的的任任何何一一种种数数据据类类型型,包包括括基基本类型和引用类型。本类型和引用类型。成成员员变变量量在在整整个个类类内内都都有有效效,其其有有效效性性与与声声明明它它的的先先后后位位置置无关。无关。如如果果在在声声明明成成员员变变量量时时没没有有指指定定其其初初始始值值,成成员员变变量量也也有有默默认值。整型,浮点型的默认值是认值。整型,浮点型的默认值是0,逻辑类型的默认值是,逻辑类型的默认值是false。2023/2/9第 19 页成员变量设计:确定变量的数据类型:运动员类的心率?int f
11、loat;银行帐号的利率?int float;确定变量的访问存取类型:原则尽量用private,体现数据隐藏特性;变量名尽量体现实际意义,增强可读性。width,height等。Kuandu,gaodu或aa,bb等不建议2023/2/9第 20 页4局部变量局部变量 在方法的方法体中声在方法的方法体中声明的变量以及方法的参明的变量以及方法的参数称为局部变量。局部数称为局部变量。局部变量只在方法内有效,变量只在方法内有效,而且与其声明的位置有而且与其声明的位置有关。关。方法的参数在当前方法方法的参数在当前方法内有效,方法内的局部内有效,方法内的局部变量从声明它的位置之变量从声明它的位置之后开始
12、有效。后开始有效。如果局部变量的声明是如果局部变量的声明是在一个复合语句中,那在一个复合语句中,那么该局部变量的有效范么该局部变量的有效范围是当前复合语句。围是当前复合语句。public class A int m=10,sum=0;/成员变量,在整个类中有效 void f()int z=10;/z是局部变量 z=2*m+z;for(int t=0;tm;t+)/t是局部变量 sum=sum+t;m=t;/非法,因为t已无效 void g(int n)/n是局部变量 sum=n+1;sum=z+10;/非法,因为z无效 2023/2/9第 21 页成员方法(成员函数)()public void
13、 setExchangeRate (double rate )exchangeRate=rate;StatementsModifierReturn TypeMethod NameParameter2023/2/9第 22 页 4.2.2 能力目标能力目标 能用所学的语法,定义简单的类。2023/2/9第 23 页 4.2.3 任务驱动 用用类类封封装装一一元元一一次次方方程程:ax+b=0的的有有关关数数据据和和求求根根的的算算法法,即类来描述一元一次方程即类来描述一元一次方程。将将下下列列Equation.java Application4_3.java中中的的【代代码码】替替换换为程序代码
14、。为程序代码。程序运行效果如图程序运行效果如图4.24.2。2023/2/9第 24 页 任务任务 小结小结(1)类类名名的的首首字字母母使使用用大大写写字字母母。类类名名最最好好容容易易识识别别、见见名名知知意意。当当类类名名由几个由几个“单词单词”复合而成时,每个单词的首字母使用大写。复合而成时,每个单词的首字母使用大写。(2)变变量量或或方方法法的的名名字字除除了了符符合合标标识识符符规规定定外外,名名字字的的首首单单词词的的首首字字母母使使用用小小写写;如如果果变变量量或或方方法法的的名名字字由由多多个个单单词词组组成成,从从第第2个个单单词词开开始始的的其其它它单单词的首字母使用大写
15、。词的首字母使用大写。(3)提倡一行只声明一个变量。提倡一行只声明一个变量。(4)需需要要强强调调的的是是类类体体的的内内容容由由两两部部分分构构成成:一一部部分分是是变变量量的的声声明明,另另一一部部分分是是方方法法的的定定义义。对对成成员员变变量量的的操操作作只只能能放放在在方方法法中中,方方法法使使用用各各种种语语句句对对成成员员变变量量和和方方法法体体中中声声明明的的局局部部变变量量进进行行操操作作,如如图图4.3所示。所示。2023/2/9第 25 页对象可以把类看作一个模板,按照类模板所定义的一个个具体的对象称作类的实例,或称作对象。苹果类苹果类2023/2/9第 26 页对象引用
16、对象引用:对象引用:对象引用可以理解为对象引用可以理解为对象的名字对象的名字,指向具体指向具体对象。对象。例如:例如:Date deadline=new Date();deadline内存内存成员变量成员变量成员方法2023/2/9第 27 页创建对象使用下列语法可创建对象:类名 对象名=new 构造方法关键字 new 通常称为创建运算符,用于分配对象内存,并将该内存初始化为缺省值。一旦 new 完成分配和初始化内存,它就将调用构造方法来执行对象初始化。当创建一个类时,只是创当创建一个类时,只是创建了一种新的数据类型建了一种新的数据类型(模版)。对象是类的具(模版)。对象是类的具体存在实例体存
17、在实例class Test public static void main(String args)Date f=new Date();创建对象创建对象2023/2/9第 28 页4.34.3构造方法与对象的创建 4.3.1 核心知识核心知识_1Circle类:类:class Circle double radius;Circle()radius=1;Circle(double r)radius=r;构造方法构造方法 (1)类类中中的的构构造造方方法法的的名名字字必必须须与与它它所所在在的的类类的的名名字字完完全全相相同同,而而且且没没有有返返回回值值.允允许许一一个个类类中中编编写写若若干干
18、个个构构造造方方法法,但但必必须须保保证证他他们们的的参参数数不同。不同。(2)如如果果类类中中没没有有编编写写构构造造方方法法,系系统统会会默默认认该该类类只只有有一一个个构构造造方方法法,该该默默认认构构造造方方法法是是无无参参数数的的,且且方方法法体中没有语句。体中没有语句。(3)构构造造方方法法的的作作用用是是初初始始化化成成员员变量。变量。2023/2/9第 29 页 4.3.1 核心知识核心知识 _2 3创建对象创建对象 声声明明对对象象后后,对对象象的的内内存存中中存存放放的的是是null,表表明明这是一个空对象这是一个空对象,内存模型如图内存模型如图4.5所示。所示。Circl
19、e tomCat;Circle类:class Circle double radius;Circle()radius=1;Circle(double r)radius=r;使使用用new运运算算符符和和类类的的构构造造方方法法来来创创建建对对象象,即即为为对对象象分分配配变变量量(赋赋予予对对象象属属性性及及其其值值)。如如图图4.6所示所示.tomCat=new Circle();一一个个类类可可以以创创建建多多个个不不同同的的对对象象,这这些些对对象象将将被被分分配配不不同同的的变变量量,因因此此,改改变变其其中中一一个个对对象象的的变变量量不不会会影影响响其其它它对对象象的的变变量量。内
20、内存存模模型如图型如图4.7所示。所示。Circle jerryMouse=new Circle(5.8);2023/2/9第 30 页 4.3.1 核心知识核心知识 _34使用对象使用对象 对象通过使用对象通过使用“.”运算符操作自己的变量和调用方法。运算符操作自己的变量和调用方法。对象操作自己的变量的格式为:对象操作自己的变量的格式为:对象对象.变量变量;调用方法的格式为:调用方法的格式为:对象对象.方法方法;2023/2/9第 31 页 4.3.2 能力目标能力目标 使用类创建对象,让对象改变自己的属性的值,让对象产生行为。2023/2/9第 32 页 4.3.3 任务驱动 定义一个名字
21、Lade的类(抽象出梯形的数据和算法)。在主类中用Lade类创建两个对象,让这两个对象分别改变自己的变量,并分别输出各自的面积。将将下下列列 Lade.java Application4_4.java中中的的【代代码码】替替换换为为程序代码。程序代码。程序运行效果如图程序运行效果如图4.84.8。2023/2/9第 33 页 任务任务 小结小结(1)如果在声明成员变量时没有指定其初始值,成员变量也有默认值。整型,浮点型的默认值是0,逻辑类型的默认值是false。(2)局部变量没有默认值,在使用之前必须保证局部变量是有值的。(3)当对象调用方法时,方法中出现的成员变量就是分配给该对象的变量。20
22、23/2/9第 34 页 4.3.4 实践环节 Application4_5.java2023/2/9第 35 页4.4 4.4 Java程序的结构 4.4.1 核心知识核心知识 一一个个Java应应用用程程序序(也也称称为为一一个个工工程程)是是由由若若干干个个类类所所构构成成,这些类可以在一个源文件中,也可以分布在若干个源文件中这些类可以在一个源文件中,也可以分布在若干个源文件中。2023/2/9第 36 页 4.4.2 能力目标能力目标 将应用程序涉及的Java源文件保存在相同的目录中,分别编译通过,得到Java应用程序所需要的字节码文件,运行主类。2023/2/9第 37 页 4.4.
23、3 任务驱动 本任务中,一共有三个Java源文件,其中Application4_6.java是含有主类的Java源文件。HandleData.java ComputerData.java 程序运行效果如图程序运行效果如图4.104.10。2023/2/9第 38 页 任务任务 小结小结 当使用解释器运行一个Java应用程序时,Java虚拟机将Java应用程序需要的字节码文件加载到内存,然后再由Java的虚拟机解释执行,因此,可以事先单独编译一个Java应用程序所需要的其它源文件,并将得到的字节码文件和主类的字节码文件存放在同一目录中。如果应用程序的主类的源文件和其他的源文件在同一目录中,也可以
24、只编译主类的源文件,Java系统会自动地先编译主类需要的其它源文件。2023/2/9第 39 页 4.4.4 实践环节 Application4_7.java2023/2/9第 40 页4.5 4.5 对象的引用和实体 4.5.1 核心知识核心知识 1 引用与实体引用与实体 类类是是体体现现封封装装的的一一种种数数据据类类型型,类类声声明明的的变变量量称称为为对对象象,对对象象中中负负责责存存放放引用,以确保可以操作分配给它的变量以及调用类中的方法。引用,以确保可以操作分配给它的变量以及调用类中的方法。2 具有相同引用的对象具有相同引用的对象 一一个个类类声声明明的的两两个个对对象象如如果果具
25、具有有相相同同的的引引用用,二二者者就就具具有有完完全全相相同同的的变变量量(实体实体)。进行赋值操作进行赋值操作 p1=p2对于Point类创建的两个对象,p1和p2Point p1 =new Point(5,15);Point p2 =new Point(8,18);2023/2/9第 41 页 4.5.2 能力目标能力目标 掌握怎样将一个对象的引用传递给另一个同类型的对象。2023/2/9第 42 页 4.5.3 任务驱动将下列Application4_8.java中的【代码】替换为程序代码。程序运行效果如图程序运行效果如图4.12.4.12.2023/2/9第 43 页 任务任务 小结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 教学 一体化 教程 对象 课件
限制150内