第04章面向对象技术基础精.ppt

上传人:石*** 文档编号:78764453 上传时间:2023-03-19 格式:PPT 页数:98 大小:4.18MB
返回 下载 相关 举报
第04章面向对象技术基础精.ppt_第1页
第1页 / 共98页
第04章面向对象技术基础精.ppt_第2页
第2页 / 共98页
点击查看更多>>
资源描述

《第04章面向对象技术基础精.ppt》由会员分享,可在线阅读,更多相关《第04章面向对象技术基础精.ppt(98页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第04章面向对象技章面向对象技术基础术基础第1页,本讲稿共98页主要内容主要内容4.1 4.1 面向对象的基本概念面向对象的基本概念面向对象的基本概念面向对象的基本概念4.2 4.2 类的定义类的定义类的定义类的定义4.3 4.3 类和对象的使用类和对象的使用类和对象的使用类和对象的使用 4.4 4.4 包包包包packagepackage4.5 4.5 成员变量及方法的访问权限成员变量及方法的访问权限成员变量及方法的访问权限成员变量及方法的访问权限4.6 final4.6 final、thisthis及其它及其它及其它及其它 第2页,本讲稿共98页4.1 面向对象的基本概念面向对象的基本概

2、念4.1.14.1.1面向对象编程的概念面向对象编程的概念面向对象编程的概念面向对象编程的概念 4.1.24.1.2客观事物的抽象客观事物的抽象客观事物的抽象客观事物的抽象第3页,本讲稿共98页4.1.1面向对象编程的概念面向对象编程的概念 1 1、面向、面向、面向、面向过程过程过程过程编程:编程:编程:编程:我们很多人使用过我们很多人使用过FortranFortran、BasicBasic,C C等面向过等面向过程的程序设计语言,这些语言是按程的程序设计语言,这些语言是按流程化流程化流程化流程化的思想来的思想来组织的。在这些语言的设计思想中,通常将存放基组织的。在这些语言的设计思想中,通常将

3、存放基本数据类型的变量作为程序处理对象、以变量的赋本数据类型的变量作为程序处理对象、以变量的赋值作为程序的基本操作、以变量值的改变作为程序值作为程序的基本操作、以变量值的改变作为程序运行的状态。这种程序设计风格存在着运行的状态。这种程序设计风格存在着数据抽象简数据抽象简数据抽象简数据抽象简单、信息完全暴露、算法复杂、无法很好地描述客单、信息完全暴露、算法复杂、无法很好地描述客单、信息完全暴露、算法复杂、无法很好地描述客单、信息完全暴露、算法复杂、无法很好地描述客观世界等缺点观世界等缺点观世界等缺点观世界等缺点。在程序设计过程中,为了实现有限。在程序设计过程中,为了实现有限度的代码重用,公共代码

4、被组织成为过程或函数。度的代码重用,公共代码被组织成为过程或函数。当需要代码重用时,调用已经组织好的过程或函数。当需要代码重用时,调用已经组织好的过程或函数。在这种应用方式中,在这种应用方式中,如果软件项目庞大,程序的调如果软件项目庞大,程序的调如果软件项目庞大,程序的调如果软件项目庞大,程序的调试和维护将变得异常困难试和维护将变得异常困难试和维护将变得异常困难试和维护将变得异常困难。第4页,本讲稿共98页4.1.1面向对象编程的概念面向对象编程的概念 2 2、面向、面向、面向、面向对象对象对象对象编程:编程:编程:编程:而面向对象的程序设计思想是而面向对象的程序设计思想是将数据以及对于将数据

5、以及对于将数据以及对于将数据以及对于这些数据的操作,封装在了一个单独的数据结构中这些数据的操作,封装在了一个单独的数据结构中这些数据的操作,封装在了一个单独的数据结构中这些数据的操作,封装在了一个单独的数据结构中。这种模式更近似于现实世界,在这里,所有的对象这种模式更近似于现实世界,在这里,所有的对象都同时拥有属性以及与这些属性相关的行为。对象都同时拥有属性以及与这些属性相关的行为。对象之间的联系是通过消息来实现的,消息是请求对象之间的联系是通过消息来实现的,消息是请求对象执行某一处理或回答某些信息的要求。某个对象在执行某一处理或回答某些信息的要求。某个对象在执行相应的处理时,可以通过传递消息

6、请求其他对执行相应的处理时,可以通过传递消息请求其他对象完成某些处理工作或回答某些消息。其他对象在象完成某些处理工作或回答某些消息。其他对象在执行所要求的处理活动时,同样可以通过传递消息执行所要求的处理活动时,同样可以通过传递消息和另外的对象联系。所以,一个面向对象程序的执和另外的对象联系。所以,一个面向对象程序的执行,就是靠对象间传递消息来完成的。行,就是靠对象间传递消息来完成的。第5页,本讲稿共98页4.1.1面向对象编程的概念面向对象编程的概念 面向对象编程:面向对象编程:面向对象编程:面向对象编程:面向对象程序设计是一种新兴的程序设计方法面向对象程序设计是一种新兴的程序设计方法,或者是

7、一种新的程序设计规范或者是一种新的程序设计规范,它使用它使用对象、类、继对象、类、继对象、类、继对象、类、继承、封装、消息等基本概念来进行程序的设计承、封装、消息等基本概念来进行程序的设计承、封装、消息等基本概念来进行程序的设计承、封装、消息等基本概念来进行程序的设计。从。从现实世界中客观存在的事物(即对象)出发来构造现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。这些问题所涉及的

8、业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。人工智能等。第6页,本讲稿共98页4.1.1面向对象编程的概念面向对象编程的概念 面向对象的三大特点:面向对象的三大特点:面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态封装、继承、多态封装、继承、多态 1 1)封装)封装 封装就是把对象的属性和和对这些属性的操作封封装就是把对象的属性和和对这些属性的操作封装在一个单独的数据结构中,并尽可能隐蔽对象的装在一个单独的数据结构中,并尽可能隐蔽对象的内部细节,包含两个含义:内部细节,包含两个含义:n

9、n把对象的全部属性和对属性的全部操作结合在一起,把对象的全部属性和对属性的全部操作结合在一起,形成一个不可分割的独立单元(即对象)。形成一个不可分割的独立单元(即对象)。n n信息隐蔽,即尽可能隐蔽对象的内部细节,对外信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界形成一个边界或者说形成一道屏障或者说形成一道屏障,只保留有,只保留有限的对外接口使之与外部发生联系。限的对外接口使之与外部发生联系。第7页,本讲稿共98页4.1.1面向对象编程的概念面向对象编程的概念 面向对象的三大特点:面向对象的三大特点:面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态封装、继承、多

10、态封装、继承、多态 2 2)继承)继承 继承是一种由已有的类创建新类的机制。利用继继承是一种由已有的类创建新类的机制。利用继承承,我们可以先创建一个拥有共有属性的一般类我们可以先创建一个拥有共有属性的一般类,根据根据该一般类再创建具有特殊属性的新类该一般类再创建具有特殊属性的新类,新类继承一般新类继承一般类的状态和行为类的状态和行为,并根据需要增加它自己的新的状态并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类和行为。由继承而得到的类称为子类,被继承的类称被继承的类称为父类或超类。为父类或超类。JavaJava不支持多重继承,子类只能有不支持多重继承,子类只能有一个父类。一个父类

11、。在在JavaJava编程语言中,通过继承可利用已有的类,编程语言中,通过继承可利用已有的类,并扩展它的属性和方法。这个已有的类可以是语言并扩展它的属性和方法。这个已有的类可以是语言本身提供的、其他程序员编写的或程序员原来编写本身提供的、其他程序员编写的或程序员原来编写的。继承在的。继承在JavaJava中无所不在。中无所不在。第8页,本讲稿共98页4.1.1面向对象编程的概念面向对象编程的概念 面向对象的三大特点:面向对象的三大特点:面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态封装、继承、多态封装、继承、多态 3 3)多态)多态对象的多态是由封装和继承引出的面向对

12、象程对象的多态是由封装和继承引出的面向对象程序设计语言的另一特征。主要体现在两个方面:方序设计语言的另一特征。主要体现在两个方面:方法重载时实现的静态多态和方法重载时实现的动态法重载时实现的静态多态和方法重载时实现的动态多态。多态。多态性使得我们的同一方法,可以有多种形式。多态性使得我们的同一方法,可以有多种形式。另外父类中定义的属性或方法被子类继承之后,可另外父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,同一以具有不同的数据类型或表现出不同的行为,同一个属性或方法在父类及其各个子类中可以具有不同个属性或方法在父类及其各个子类中可以具有不同的语义。的语义。第9

13、页,本讲稿共98页4.1.2客观事物的抽象客观事物的抽象 为了使计算机能够处理和理解客观事物,必须为了使计算机能够处理和理解客观事物,必须为了使计算机能够处理和理解客观事物,必须为了使计算机能够处理和理解客观事物,必须对事物进行抽象,以求得事物的本质。现实事物纷对事物进行抽象,以求得事物的本质。现实事物纷对事物进行抽象,以求得事物的本质。现实事物纷对事物进行抽象,以求得事物的本质。现实事物纷繁复杂,因此,在事物抽象过程中,必须忽略抽象繁复杂,因此,在事物抽象过程中,必须忽略抽象繁复杂,因此,在事物抽象过程中,必须忽略抽象繁复杂,因此,在事物抽象过程中,必须忽略抽象事物中那些与当前目的无关的特征

14、,求取对当前需事物中那些与当前目的无关的特征,求取对当前需事物中那些与当前目的无关的特征,求取对当前需事物中那些与当前目的无关的特征,求取对当前需求有直接影响的因素。因此,针对客观事物的抽象求有直接影响的因素。因此,针对客观事物的抽象求有直接影响的因素。因此,针对客观事物的抽象求有直接影响的因素。因此,针对客观事物的抽象必须掌握一定的抽象原则。必须掌握一定的抽象原则。必须掌握一定的抽象原则。必须掌握一定的抽象原则。我们知道,当确定了一个圆形的圆心位置和圆我们知道,当确定了一个圆形的圆心位置和圆的半径后,就可以在平面上确定一个圆。因此,抽的半径后,就可以在平面上确定一个圆。因此,抽象出来的圆的要

15、素为圆心和半径。象出来的圆的要素为圆心和半径。第10页,本讲稿共98页4.1.2客观事物的抽象客观事物的抽象用数据结构来表示,如下:用数据结构来表示,如下:class Circleclass Circlepoint center;/point center;/圆心圆心float radius;/float radius;/半径半径 其中其中classclass是面向对象程序设计常用来定义是面向对象程序设计常用来定义“类类”这种数这种数据结构的关键字。据结构的关键字。第11页,本讲稿共98页4.1.2客观事物的抽象客观事物的抽象添加一些基本的行为如获取圆的面积,表示如下:添加一些基本的行为如获取

16、圆的面积,表示如下:class Circle class Circle point center;/point center;/属性或成员属性或成员 float radius;/float radius;/属性或成员属性或成员 double getArea()/double getArea()/方法方法 return radius*radius*3.1415926;return radius*radius*3.1415926;第12页,本讲稿共98页4.1.2客观事物的抽象客观事物的抽象添加一些基本的行为如获取圆的面积,表示如下:添加一些基本的行为如获取圆的面积,表示如下:class Circ

17、le class Circle point center;/point center;/属性或成员属性或成员 float radius;/float radius;/属性或成员属性或成员 double getArea()/double getArea()/方法方法 return radius*radius*3.1415926;return radius*radius*3.1415926;第13页,本讲稿共98页第第4章章 面向对象程序设计基础面向对象程序设计基础4.1 4.1 面向对象的基本概念面向对象的基本概念面向对象的基本概念面向对象的基本概念4.2 4.2 类的定义类的定义类的定义类的定

18、义4.3 4.3 类和对象的使用类和对象的使用类和对象的使用类和对象的使用 4.4 4.4 包包包包packagepackage4.5 4.5 成员变量及方法的访问权限成员变量及方法的访问权限成员变量及方法的访问权限成员变量及方法的访问权限4.6 final4.6 final、thisthis及其它及其它及其它及其它 第14页,本讲稿共98页4.2 类的定义类的定义4.2.1 4.2.1 类声明类声明类声明类声明4.2.2 4.2.2 类体类体类体类体4.2.3 4.2.3 实例化对象实例化对象实例化对象实例化对象4.2.4 4.2.4 构造方法说明构造方法说明构造方法说明构造方法说明 4.2

19、.5 4.2.5 对象的清除对象的清除对象的清除对象的清除4.2.6 4.2.6 方法重载方法重载方法重载方法重载第15页,本讲稿共98页4.2.1类声明类声明类的类的类的类的声明声明声明声明举例:举例:举例:举例:class class CircleCircle point center;/point center;/属性或成员属性或成员 float radius;/float radius;/属性或成员属性或成员 double getArea()/double getArea()/方法方法 return radius*radius*3.1415926;return radius*radiu

20、s*3.1415926;public class public class RectangleRectangle extends Shapes implement Display extends Shapes implement Display /类体类体 /下面的下面的RectangleRectangle类继承了类继承了ShapesShapes父类,实现了接口父类,实现了接口 DisplayDisplay,是,是一个公共类。一个公共类。第16页,本讲稿共98页4.2.1类声明类声明类声明的格式如下:类声明的格式如下:类声明的格式如下:类声明的格式如下:修饰符修饰符修饰符修饰符 class c

21、lass 类名类名类名类名 extends extends 超类名超类名超类名超类名 implements implements接口名列表接口名列表接口名列表接口名列表 可能的选项有:可能的选项有:可能的选项有:可能的选项有:publicabstract|final class publicabstract|final class 类名类名类名类名 extends extends 超类名超类名超类名超类名 implements implements 接口名列表接口名列表接口名列表接口名列表 public(public(公共公共):publicpublic修饰的类能被所有的类访问。修饰的类能被所

22、有的类访问。abstract(abstract(抽象抽象):abstractabstract修饰的类不能被实例化,它包含修饰的类不能被实例化,它包含 有未实现有未实现的方法。的方法。final(final(最终最终):finalfinal修饰的类不能被继承,即不能有子类。修饰的类不能被继承,即不能有子类。注意:注意:abstractabstract和和finalfinal不能同时作为一个类的修饰符。不能同时作为一个类的修饰符。第17页,本讲稿共98页4.2.1类声明类声明类名:类名:类名:类名:习惯上类名的第一个字母大写习惯上类名的第一个字母大写,但这不是必须的。类的名字不能但这不是必须的。类

23、的名字不能是是Java Java 中的关键字中的关键字,要符合标识符规定要符合标识符规定,即名字可以由字母即名字可以由字母,下划线下划线,数数字或美圆符号组成字或美圆符号组成,并且第一个字符不能是数字。但给类命名时并且第一个字符不能是数字。但给类命名时,最最最最好遵守如下习惯好遵守如下习惯好遵守如下习惯好遵守如下习惯:如果类名使用拉丁字母如果类名使用拉丁字母,那么名字的那么名字的首写字母使用大写字首写字母使用大写字首写字母使用大写字首写字母使用大写字母母,例如例如HelloHello、TimeTime、PeoplePeople等。等。类名最好类名最好见名知意见名知意见名知意见名知意,当类名由几

24、个当类名由几个”单词单词”复合而成时复合而成时,每个单每个单词的首写字母使用大写词的首写字母使用大写,如如BeijingTimeBeijingTime、AmericanMapAmericanMap、ChongQingChongQing,CarNumberCarNumber等。等。第18页,本讲稿共98页4.2.1类声明类声明extends(extends(继承继承继承继承):extendsextends保留字用来表明新创建的类继承哪个类,被继承的类称保留字用来表明新创建的类继承哪个类,被继承的类称为此类的父类。为此类的父类。extendsextends后面只能跟一个父类名。后面只能跟一个父类名

25、。implements(implements(实现实现实现实现):用来表明这个类实现了哪些接口,接口名可以有多个。用来表明这个类实现了哪些接口,接口名可以有多个。例如:下面的类是合法的:例如:下面的类是合法的:class class MyC1assMyC1ass /空类,没有任何用处,但是合法空类,没有任何用处,但是合法 又如:下面的又如:下面的RectangleRectangle类继承了类继承了ShapesShapes父类,实现了接口父类,实现了接口DisplayDisplay,是,是一个公共类。一个公共类。public class public class RectangleRectang

26、le extendsextends Shapes Shapes implementimplement Display Display /类体类体 第19页,本讲稿共98页4.2.2类体类体 类体中定义了该类所有的成员变量和该类所支持的方法,其格式类体中定义了该类所有的成员变量和该类所支持的方法,其格式说明如下:说明如下:成员变量说明成员变量说明 成员方法说明成员方法说明 第20页,本讲稿共98页4.2.2类体类体 类体:类体:public|protected|private static public|protected|private static final transient volat

27、ile final transient volatile type variableName;type variableName;/成员变量成员变量public|protected|private staticpublic|protected|private staticfinal|abstract native synchronizedfinal|abstract native synchronizedreturnType methodName(paramList)throws exceptionListreturnType methodName(paramList)throws excep

28、tionListstatements statements /成员方法成员方法 第21页,本讲稿共98页4.2.2类体类体 1 1成员变量说明成员变量说明 成员变量又称值域。成员变量的说明类似于方法的局部变量成员变量又称值域。成员变量的说明类似于方法的局部变量说明,所不同的是,成员变量定义在类中,是类成员的一部分,说明,所不同的是,成员变量定义在类中,是类成员的一部分,整个类都可以访问它。整个类都可以访问它。JavaJava中成员变量说明形式如下:中成员变量说明形式如下:修饰符修饰符 成员变量类型成员变量类型 成员变量名列表成员变量名列表;例如:例如:private int number;pr

29、ivate int number;成员变量的修饰符有以下几种:缺省访问修饰符、成员变量的修饰符有以下几种:缺省访问修饰符、publicpublic、protectedprotected、privateprivate、finalfinal、staticstatic、transienttransient和和volatilevolatile。关于这些修饰关于这些修饰符的含义以后将讲到。符的含义以后将讲到。第22页,本讲稿共98页4.2.2类体类体 2 2成员变量使用成员变量使用 类的成员变量在定义它的类内部,可以直接通过成员变量名来访问。类的成员变量在定义它的类内部,可以直接通过成员变量名来访问。c

30、lass Circle class Circle static final float PI=3.1415926f;/static final float PI=3.1415926f;/常量常量 private Point center;/private Point center;/属性或成员属性或成员 private float radius;/private float radius;/属性或成员属性或成员 static Color color;static Color color;public float area;public float area;float getArea()/fl

31、oat getArea()/方法方法 return radius*radius*PI;/return radius*radius*PI;/内部访问成员变量内部访问成员变量 第23页,本讲稿共98页4.2.2类体类体 如果从类的外部访问,类变量和类对象变量的使用方法是不同。访问如果从类的外部访问,类变量和类对象变量的使用方法是不同。访问如果从类的外部访问,类变量和类对象变量的使用方法是不同。访问如果从类的外部访问,类变量和类对象变量的使用方法是不同。访问类变量的格式如下:类变量的格式如下:类变量的格式如下:类变量的格式如下:类名类名.类变量类变量类变量类变量名名 例如我们可以采用下面形式访问上例

32、中的静态变量例如我们可以采用下面形式访问上例中的静态变量例如我们可以采用下面形式访问上例中的静态变量例如我们可以采用下面形式访问上例中的静态变量colorcolor的:的:的:的:Circle.colorCircle.color,由此可见,访问类变量与类的对象构造和对象都无,由此可见,访问类变量与类的对象构造和对象都无,由此可见,访问类变量与类的对象构造和对象都无,由此可见,访问类变量与类的对象构造和对象都无关。类变量名必须用关。类变量名必须用关。类变量名必须用关。类变量名必须用staticstatic修饰。更详细的说明见后面的章节。修饰。更详细的说明见后面的章节。修饰。更详细的说明见后面的章

33、节。修饰。更详细的说明见后面的章节。访问实例变量的格式如下:访问实例变量的格式如下:访问实例变量的格式如下:访问实例变量的格式如下:对象名对象名.实例变量实例变量名名 例如例如例如例如Circle c1=new Circle();/c1Circle c1=new Circle();/c1是对象名是对象名是对象名是对象名System.out.println(System.out.println(“area=area=”+c1.area);+c1.area);System.out.println(System.out.println(“Color=Color=”+Circle.color);+Ci

34、rcle.color);第24页,本讲稿共98页class Circle class Circle static final float PI=3.1415926f;/static final float PI=3.1415926f;/常量常量常量常量 private Point center;/private Point center;/private float radius;/private float radius;/实例变量实例变量实例变量实例变量 static Color color;/static Color color;/类变量类变量类变量类变量 public float ar

35、ea;public float area;float getArea()/float getArea()/实例方法实例方法实例方法实例方法 area=radius*radius*PI;area=radius*radius*PI;return area;/return area;/内部访问成员变量内部访问成员变量内部访问成员变量内部访问成员变量 访问:访问:访问:访问:Circle c1=new Circle();/c1Circle c1=new Circle();/c1是对象名是对象名是对象名是对象名System.out.println(System.out.println(“area=are

36、a=”+c1.area);+c1.area);System.out.println(System.out.println(“Color=Color=”+Circle.color);Circle.color);第25页,本讲稿共98页4.2.2类体类体 3 3、成员方法说明、成员方法说明、成员方法说明、成员方法说明 在在在在JavaJava中,方法总是中,方法总是中,方法总是中,方法总是JavaJava类的一个组成部分。通过类的方法,改类的一个组成部分。通过类的方法,改类的一个组成部分。通过类的方法,改类的一个组成部分。通过类的方法,改变对象的状态。方法说明分为方法首部说明和方法体两部分。变对象

37、的状态。方法说明分为方法首部说明和方法体两部分。变对象的状态。方法说明分为方法首部说明和方法体两部分。变对象的状态。方法说明分为方法首部说明和方法体两部分。方法首部说明的格式如下:方法首部说明的格式如下:方法首部说明的格式如下:方法首部说明的格式如下:方法修饰符方法修饰符 返回值类型返回值类型 方法名(方法名(形参列表形参列表)throwsthrows异常列表异常列表 可能的选项有:可能的选项有:可能的选项有:可能的选项有:public|protected|private public|protected|private staticfinal|abstract native synchron

38、ized staticfinal|abstract native synchronized returnType methodName(paramList)throws exceptionList/returnType methodName(paramList)throws exceptionList/方法声方法声明明 第26页,本讲稿共98页4.2.2类体类体 4.4.方法体方法体方法体方法体 方法体是实现这个方法的代码段,它由方法体是实现这个方法的代码段,它由方法体是实现这个方法的代码段,它由方法体是实现这个方法的代码段,它由“”和和和和“”括起来的语句序括起来的语句序括起来的语句序括起来

39、的语句序列构成。方法体也可以是一个分号列构成。方法体也可以是一个分号列构成。方法体也可以是一个分号列构成。方法体也可以是一个分号“;”,表示无方法体,该方法没有,表示无方法体,该方法没有,表示无方法体,该方法没有,表示无方法体,该方法没有实现。当且仅当方法的修饰符中有实现。当且仅当方法的修饰符中有实现。当且仅当方法的修饰符中有实现。当且仅当方法的修饰符中有abstractabstract或或或或nativenative时,方法才无时,方法才无时,方法才无时,方法才无方法体。方法体。方法体。方法体。例如求解三角形问题时可以编写例如求解三角形问题时可以编写例如求解三角形问题时可以编写例如求解三角形

40、问题时可以编写TriangleTriangle类,在类,在类,在类,在TriangleTriangle类可以有如类可以有如类可以有如类可以有如下的下的下的下的3 3个方法。程序如下:个方法。程序如下:个方法。程序如下:个方法。程序如下:第27页,本讲稿共98页4.2.2类体类体 4.4.方法体方法体 class Triangle class Triangle double sideA,sideB,sideC;/double sideA,sideB,sideC;/三角形的三边三角形的三边 void setSide(double a,double b,double c)/void setSide(

41、double a,double b,double c)/该方法用来赋初值该方法用来赋初值 sideA=a;sideA=a;sideB=b;sideB=b;sideC=c;sideC=c;boolean isOrNotTriangle()/boolean isOrNotTriangle()/判断是否是三角形的方法判断是否是三角形的方法 if(sideA+sideBsideC&sideA+sideCsideB&sideB+sideCsideA)if(sideA+sideBsideC&sideA+sideCsideB&sideB+sideCsideA)return true;return true;

42、else else return flase;return flase;第28页,本讲稿共98页4.2.2类体类体 5 5方法的调用方法的调用方法的调用方法的调用 成员方法又分为类方法(静态方法)和对象方法(实例方法)两类。成员方法又分为类方法(静态方法)和对象方法(实例方法)两类。成员方法又分为类方法(静态方法)和对象方法(实例方法)两类。成员方法又分为类方法(静态方法)和对象方法(实例方法)两类。他们的调用是有区别的。他们的调用是有区别的。他们的调用是有区别的。他们的调用是有区别的。前面已经简单讨论了类变量。类变量不属于由类定义的个别实前面已经简单讨论了类变量。类变量不属于由类定义的个别实

43、前面已经简单讨论了类变量。类变量不属于由类定义的个别实前面已经简单讨论了类变量。类变量不属于由类定义的个别实例对象,而是属于定义它的类;实例变量是针对实例的。这些例对象,而是属于定义它的类;实例变量是针对实例的。这些例对象,而是属于定义它的类;实例变量是针对实例的。这些例对象,而是属于定义它的类;实例变量是针对实例的。这些讨论同样也适用于类方法。讨论同样也适用于类方法。讨论同样也适用于类方法。讨论同样也适用于类方法。类方法调用形式如下:类方法调用形式如下:类名类名.类静态方法名类静态方法名(实参列表实参列表)对象方法调用形式如下:对象方法调用形式如下:类对象名类对象名.类非静态方法名类非静态方

44、法名(实参列表实参列表)例如例如Circle c1=new Circle();/r1Circle c1=new Circle();/r1是对象名是对象名System.out.println(System.out.println(“area=area=”+c1.getArea();+c1.getArea();第29页,本讲稿共98页4.2.3 实例化对象实例化对象 前面讲过,类是创建对象的模板前面讲过,类是创建对象的模板.当使用一个类创建了一个对象当使用一个类创建了一个对象时时,我们也说我们给出了这个类的一个实例。通常的格式为:我们也说我们给出了这个类的一个实例。通常的格式为:Type obje

45、ctName=new Type(parameterList);Type objectName=new Type(parameterList);创建一个对象包括对象的声明、为对象分配内存空间和赋初值三个步骤。创建一个对象包括对象的声明、为对象分配内存空间和赋初值三个步骤。1 1、对象的声明格式为:、对象的声明格式为:类的名字类的名字 对象名字对象名字;如如 People zhangPingPeople zhangPing;或或 People zhangPingPeople zhangPing ,LiYongLiYong;这里这里People People 是一个类的名字是一个类的名字,zhang

46、Ping,zhangPing是我们声明的对象的名字是我们声明的对象的名字.第30页,本讲稿共98页4.2.3 实例化对象实例化对象2 2、为声明的对象分配内存为声明的对象分配内存.使用使用new new 运算符和类的构造方法为声明的对象分配内存运算符和类的构造方法为声明的对象分配内存,如果类中如果类中没有构造方法没有构造方法,系统会调用默认的构造方法。默认的构造方法是无参数系统会调用默认的构造方法。默认的构造方法是无参数的的,构造方法的名字必须和类名相同。用构造方法的名字必须和类名相同。用newnew可以为一个类实例化可以为一个类实例化多个不同的对象,这些对象分别占用不同的内存空间,因此改多个

47、不同的对象,这些对象分别占用不同的内存空间,因此改变其中一个对象的状态不会影响其他对象的状态。变其中一个对象的状态不会影响其他对象的状态。3 3、最后一步是执行构造方法,进行初始化。、最后一步是执行构造方法,进行初始化。zhangPing=new People(zhangPing=new People(“2004010120040101”););liYong=new People(liYong=new People(“2004010220040102”);/);/实例化另外一个对象。实例化另外一个对象。上面三个步骤,通常可以写成如下简洁的形式:上面三个步骤,通常可以写成如下简洁的形式:Peop

48、le zhangPing=new People(People zhangPing=new People(“2004010120040101”););第31页,本讲稿共98页4.2.3 实例化对象实例化对象【例例4-14-1】下面的例子将建立雇员信息类下面的例子将建立雇员信息类EmpInfoEmpInfo,并实例化对象,并实例化对象,然后然后打印出若干信息。打印出若干信息。/EmpInfo.java/EmpInfo.javapublic class EmpInfo public class EmpInfo String name;/String name;/雇员的姓名雇员的姓名 String d

49、esignation;/String designation;/雇员的职务雇员的职务 String department;/String department;/雇员的部门雇员的部门 void print()/void print()/成员方法成员方法 System.out.println(name+is +designation+at +System.out.println(name+is +designation+at +department);department);第32页,本讲稿共98页4.2.3 实例化对象实例化对象 public static void main(String a

50、rgv)public static void main(String argv)EmpInfo employee=new EmpInfo();/EmpInfo employee=new EmpInfo();/创建对象并实例化创建对象并实例化 employee.name=Robert Javaman ;/employee.name=Robert Javaman ;/给成员变量赋值给成员变量赋值 employee.designation=Manager ;/employee.designation=Manager ;/给成员变量赋值给成员变量赋值 employee.department=Coffe

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

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com