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

上传人:hyn****60 文档编号:70680455 上传时间:2023-01-24 格式:PPT 页数:90 大小:695.50KB
返回 下载 相关 举报
第3章Java面向对象编程基础.ppt_第1页
第1页 / 共90页
第3章Java面向对象编程基础.ppt_第2页
第2页 / 共90页
点击查看更多>>
资源描述

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

1、 淮海工学院淮海工学院 计算机课程第第3章章 Java面向对象编程基础面向对象编程基础3.1面向对象软件开发概述面向对象软件开发概述3.2 Java的类的类3.3 Java的非访问控制符的非访问控制符3.4 Java的访问控制符的访问控制符3.5 定义和使用定义和使用Java的方法的方法 淮海工学院淮海工学院 计算机课程学习要点:学习要点:1.1.理解面向对象程序设计的基本概念理解面向对象程序设计的基本概念2.2.理解理解JavaJava包中类的基本概念,掌握定义包中类的基本概念,掌握定义JavaJava类和类和创建对象的方法创建对象的方法3.3.掌握构造函数:构造函数的特点、构造函数的定掌握

2、构造函数:构造函数的特点、构造函数的定义义4.4.掌握掌握JavaJava的访问控制符:的访问控制符:publicpublic、privateprivate、protectedprotected、private protectedprivate protected5.5.掌握掌握JavaJava的非访问控制符:的非访问控制符:staticstatic、abstractabstract、finalfinal6.6.理解方法的形式参数与实际参数、方法的返回值、理解方法的形式参数与实际参数、方法的返回值、方法的调用过程方法的调用过程 淮海工学院淮海工学院 计算机课程 面向对象是一种新兴的程序设计方法

3、面向对象是一种新兴的程序设计方法,或者是一种新或者是一种新的程序设计规范的程序设计规范,其基本思想是其基本思想是使用对象、类、继承、使用对象、类、继承、封装、消息等基本概念来进行程序设计封装、消息等基本概念来进行程序设计。从现实世界中。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。在系统构造中尽可能运用人类的自然思维方式。对象是系统中用来描述客观事物的一个实体,它是构对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。成系统的一个基本单位。一个对象由一组属性和对这组一个对象由

4、一组属性和对这组属性进行操作的一组服务组成属性进行操作的一组服务组成。3.1 面向对象软件开发概述面向对象软件开发概述 淮海工学院淮海工学院 计算机课程图图2.1 对象、实体与类对象、实体与类 淮海工学院淮海工学院 计算机课程设计方法设计方法特点特点代表性语言代表性语言面向机器面向机器用机器指令为特定硬件系统编制程序,用机器指令为特定硬件系统编制程序,其目标代码短,运行速度和效率高,但其目标代码短,运行速度和效率高,但可读性和移植性差。可读性和移植性差。86系列汇编语言系列汇编语言面向过程面向过程用高级程序设计语言按计算机能够理解用高级程序设计语言按计算机能够理解的逻辑来描述要解决的问题及其解

5、决方的逻辑来描述要解决的问题及其解决方法,是过程驱动的,程序的可读性和移法,是过程驱动的,程序的可读性和移植性好,核心是数据结构和算法。但植性好,核心是数据结构和算法。但大大型程序维护起来比较困难。型程序维护起来比较困难。Fortran(50年代)年代)Basic(60年代)年代)C(70年代)年代)面向对象面向对象用面向对象的编程语言把现实世界的实用面向对象的编程语言把现实世界的实体描述成计算机能理解、可操作的、具体描述成计算机能理解、可操作的、具有一定属性和行为的对象,将数据及数有一定属性和行为的对象,将数据及数据的操作封装在一起,通过调用各对象据的操作封装在一起,通过调用各对象的不同方法

6、来完成相关事件,是事件驱的不同方法来完成相关事件,是事件驱动的,其核心是类和对象,程序易于维动的,其核心是类和对象,程序易于维护护、扩充。、扩充。C+(80年代)年代)VB(90年代)年代)Object Pascal(90年代)年代)Java(90年代)年代)3.1.1 程序设计方法的发展程序设计方法的发展 淮海工学院淮海工学院 计算机课程3.1.2 面向对象的几个基本概念面向对象的几个基本概念类(类(Class)是定义了对象特征以及对象外观和行为的模板是定义了对象特征以及对象外观和行为的模板,是同种对是同种对象的集合与抽象。类是一种抽象数据类型象的集合与抽象。类是一种抽象数据类型。对象(对象

7、(Object)是现实世界中某个具体的物理实体在计算机逻辑中的映是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现,是具有唯一对象名和固定对外接口的一组属射和体现,是具有唯一对象名和固定对外接口的一组属性和操作的集合,是类的一个实例,具有所在类所定义性和操作的集合,是类的一个实例,具有所在类所定义的全部属性和方法。的全部属性和方法。属性(属性(Property)是对象的特征,包括状态和行为。是对象的特征,包括状态和行为。属性动态属性也叫行为,在计算机内用方法表示静态属性也叫状态,在计算机内用变量表示 淮海工学院淮海工学院 计算机课程对象的关系对象的关系 包含包含当对象当对象A是是对象对象

8、B的属性时,称对象的属性时,称对象B包含对象包含对象A;如:学生和如:学生和班级班级,CPU与与计算机计算机 继承继承当对象当对象A是是对象对象B的特例时,称对象的特例时,称对象A继承了对象继承了对象B 如:北京大学和如:北京大学和大学大学,液晶显示器和,液晶显示器和显示器显示器。关联关联当对象当对象A的引用是对象的引用是对象B的属性时,称对象的属性时,称对象A和对象和对象 B之间是关联关系。之间是关联关系。如计算机与制造商,学生和班主任如计算机与制造商,学生和班主任方法(方法(Method)与对象相联系的由程序执行的一个与对象相联系的由程序执行的一个处理过程处理过程,类似于面向过程中的函数。

9、,类似于面向过程中的函数。事件(事件(Event)由对象识别的一个动作。由对象识别的一个动作。面向对象的程序设计是通过对类、子类和对象等的设计来体面向对象的程序设计是通过对类、子类和对象等的设计来体现的,现的,类和对象是类和对象是面向对象程序设计技术的面向对象程序设计技术的核心核心。淮海工学院淮海工学院 计算机课程继承性继承性(inheritance)自动地共享具有层次关系的类自动地共享具有层次关系的类(子类子类)和对象中的方和对象中的方法和数据的机制。法和数据的机制。当类当类Y继承类继承类X时,就表明类时,就表明类Y是类是类X的子类,而类的子类,而类X是类是类Y的超的超/父类。类父类。类Y由

10、两部分组成:继承部分和增由两部分组成:继承部分和增加部分。加部分。增加部分是专为增加部分是专为Y编写的新代码;继承部分可以是编写的新代码;继承部分可以是简单的等同,也可以更为丰富:如对性质重命名、重简单的等同,也可以更为丰富:如对性质重命名、重实现、复制、置空等。实现、复制、置空等。XY继承部分继承部分 增加部分增加部分 Y继承X 淮海工学院淮海工学院 计算机课程继承方式:继承方式:简单继承简单继承(single inheritance):一个类至多只能一个类至多只能继承一个继承一个 类类(树结构树结构)。多重继承多重继承(multiple inheritance):一个类直接继一个类直接继承

11、多个超承多个超 类类(网状结构网状结构)。类Y1,Y2简单继承类XXYY2Y1X1X2类Y多重继承类X1,X2 淮海工学院淮海工学院 计算机课程例:一个图形系统例:一个图形系统()Figure Line Ellipse Polygon Close Figure Open Figure Pentagon Triangle Rectangle Circle Arc (象素宽度,颜色,平移,旋转)(填充,边界,周长,面积)(长度)淮海工学院淮海工学院 计算机课程3.1.3 面向对象的软件开发过程面向对象的软件开发过程 面向对象的软件开发过程可以大体划分为三个阶段:面向对象的软件开发过程可以大体划分为

12、三个阶段:面向对象的分析(面向对象的分析(object oriented analysis,OOA)面向对象的设计(面向对象的设计(object oriented design,OOD)面向对象的实现(面向对象的实现(object oriented programming,OOP)。)。淮海工学院淮海工学院 计算机课程(1)面向对象的分析(面向对象的分析(OOA object oriented analysis)主要作用:主要作用:明确用户的需求,并用标准化的面向对象的模型规范明确用户的需求,并用标准化的面向对象的模型规范地表述这一需求,最后将形成面向对象的分析模型,地表述这一需求,最后将形成

13、面向对象的分析模型,即即OOA模型。分析阶段的工作应该由用户和开发人模型。分析阶段的工作应该由用户和开发人员共同协作完成。员共同协作完成。面向对象的分析首先应该明确用户的需求,然后再将面向对象的分析首先应该明确用户的需求,然后再将这些需求以标准化模型的形式规范地表述出来,即将这些需求以标准化模型的形式规范地表述出来,即将用户和开发人员头脑中形成的需求以准确的文字、图用户和开发人员头脑中形成的需求以准确的文字、图表等形式表述出来,形成双方都认可的文件。表等形式表述出来,形成双方都认可的文件。淮海工学院淮海工学院 计算机课程使用使用OOAOOA的原因如下:的原因如下:(1 1)它使我们能在人类概括

14、客观事物的三个基本方法()它使我们能在人类概括客观事物的三个基本方法(对象及对象及属性属性、一般一般特殊特殊结构和结构和部分部分整体整体结构)的框架上进行定义和结构)的框架上进行定义和交流。交流。(2 2)它首先着眼于问题空间的理解。)它首先着眼于问题空间的理解。(3 3)它将属性及专用于那些属性的方法视为一个固有的整体。)它将属性及专用于那些属性的方法视为一个固有的整体。(4 4)使用自包含分块)使用自包含分块(对象之间依赖性最小对象之间依赖性最小)进行分析和说明。进行分析和说明。(5 5)它提供一个支持分析和设计一致的强有力的表示工具。)它提供一个支持分析和设计一致的强有力的表示工具。(6

15、 6)它能适应系列变化的系统和对当前实际运行系统的调整。)它能适应系列变化的系统和对当前实际运行系统的调整。淮海工学院淮海工学院 计算机课程常使用的常使用的OO(OO(描述描述)方法有多种:方法有多种:BoochBooch Booth Booth 方法方法 (86(86年年)Coad&yourdon 方法(90年)James James RumbaughRumbaugh(OMT)方法方法 (91(91年年)BerardBerard 方法方法Fire Smith Fire Smith 方法方法JacobsonJacobson(OOSE)方法方法Martin-Martin-OdeuOdeu 方法方

16、法SeidewitzSeidewitz-Stark-Stark 方法方法ShlaerShlaer-Mellor-Mellor 方法方法WirfsWirfs-Brook-Brook 方法方法UMLUML(Unified Modeling LanguageUnified Modeling Language)方法方法 淮海工学院淮海工学院 计算机课程Coad&Yourdon 的的OOA模型的模型的5个层次个层次对象对象类层:类层:找到要开发的应用软件所对应的各个现找到要开发的应用软件所对应的各个现实世界的实体,并从中抽象出类和对象。实世界的实体,并从中抽象出类和对象。静态属性层:静态属性层:为对象为

17、对象类层中抽取出来的各个类和对类层中抽取出来的各个类和对象设计静态属性和它们之间的约束关系。象设计静态属性和它们之间的约束关系。服务层:服务层:定义对象和类的动态属性以及对象之间的消定义对象和类的动态属性以及对象之间的消息通信。息通信。结构层:结构层:定义系统中所有对象和类之间的层次结构关定义系统中所有对象和类之间的层次结构关系。系。主题层:主题层:将系统定义为若干主题(即子系统),把有将系统定义为若干主题(即子系统),把有关对象划归不同的主题。关对象划归不同的主题。淮海工学院淮海工学院 计算机课程 从面向从面向对对象的分析到面向象的分析到面向对对象的象的设计设计OOAOOA的各层模型化了的各

18、层模型化了“问题空间问题空间”,而作为而作为OOAOOA各各层扩充的层扩充的OOD,OOD,则模型化一个特定的则模型化一个特定的“实现空间实现空间”。这种扩充主要是从增加属性和方法开始的。这种扩充主要是从增加属性和方法开始的。OOAOOA是独立于程序设计语言的是独立于程序设计语言的,初步的初步的OODOOD在很大在很大程度上依然独立于程序设计语言,而详细程度上依然独立于程序设计语言,而详细OODOOD是依赖是依赖于语言的于语言的,并可有效地应用过程式、函数式和面向并可有效地应用过程式、函数式和面向对象的程序设计语言加以实现。语言的选择对对象的程序设计语言加以实现。语言的选择对OODOOD的的实

19、施有重要的影响实施有重要的影响,但不会影响但不会影响OODOOD的有效性。的有效性。淮海工学院淮海工学院 计算机课程(2)面向对象的设计(面向对象的设计(OOD object oriented design)概要设计概要设计构成最初的构成最初的OOD模型模型 OOA模型模型界面管理:负责整个系统的人机交互界面的设计界面管理:负责整个系统的人机交互界面的设计任务管理:负责处理并行操作之类的系统资源管理功能任务管理:负责处理并行操作之类的系统资源管理功能数据管理:负责设计系统与数据库的接口数据管理:负责设计系统与数据库的接口详细设计详细设计对对OOD模型进行细化模型进行细化细化分析:是否有可以直接

20、引用的已有类或部件细化分析:是否有可以直接引用的已有类或部件细化设计:设计类,包括类的属性和类之间的相互关系细化设计:设计类,包括类的属性和类之间的相互关系细化验证细化验证:验证各对象类公式间是否相容和一致、类成验证各对象类公式间是否相容和一致、类成 员的访问权限设置是否合理、对象类的功能员的访问权限设置是否合理、对象类的功能 是否符合用户要求等。是否符合用户要求等。淮海工学院淮海工学院 计算机课程(3)面向对象的实现(面向对象的实现(OOP object oriented programming)选择一种合适的面向对象的编程语言选择一种合适的面向对象的编程语言用选定的语言编码实现对软件系统中

21、各对象类的详用选定的语言编码实现对软件系统中各对象类的详尽描述尽描述将编写好的各个类代码模块根据类的相互关系集成将编写好的各个类代码模块根据类的相互关系集成起来起来利用开发人员提供的测试样例和用户提供的测试样利用开发人员提供的测试样例和用户提供的测试样例分别检验编码完成的各个模块和整个软件系统。例分别检验编码完成的各个模块和整个软件系统。淮海工学院淮海工学院 计算机课程面向对象的软件开发过程小结面向对象的软件开发过程小结分析用户需求,从问题中抽取对象模型;分析用户需求,从问题中抽取对象模型;将模型细化,设计类,包括类的属性和类之间将模型细化,设计类,包括类的属性和类之间的相互关系,同时考察是否

22、有可以直接引用的的相互关系,同时考察是否有可以直接引用的已有类或部件;已有类或部件;选定一种面向对象的编程语言,具体编码实现选定一种面向对象的编程语言,具体编码实现上一阶段类的设计,并在开发过程中引入测试,上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案。完善整个解决方案。淮海工学院淮海工学院 计算机课程3.1.4 面向对象程序设计的四个特点面向对象程序设计的四个特点抽象性抽象性 指采用数据抽象的方法来构建程序的类、对象和方指采用数据抽象的方法来构建程序的类、对象和方法,即把系统中需要处理的数据和这些数据上的操法,即把系统中需要处理的数据和这些数据上的操作结合在一起,根据功能、性质、

23、作用等因素抽象作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。成不同的抽象数据类型。封装性封装性 指利用类将数据和基于数据的操作封装在一起,数指利用类将数据和基于数据的操作封装在一起,数据被保护在类的内部,系统的其他部分只有通过包据被保护在类的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能与这个类进行裹在数据外面的被授权的操作,才能与这个类进行交流和交互。交流和交互。淮海工学院淮海工学院 计算机课程继承性继承性 指一个类可以从其它已有的类中派生,新类保持指一个类可以从其它已有的类中派生,新类保持了父类中的行为和属性,但增加了新的功能。了父类中的行为和属性,但增

24、加了新的功能。多态性多态性 指一个程序中可以有同名的不同方法共存的情况。指一个程序中可以有同名的不同方法共存的情况。可以利用子类对父类方法的覆盖和重载在同一个可以利用子类对父类方法的覆盖和重载在同一个类中定义多个同名的方法来实现。类中定义多个同名的方法来实现。淮海工学院淮海工学院 计算机课程3.1.5 面向对象程序设计的三大优点面向对象程序设计的三大优点可重用性可重用性 指在一个软件项目中所开发的模块,不仅可以用于指在一个软件项目中所开发的模块,不仅可以用于本项目,还可以重复地使用在其他项目中。本项目,还可以重复地使用在其他项目中。提高了开发效率,缩短了开发周期,降低了开提高了开发效率,缩短了

25、开发周期,降低了开发成本。发成本。由于采用了正确、有效的模块,质量得到保证,由于采用了正确、有效的模块,质量得到保证,维护工作量减少。维护工作量减少。采用可重用模块来构建程序,提高了程序的标采用可重用模块来构建程序,提高了程序的标准化程度,符合现代大规模软件开发的需求。准化程度,符合现代大规模软件开发的需求。淮海工学院淮海工学院 计算机课程 可管理性可管理性采用类作为构建系统的部件,使整个项目的组织更加采用类作为构建系统的部件,使整个项目的组织更加合理、方便;合理、方便;把数据和其上的操作封装在一起,仅本类的方法才可把数据和其上的操作封装在一起,仅本类的方法才可以操纵、改变这些数据,效率提高,

26、开发难度降低;以操纵、改变这些数据,效率提高,开发难度降低;指应用软件能够很方便地进行修改和扩充,包括软件的内容、指应用软件能够很方便地进行修改和扩充,包括软件的内容、形式和工作机制(如把形式和工作机制(如把C/S模式改为模式改为B/S模式)的修改和扩充。模式)的修改和扩充。特别适合于使用在快速原型的软件开发方法中。特别适合于使用在快速原型的软件开发方法中。使系统维护(包括延伸开发)变得简单和容易,维护使系统维护(包括延伸开发)变得简单和容易,维护工作量和开销大大降低。工作量和开销大大降低。对模块化技术的更有效的支持。对模块化技术的更有效的支持。可扩展性可扩展性 淮海工学院淮海工学院 计算机课

27、程3.2 Java的类3.2.1 Java 3.2.1 Java 类库的概念类库的概念 语言规则语言规则程序的书写规范程序的书写规范JavaJava语言语言 类库类库已有的有特定功能的已有的有特定功能的JavaJava程序模块程序模块 JavaJava的类库大部分是由的类库大部分是由SUNSUN公司提供的,叫基础类库(公司提供的,叫基础类库(JFCJFC)。)。根根据功能不同,据功能不同,JavaJava的类库被划分为若干个不同的包,每个包中都的类库被划分为若干个不同的包,每个包中都有若干个具有特定功能和相互关系的类和接口。有若干个具有特定功能和相互关系的类和接口。包是一种松散的类的集合。同一

28、个包中的类在缺省情况下可以互包是一种松散的类的集合。同一个包中的类在缺省情况下可以互相访问,为了便于编程和管理,常把需要在一起工作的类放在一相访问,为了便于编程和管理,常把需要在一起工作的类放在一个包里。个包里。淮海工学院淮海工学院 计算机课程3.2.2 Java3.2.2 Java中常用的包中常用的包(1 1)java.lang java.lang 包包 这是这是JavaJava语言的核心类库,包含了运行语言的核心类库,包含了运行JavaJava程序必不程序必不可少的系统类,如:基本数据类型、基本数学函数、字符可少的系统类,如:基本数据类型、基本数学函数、字符串处理、线程、异常处理等,这个包

29、系统自动加载。串处理、线程、异常处理等,这个包系统自动加载。(2 2)java.iojava.io包包 是是JavaJava语言的标准输入语言的标准输入/输出类库,包含了实现输出类库,包含了实现JavaJava程程序与操作系统、用户界面以及其他序与操作系统、用户界面以及其他JavaJava程序做数据交换所程序做数据交换所使用的类。使用的类。(3 3)java.utiljava.util包包 包含了包含了JavaJava语言中的一些低级的实用工具,如处理时语言中的一些低级的实用工具,如处理时间的间的DateDate类、处理变长数组的类、处理变长数组的VectorVector类,栈类,栈Stack

30、Stack类、散列类、散列表表HashTableHashTable类等。类等。淮海工学院淮海工学院 计算机课程(4 4)java.awtjava.awt包包 是是JavaJava语言用来构建图形用户界面(语言用来构建图形用户界面(GUIGUI)的类库。的类库。低级绘图操作低级绘图操作GraphicsGraphics类类等等java.awtjava.awt 图形控件和布局图形控件和布局ContainerContainer类、类、CheckboxCheckbox类、类、LayoutManagerLayoutManager接口接口等等 界面用户控制和事件响应界面用户控制和事件响应EventEvent

31、类类(5 5)java.appletjava.applet包包 是用来实现在是用来实现在InternetInternet浏览器中运行浏览器中运行Java AppletJava Applet的工具类,的工具类,其中包含一个非常有用的类其中包含一个非常有用的类java.applet.Appletjava.applet.Applet。(6 6)java.awt.eventjava.awt.event包包 是对是对EventEvent类的类的一个扩充,可以用不同方式来处理不同类型一个扩充,可以用不同方式来处理不同类型的事件,并使每个图形界面元素本身可以拥有处理它上面的事件,并使每个图形界面元素本身可以

32、拥有处理它上面事件的能力。事件的能力。淮海工学院淮海工学院 计算机课程3.2.3 使用系统类库的方式使用系统类库的方式(1 1)继承系统类,在用户程序里创建系统类的子类)继承系统类,在用户程序里创建系统类的子类如:如:public class public class SjAppletSjApplet extendsextends AppletApplet(2 2)创建系统类的对象创建系统类的对象 如:如:TextFieldTextField input=new input=new TextFieldTextField(6 6)(3 3)直接使用系统类直接使用系统类 如:如:SystemSys

33、tem.out.println.out.println()()注意:注意:使用系统类之前,用户程序需要用使用系统类之前,用户程序需要用importimport语句引入所语句引入所用到的系统类或系统类所在的包。用到的系统类或系统类所在的包。如:如:import import java.awtjava.awt.*.*;import import java.awt.eventjava.awt.event.*.*;淮海工学院淮海工学院 计算机课程3.2.4 创建创建Java自定义类的方法自定义类的方法 定义类就是定义类就是定义类的属性和服务定义类的属性和服务。类的属性即静态。类的属性即静态属性,指类内

34、的各项属性,指类内的各项数据数据;类的服务即成员函数或;类的服务即成员函数或方法方法。语法结构:语法结构:修饰符修饰符 classclass 类名类名 extendsextends 父类父类 implementsimplements 接口名接口名 类成员变量声明类成员变量声明 类方法声明类方法声明 淮海工学院淮海工学院 计算机课程接口名接口名父类父类修修饰饰符符定义类属性,成员变量定义类属性,成员变量定义类方法定义类方法 淮海工学院淮海工学院 计算机课程(1)声明类头:声明类头:关键字关键字classclass父类名:父类名:跟在跟在extendsextends关键字后,用以说明当前类是已关键

35、字后,用以说明当前类是已经存在的哪个类的子类。经存在的哪个类的子类。通过定义继承关系,子类通过定义继承关系,子类可以获得父类的所有属性和方法,并进一步定义它可以获得父类的所有属性和方法,并进一步定义它自己的特殊属性自己的特殊属性.接口名接口名:跟在:跟在implementsimplements关键字后,用以说明当前类关键字后,用以说明当前类中实现了哪个接口定义的功能和方法。中实现了哪个接口定义的功能和方法。修饰符修饰符:说明类的特殊性质,分为:说明类的特殊性质,分为访问控制符访问控制符、抽象抽象说明类说明类和和最终类最终类说明符。说明符。淮海工学院淮海工学院 计算机课程(2 2)声明类体:)声

36、明类体:定义类的具体内容,包括类的属性与方法定义类的具体内容,包括类的属性与方法 类的属性类的属性:可以是简单变量,也可以是对象、数组可以是简单变量,也可以是对象、数组等其他复杂数据结构。等其他复杂数据结构。声明类属性为声明类属性为简单变量简单变量的语法:的语法:修饰符修饰符 变量类型变量类型 变量名变量名=变量初值变量初值;例:例:intint password;password;声明类属性为声明类属性为对象对象的语法:的语法:修饰符修饰符 类名类名 对象名对象名=new=new 类名(实际参数列表)类名(实际参数列表);例:例:PhoneCardPhoneCard myCardmyCard

37、=new=new PhoneCardPhoneCard();();修饰符有修饰符有访问控制符、静态修饰符访问控制符、静态修饰符staticstatic、最终修饰符最终修饰符finalfinal、易失修饰符易失修饰符volatilevolatile和和 过渡修饰符过渡修饰符transienttransient。淮海工学院淮海工学院 计算机课程 类的方法类的方法:即成员函数,它规定类属性上的操作,实现类即成员函数,它规定类属性上的操作,实现类的内部功能的机制,是类与外部交互的窗口。的内部功能的机制,是类与外部交互的窗口。语法结构:语法结构:修饰符修饰符 返回值类型返回值类型 方法名(参数列表)方法

38、名(参数列表)throwsthrows 例外名例外名1 1,例外名,例外名2 2,.方法体;方法体;局部变量声明;局部变量声明;语句序列;语句序列;淮海工学院淮海工学院 计算机课程类中的类中的“变量变量”概念辨概念辨析:析:(1)成员变量:)成员变量:在类体变量定义处定义的变量,在整个类内都有效;在类体变量定义处定义的变量,在整个类内都有效;成员变量包括成员变量包括实例变量实例变量和和类变量类变量,用,用static定义的变量定义的变量是类变量,也叫静态变量;是类变量,也叫静态变量;所有对象独享实例变量,但共享类变量;所有对象独享实例变量,但共享类变量;实例变量只能通过对象名访问,类变量既可以

39、通过某实例变量只能通过对象名访问,类变量既可以通过某个对象名也可以通过类名来访问。个对象名也可以通过类名来访问。(2)局部变量:)局部变量:在类的方法中定义的变量,仅在定义它的方法内有效在类的方法中定义的变量,仅在定义它的方法内有效 淮海工学院淮海工学院 计算机课程类中的类中的“方法方法”概念辨概念辨析:析:(1)实例方法:)实例方法:实例方法既可以操作实例变量,也可以操作类变量;实例方法既可以操作实例变量,也可以操作类变量;实例方法在实例方法在创建类对象后才分配入口地址创建类对象后才分配入口地址;实例方法可以被类创建的任何对象访问,必须通过对象来调用;实例方法可以被类创建的任何对象访问,必须

40、通过对象来调用;实例方法可以调用其它方法(包括类方法)。实例方法可以调用其它方法(包括类方法)。(2)类方法:)类方法:用用static修饰修饰的方法是类方法,也叫静态方法;的方法是类方法,也叫静态方法;类方法只能操作类变量类方法只能操作类变量;类方法在类被加载到内存后就分配了入口地址;类方法在类被加载到内存后就分配了入口地址;类方法可以被类创建的任何对象调用,也可以通过类名来调类方法可以被类创建的任何对象调用,也可以通过类名来调用,类方法只能调用该类的类方法。用,类方法只能调用该类的类方法。淮海工学院淮海工学院 计算机课程本类中方法与变量之间的访问关系本类中方法与变量之间的访问关系实例方法实

41、例方法类方法类方法实例变量实例变量类变量类变量用用 对象名对象名用用 类名类名各类之间方法与属性的引用方法各类之间方法与属性的引用方法实例方法实例方法类方法类方法 实例变量实例变量类变量类变量局部变量局部变量实例方法实例方法类方法类方法 淮海工学院淮海工学院 计算机课程class class PhoneCardPhoneCard /定义一个电话卡类定义一个电话卡类 long long cardNumbercardNumber;privateprivate intint password;password;double balance;double balance;String String c

42、onnectNumberconnectNumber;booleanboolean connected;connected;booleanboolean performConnection(longperformConnection(long cn,intcn,int pwpw)/方法方法1 1,实,实现连接现连接 if(cnif(cn=cardNumbercardNumber&pwpw=password)=password)connected=true;connected=true;return true;return true;elseelse connected=false;connect

43、ed=false;return false;return false;类的属性类的属性 淮海工学院淮海工学院 计算机课程double double getBalancegetBalance()()/方法方法2 2,返回余额,返回余额 if(connected)if(connected)return balance;return balance;elseelsereturn-1;return-1;void void performDialperformDial()()/方法方法2 2,实现拨号,实现拨号 if(connected)if(connected)balance-=0.5;balance

44、-=0.5;淮海工学院淮海工学院 计算机课程3.2.5 创建类的实例对象创建类的实例对象创建对象的一般格式:创建对象的一般格式:类名类名 新建对象名新建对象名=newnew 构造函数构造函数()();newnew是为新建对象开辟内存空间的算符。是为新建对象开辟内存空间的算符。构造函数()用来完成对象的初始化。构造函数()用来完成对象的初始化。如:如:TextField input=new TextField(6);TextField input=new TextField(6);建立一个名为建立一个名为inputinput、长度为长度为6 6的文本框。的文本框。PhoneCard myCard

45、=new PhoneCard();PhoneCard myCard=new PhoneCard();建立一个名为建立一个名为myCardmyCard的电话卡对象。的电话卡对象。淮海工学院淮海工学院 计算机课程3.2.6 Java3.2.6 Java中的构造函数中的构造函数(1)基本概念)基本概念构造函数构造函数:用来:用来初始化对象初始化对象(为其所有静态属性赋初(为其所有静态属性赋初值)的一个特殊方法。值)的一个特殊方法。构造函数名与类名相同构造函数名与类名相同 构造函数可以有构造函数可以有0个或多个参数个或多个参数特点特点 构造函数始终和构造函数始终和new关键字一起调用关键字一起调用 构

46、造函数没有返回值构造函数没有返回值 构造函数一般不能由编程人员显示地直接调用构造函数一般不能由编程人员显示地直接调用 在创建一个类的新对象时,系统自动调用构造在创建一个类的新对象时,系统自动调用构造 函数对其进行初始化。函数对其进行初始化。淮海工学院淮海工学院 计算机课程引入构造函数的原因引入构造函数的原因:1)1)满足面向对象程序设计中对象初始化的需要满足面向对象程序设计中对象初始化的需要;2)2)提高灵活度,使初始化工作除赋值外有更复提高灵活度,使初始化工作除赋值外有更复杂的操作杂的操作;在不定义构造函数时,系统会自动为该类在不定义构造函数时,系统会自动为该类生成一个默认的构造函数。生成一

47、个默认的构造函数。淮海工学院淮海工学院 计算机课程(2 2)构造函数的定义构造函数的定义例如,可以为例如,可以为PhoneCard类定义如下的构造函数,初始化它的几类定义如下的构造函数,初始化它的几个域。个域。PhoneCard(long cn,int pw,double b,String s)cardNumber=cn;password=pw;balance=b;connectNumber=s;connected=false;可见,构造函数定义了几个形式参数,创建对象的语句在调可见,构造函数定义了几个形式参数,创建对象的语句在调用构造函数时,需要提供几个类型、顺序一致的实际参数,用构造函数时

48、,需要提供几个类型、顺序一致的实际参数,指明新建对象各域的初始值。指明新建对象各域的初始值。淮海工学院淮海工学院 计算机课程 构造函数的调用是在用构造函数的调用是在用newnew运算符创建类对象时由系统运算符创建类对象时由系统自动完成。自动完成。定义了构造函数之后,就可以用如下的语定义了构造函数之后,就可以用如下的语句创建并初始化句创建并初始化PhoneCard对象:对象:PhoneCard newCard =new PhoneCard(33006655,6666,100.0,300);说明说明:newCard是是新建对象名新建对象名关键字关键字newnew通知系统开辟内存单元,创建运算符通知

49、系统开辟内存单元,创建运算符第一个第一个PhoneCard说明新对象属于哪个类说明新对象属于哪个类第二个第二个PhoneCard用来隐含调用用来隐含调用PhoneCard类类的构造函数的构造函数这个对象的卡号是这个对象的卡号是33006655,密码是,密码是6666,金额是,金额是100.0,电话卡的接入号码是字符串,电话卡的接入号码是字符串“300”。淮海工学院淮海工学院 计算机课程例例 UsePhoneCard.java1:public class UsePhoneCard2:3:public static void main(String args)4:/创建一个创建一个PhoneCar

50、d的对象的对象myCard 5:PhoneCard myCard=new PhoneCard(12345678,1234,50.0,300);/调用调用myCard的方法的方法toString(),/把把myCard中的各个域数据组合成一段信息在屏幕上输出。中的各个域数据组合成一段信息在屏幕上输出。6:System.out.println(myCard.toString();7:8:淮海工学院淮海工学院 计算机课程9:class PhoneCard10:11:long cardNumber;12:private int password;13:double balance;14:String

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档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