第3章-面向对象程序设计(上)ppt课件(全).ppt

上传人:可****阿 文档编号:77577966 上传时间:2023-03-15 格式:PPT 页数:58 大小:299.54KB
返回 下载 相关 举报
第3章-面向对象程序设计(上)ppt课件(全).ppt_第1页
第1页 / 共58页
第3章-面向对象程序设计(上)ppt课件(全).ppt_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《第3章-面向对象程序设计(上)ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《第3章-面向对象程序设计(上)ppt课件(全).ppt(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第3章章 Java面向对象程序设计面向对象程序设计(上上)第3章 面向对象程序设计(上)ppt课件(全)本章学习目标本章学习目标v掌握掌握Java面向对象程序设计方法面向对象程序设计方法v利用面向对象设计方法解决实际问利用面向对象设计方法解决实际问题题第3章 面向对象程序设计(上)ppt课件(全)任务任务1:一个简单的类对象:一个简单的类对象【任务内容任务内容】设计一个音乐播放器类,并创建一个对象。【能力目标能力目标】v掌握面向对象程序设计方法v掌握创建类的基础语法v掌握类对象的创建v学会用面向对象设计思想解决实际问题3.1 类和对象类和对象第3章 面向对象程序设计(上)ppt课件(全)【范

2、例范例 3-1】设计一个媒体播放器类设计一个媒体播放器类 class MediaPlayer/音乐文件路径public String musicFile;/播放器音量,范围:0(静音)100public int soundLevel;/播放器状态public boolean isPlaying;第3章 面向对象程序设计(上)ppt课件(全)vclass MediaAppExam /主程序vpublic static void main(String args)v /用MediaPlayer类创建播放器对象mplayervMediaPlayer mplayer=new MediaPlayer()

3、;/设定播放器内部的属性值v mplayer.musicFile=spring.mp3;mplayer.soundLevel=50;vmplayer.isPlaying=false;v v 第3章 面向对象程序设计(上)ppt课件(全)结构化的软件开发方法结构化的软件开发方法是20世纪80年代使用最广泛的软件开发方法。它主要依据功能来划分软件的结构,它把软件系统的功能看做是根据给定的输入数据,然后输出结果。进行结构化设计时,首先考虑整个软件的功能,然后对功能进行分解,将软件划分为多个模块,每个模块实现子功能(但功能不是一成不变的)。模块内部还可以进一步细分,最后将所有的模块拼装起来构成整个软件

4、系统。软件系统可以看做多个子系统的集合。结构化设计属于自顶向下的设计,在设计阶段就需要考虑如何实现系统功能,因为分解功能的过程实际就是实现功能的过程。其局限性在于不能适应用户需求的不断变化,系统结构会根据需求变化而变化。结构化程序设计中,方法是最小的功能模块。每个方法都是一个具有输入输出的子系统。预备知识预备知识-程序设计方法程序设计方法 第3章 面向对象程序设计(上)ppt课件(全)面向对象程序设计 面向对象程序设计(Object-Oriented Programming 简称OOP)是当今主流的程序设计方法,它将软件系统看做各种对象的集合,每个对象包含对用户公开的特定功能部分和隐藏的实现部

5、分。对象是最小的子系统,一组对象能够组合成复杂的子系统。程序中的很多对象来自于标准库,还有一些是自定义的。究竟是自己构造对象,还是使用外部对象(可以是免费的,也可以是商业的)完全取决于预算和时间。但只要能够实现功能,完全可以不必关系其实现的细节。传统的结构化程序设计通过一系列的过程(即算法)来解决问题,然后考虑存储数据的方式(即如何组织数据),而面向对象刚好相反。对于较小规模的问题使用结构化设计比较理想,而面向对象设计更适合解决规模较大的问题。第3章 面向对象程序设计(上)ppt课件(全)OOPOOP的逻辑过程的逻辑过程 v面向对象设计分析的完整过程如图所示:现实域现实域抽象抽象类类对象对象实

6、例化映射抽象数据类抽象数据类物理实体物理实体逻辑实现概念域概念域计算机世界计算机世界第3章 面向对象程序设计(上)ppt课件(全)面向对象具有以下几个重要特征:抽象封装与隐藏继承多态性 33313234第3章 面向对象程序设计(上)ppt课件(全)面向对象的基本概念面向对象的基本概念 v对象(Object)是一个应用系统中用来描述客观事物的实体,是具有特定属性(数据)和行为(方法)的基本运行单位,是类的一个特定状态下的实例。v类(Class)是Java代码的基本组织模块,是用以描述一组具有共同属性和行为的对象的基本原型,是对这组对象的概括、归纳与抽象表达,它定义了本类对象所应拥有的状态属性集及

7、操作这组属性的行为方法集。第3章 面向对象程序设计(上)ppt课件(全)类与对象的关系类与对象的关系v类与对象之间的关系,类似于数据类型与变量之间的关系;一个类可以生成无数个不同的对象,每个对象属性值不同,其状态也不同。v可以用计算机模型与计算机实体之间的关系来更形象地说明类与对象之间的关系:将冯诺依曼计算机模型看作计算机类,则不同品牌的计算机实体就对应为一个个的实例对象。第3章 面向对象程序设计(上)ppt课件(全)OOP OOP的优越性的优越性 v从面向过程到面向对象是程序设计技术的一个飞跃。人们之所以要采用面向对象的程序设计技术,其目的在于:提升程序的开发与运行效率提高代码的可重用性(或

8、者称为复用性)按照与人类习惯思维方法一致的原则开发系统第3章 面向对象程序设计(上)ppt课件(全)OOPOOP的优越性(续)的优越性(续)v提高程序的可靠性与可维护性 v提高程序的可扩展性 v增强程序的可控制性 总之,面向对象的程序设计,能够有效分解、降低问题的难度与复杂性,提高整个求解过程的可控制性、可监视性和可维护性,从而获得较高的开发效率与可靠效果第3章 面向对象程序设计(上)ppt课件(全)创建类创建类v类是Java语言面向对象编程的基本要素,用来定义对象的成员变量(数据域)与成员方法(功能接口),描述对象的状态与行为。Java程序将你要表达的实体或概念封装在类中,并由类来创建诸多的

9、实例对象。应用程序的功能便是由各个类的实例对象,通过调用各类方法来实现的。vJAVA的类由类的声明与类体两部分组成。第3章 面向对象程序设计(上)ppt课件(全)1、类的声明用来指定该类的访问修饰符、类的名称、父类名称及实现接口等属性。声明类的完整形式为:publicabstract|final class extends implements 说明了类的属性类名应该能够描述出类的特征或作用,类名的第一个字母通常要大写,如果类名由多个单词组成,则每一单词的首字母一般都要大写第3章 面向对象程序设计(上)ppt课件(全)2、类体:是类功能的主体,是JAVA语句的集合。一般要定义三类元素:成员变量

10、;构造方法;成员方法。v语句块界定符 及 标识出类体的有效范围。v成员变量与成员方法为类的成员要素,简称为成员(Member),它们又分为静态/类要素与对象/实例要素两类。v构造方法是具有与类名相同名称的一种特殊方法,用来创建类的对象及对成员变量进行初始化。构造方法为可选项,当省略时,Java系统会按缺省方式定义空白的构造方法。第3章 面向对象程序设计(上)ppt课件(全)类定义示例类定义示例【例】建立一个公共的最终类日期类,其声明格式如下:public final class Date /类的声明语句 /类体定义 private int year;/年 private int month;/

11、月 private int day;/日 public initDate(int y,int m,int d)/初始化年、月、日值的方法 public showDate()/显示当前日期值的方法第3章 面向对象程序设计(上)ppt课件(全)实例化对象v类只是一种数据类型,需要实例化对象以后才能使用。v类类型实例化对象需要由两个步骤来完成,首先用类定义对象变量,然后通过实例化类的对象来初始化对象变量,即:类名称 对象变量;对象变量=new 类名称();也可以一步完成,即:类名称 对象变量=new 类名称();第3章 面向对象程序设计(上)ppt课件(全)实例化对象(续)v一旦一个类的实例化对象产

12、生,就可以通过该对象访问类中定义的成员了。通过对象访问成员的基本结构如下:对象变量.属性=值;对象变量.方法();第3章 面向对象程序设计(上)ppt课件(全)任务2-方法的定义【任务内容任务内容】给任务1中的媒体播放器类增加控制方法【能力目标能力目标】v掌握方法定义v学会用方法解决实际问题【任务分析任务分析】v本案例要求在任务1案例中MediaPlayer类基础上扩充可控制播放器的方法。通过分析任务1的案例,我们可以得知,MediaPlayer类至少包含播放、暂停、调节音量等方法。v范例3-2 MediaAppExam.java 3.2 方法方法第3章 面向对象程序设计(上)ppt课件(全)

13、任务任务2-2-方法定义(续)方法定义(续)v成员方法(Member Method)又称为功能接口(Function Interface),简称为方法(Method),是类对象与外界的接口,包含了理解和操纵对象状态的代码,反应了对象的行为特征,特别是对属性进行操作的特征。成员方法对成员变量的操作主要体现在以下两个方面:改变对象的属性,一般记为set方法返回对象的属性,一般记为get方法第3章 面向对象程序设计(上)ppt课件(全)方法定义格式如下:vpublic|protected|private static final|abstract native synchronized (参数列表参

14、数列表)throws v /方法体定义 v /用于描绘方法行为的Java语句v 访问控制修饰符第3章 面向对象程序设计(上)ppt课件(全)任务3:静态方法【任务内容任务内容】设计一维数组工具类,包含数组复制,打印任务【能力目标能力目标】v掌握静态方法的定义v学会用静态方法解决实际问题【任务分析任务分析】v本案例要求设计一个针对一维数组做操作的工具类工具类,这些方法对于所有一维数组来说是通用通用的。作为工具类,它只是它只是包含了操作数组的方法,而与数组包含了操作数组的方法,而与数组没有任何直接关系没有任何直接关系。因此,在使用操作数组的方法时并不需要对工具类做实例化。那么如何才能在不实例化类对

15、象的情况下访问类内部的方法呢?如何才能在不实例化类对象的情况下访问类内部的方法呢?vJava编程语言中静态方法静态方法可以很好的解决上述问题。Java允许开发人员在一个类内部定义直接通过类名称访问的静态方直接通过类名称访问的静态方法法,而无需实例化类对象。3.2 方法方法第3章 面向对象程序设计(上)ppt课件(全)v范例:Application.java通过上例,我们知道:static方法可以用类来直接调用,而无需用从类中实例化出来的具体对象来调用,因此这类方法被称为类的方法。注意:static方法只能访问类中的static属性和其他的static方法。第3章 面向对象程序设计(上)ppt课

16、件(全)任务4:main方法【任务内容任务内容】实现命令行计算器程序【能力目标能力目标】v了解Java程序的执行v掌握Java程序入口方法v借助主程序入口参数解决实际问题【任务分析任务分析】v命令行计算器就是用户在命令行输入要参加计算的两个数和运算符,然后程序参照用户输入的运算符对两个数进行算术运算,最终将运算结果呈现给用户。本案例要求程序在启动时接收 用户的输入。那么,程序该如何实现在程序启动过程中传递用户输入呢?答案就是Java程序中的主方法main()。3.2 方法方法第3章 面向对象程序设计(上)ppt课件(全)v范例:Calc.javav在Java中,main()方法是Java应用程

17、序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法。main()方法与其他的方法有所不同,它在程序中有固定的语法声明:vpublic static void main(String args)第3章 面向对象程序设计(上)ppt课件(全)任务5:成员变量和局部变量【任务内容任务内容】设计一个Person类,包含姓名、性别、年龄属性,并通过方法访问这些属性。【能力目标能力目标】v掌握成员变量定义v掌握局部变量定义v掌握成员变量和局部变量的区别【任务分析任务分析】v该案例要求设计一个Person类,并且包含有姓名、性别和年龄三个属性,属性的访问必须通过方法来完成。每个属

18、性的访问包括读和写,所以Person类至少包含六个属性分别对应上述三个属性的读写操作。其中写属性操作还需要外界提供一个参数,作为被操作属性的新值。3.3 成员变量和局部变量成员变量和局部变量第3章 面向对象程序设计(上)ppt课件(全)v范例:ApplicationDemo.javav在上例中涉及到两类变量:局部变量和成员变量v局部变量:1)局部变量是定义在方法体内部的变量,包括方法圆括号中的参数在内。局部变量有时被称作自动变量。局部变量存储在栈内存栈内存中,其生命周期从方法的执行到方法方法的结束。2)局部变量定义以后,必须进行初始化必须进行初始化。3)局部变量只能在定义方法范围内使用 第3章

19、 面向对象程序设计(上)ppt课件(全)v成员变量:成员变量是定义在类当中的变量,又称为属性(Attribute)或数据域(Data Field),用以表述一个对象的状态信息。成员变量跟随对象一起存储在堆内存堆内存当中,其生命周期从对象的实例化开始,直到对象被销毁时消失。语法描述格式如下:public|protected|privatestaticfinaltransientvolatile =初始值/new;第3章 面向对象程序设计(上)ppt课件(全)vpublic、protected与private为成员要素访问修饰符,用来限制成员变量或成员方法的访问范围,即哪些类或对象可以访问此成员要

20、素。vstatic用来指明成员要素为静态要素,又称类要素,以区别于对象要素。静态要素存在于类的定义区域中,属于类本身的成员,每个该类的对象共享这些要素 vfinal用于成员变量时,是作为定义最终变量即常量的关键字。这类常量的值不允许修改。vtransient(意为短暂的、瞬时的)为专门用于成员变量的修饰符,表明成员变量为临时变量。vvolatile(意为可变的、不稳定的)为专门用于成员变量的修饰符,声明一个被多个并发线程所共享的变量。第3章 面向对象程序设计(上)ppt课件(全)v在类实例化一个对象后,对象内的所有成员变量已经被初始化。成员变量默认初始化规则如下:v对象类型:默认初始化为nul

21、lv整数类型:默认初始化为0v字符类型:默认初始化为u0000v浮点类型:默认初始化为0.0和0.0fv逻辑类型:默认初始化为false第3章 面向对象程序设计(上)ppt课件(全)任务任务6:访问控制:访问控制【任务内容任务内容】v修改任务2中的MediaPlayer播放器,限制外界限制外界任意访问对象内的属性【能力目标能力目标】v了解Java封装机制v掌握Java访问控制修饰符v学会采用封装机制解决实际问题【任务分析任务分析】v本案例要求对任务2中的媒体播放器进程改造,限制对象外部代码对对象属性的任意操作。任务2中,主程序是可以随意通过mplayer对象去访问内部的任何属性。一个对象内部属

22、性可以被随意修改是一个极其危险的事情,它直接影响了对象的有效性。例如随意设置音量属性soundLevel为-1,从语法上,int类型的soundLevel是可以接受-1值得,但是从逻辑上,音量范围是0100,变量自身是无法控制其逻辑上的有效性的。3.4 封装封装第3章 面向对象程序设计(上)ppt课件(全)v范例:MediaAppDemo.java注意:类中的所有成员都可以被类自身的代码访问。为控制其他类的访问权限,类成员有四种访问修饰符。vprivate:声明为private的成员只能被包含它的类自身访问vdefault:包成员无任何访问修饰符,它们只能被所在包中的类所访问。vprotect

23、ed:声明为protected的成员可以被它的子类、同一个包中的类访问。vpublic:声明为public的成员可以被任何类访问。第3章 面向对象程序设计(上)ppt课件(全)成员变量的访问控制修饰符成员变量的访问控制修饰符成员变量的访问控制修饰符成员变量的访问控制修饰符修饰符本类相同包中的不同类(包含子类)不同包中的子类不同包中的非子类public缺省(packeage)privateprotected上述访问控制修饰符主要用于定义成员的作用域上述访问控制修饰符主要用于定义成员的作用域,即可以在哪些范围内访问其成员即可以在哪些范围内访问其成员.第3章 面向对象程序设计(上)ppt课件(全)举

24、例举例1 1:v class ClassAv private int isPrivate;v private void privateMethod()v System.out.println(“私有方法”);v vv class ClassB v void accessMethod()v ClassA a=new ClassA();v a.isPrivate=10;/非法v a.privateMethod();/非法vv第3章 面向对象程序设计(上)ppt课件(全)v举例2:vclass FieldTest v private int num=5;/私有作用域,本类可见v public int

25、 get()/公共作用域v return num;/返回成员变量num的值v v class Test v public static void main(String args)v FieldTest ft=new FieldTest();v int t=ft.get();/正确访问v /int s=ft.num;/不能访问FieldTest类的私有成员变量v System.out.println(“t=“+t);v /System.out.println(s);vv第3章 面向对象程序设计(上)ppt课件(全)任务任务7:构造方法:构造方法【任务内容任务内容】v创建一个按钮类,保证其实例化

26、的对象所有状态初始都是有效的【能力目标能力目标】v掌握构造方法的定义v掌握用构造方法初始化对象v学会用构造方法解决实际问题【任务分析任务分析】v本案例要求设计一个按钮类,并且按钮类在实例化对象后,其内部的状态值应该保持在有效状态。实例化一个类的对象时,对象内部的状态已经被初始化为默认值,但是这个默认值并不是我们想要的,因为它们从逻辑上并不是有效的。我们该如何在实例化对象的过程中将对象属性初始化为符合对象自身特性的有效状态呢?3.5 构造方法构造方法第3章 面向对象程序设计(上)ppt课件(全)v范例:ApplicationDemo2.javav构造方法(Constructor)又称为构造器,熟

27、悉C+语言的人习惯上称之为构造函数。构造方构造方法是类用来创建对象、初始化类的属性的一法是类用来创建对象、初始化类的属性的一种特殊方法,构造方法每次只会在类创建对种特殊方法,构造方法每次只会在类创建对象的时候被自动调用,且只会被调用一次象的时候被自动调用,且只会被调用一次。vJava中所有的类至少都要有一个构造方法,即使用户不明确地定义,系统也会为该类生成一个默认构造方法或缺省构造方法,这种缺省构造方法没有任何参数,且方法体为空。第3章 面向对象程序设计(上)ppt课件(全)构造方法没有返回类型,也不允许返回void类型。构造方法的方法名与类名完全相同(包括字母大小写)一个类可以包含多个重载的

28、构造方法,使用这些重载的构造方法创建不同对象时,通过参数的不同来决定调用哪个构造方法。构造方法不允许用户直接调用,只能通过new关键字在创建对象时由系统调用。33343132构造方法的特征:构造方法的特征:第3章 面向对象程序设计(上)ppt课件(全)任务任务8:类的继承:类的继承【任务内容任务内容】设计一个Person类,并派生出Employee【能力目标能力目标】v了解类继承的概念v掌握类继承的语法v学会用类继承解决实际问题【任务分析任务分析】v本案例要求设计一个Person类,然后在Person类基础之上扩充新功能另外一个新类Employee。另外,Person类中定义的方法并不完全符合

29、Employee的要求,因此,Employee必要的情况下可以重新定义Person类中已定义过的方法。3.6 类的继承类的继承第3章 面向对象程序设计(上)ppt课件(全)v范例:ExtendExample.javav继继承承也称为派派生生,其概念来源于这样一种思想:同类事物具有共同性,在同类事物中,每个事物又具有其特殊性。运用抽象的原则舍弃对象的特殊性,抽取其共性,便得到适应于一组对象的类,这便是一一般般类类或或通通用用类类,而把具有特殊性的类称为特特殊殊类类或或具具体体类类。假定B类与C类具有A类的全全部部属性和方法,同时又分别具有自己特有的某些属性和方法,则把类A称作一般类,把类B与类C

30、称作类A的特殊类。第3章 面向对象程序设计(上)ppt课件(全)继承的意义继承的意义v继承很好地解决了软件复用。通过继承,一个类可以拥有已有类的所有功能。因此,只需指明新类与现有类的不同,即增加自己的属性和方法即可,从而有效地减少了代码和数据的冗余度,增强了程序的可重用性。第3章 面向对象程序设计(上)ppt课件(全)继承的特征继承的特征33343132继承关系是传递的继承简化了人们对事物的认识和描述,能清晰体现相关类之间的层次结构关系通过增强一致性来减少模块的接口和界面,大大增加程序的易维护性Java不支持类的多重继承,只支持类的单一继承第3章 面向对象程序设计(上)ppt课件(全)继承的实

31、现继承的实现vJava程序中,继承通过extends关键字来实现。子类对父类的继承是在类的声明中通过关键字extends来指明。v实现继承的语法结构为:修饰符 class extends /类体定义 第3章 面向对象程序设计(上)ppt课件(全)继承的示例继承的示例v【例】实现两个类的描述:基类人(Person)及子类学生(Pupil)。人具有姓名(name)、年龄(age)、性别(sex)及配偶姓名(spouseName)四类属性,同时具有工作(work)、休息(rest)、娱乐(amusement)及处理家务(housework)四种行为方法。学生将从人这一父类中继承除配偶姓名以外的三类属

32、性,并继承及除工作和处理家务以外的两类行为,同时要添加自身类特有的几类属性:所属学校(school)、所学专业(specialty)及所在年级(degree),同时还要增加几种学生的行为方法:学习(study)与考试(exam)。第3章 面向对象程序设计(上)ppt课件(全)类的继承关系类的继承关系第3章 面向对象程序设计(上)ppt课件(全)继承机制下成员要素的行为继承机制下成员要素的行为v继承机制下,类的成员要素的行为方式将会发生很大的变化。子类可以定义与基类相同的成员变量和成员方法,这种情况下,Java系统将面临如何解决成员要素定义的二义性冲突现象。v对于属性而言,子类在实现继承父类属性

33、的同时,可以定义与父类属性相同名称与类型的自身属性,子类在执行自身方法时,默认情况下使用的是自身定义的属性,从而将父类的同名属性暂时屏蔽掉。这种原则称为属性隐藏。第3章 面向对象程序设计(上)ppt课件(全)v同样,对于成员方法而言,子类在继承父类方法的同时,可以定义与父类原型相同而方法的具体实现不同的自身的成员方法,子类在自身方法中调用与父类同名的方法时,默认情况下调用的是自身定义的方法,从而相当于重新实现了父类的方法功能。这一原则称为方法覆盖(override)。v例:InheritDemo.java第3章 面向对象程序设计(上)ppt课件(全)thisthis和和supersuper(1

34、)super用来实现对直接基类成员要素的访问,它代表当前类对象的直接父类,用于以下场合:v 调用直接父类的构造方法。v 访问直接父类中被隐藏的成员变量。v 调用直接父类中被隐藏的成员方法。(2)this代表当前类对象本身,用于以下场合:v 构造方法重载时调用本类的其它构造方法。v 访问本类对象的成员变量。v 调用本类对象的成员方法。第3章 面向对象程序设计(上)ppt课件(全)任务任务9:认识面向对象的多态:认识面向对象的多态【任务内容任务内容】设计一个媒体播放器,该媒体播放器可以向后兼容任何格式的音频媒体。【能力目标能力目标】了解什么是面向对象的多态掌握如何运用面向对象的多态特性学会用多态解

35、决实际问题【任务分析任务分析】v该案例要求设计一个功能强大的媒体播放器,能够支持各种音频格式的播放。我们知道不同音频格式的文件数据编码格式都不相同。要让媒体播放器识别各种编码格式的音频文件是个比较棘手的任务。3.7 多态多态第3章 面向对象程序设计(上)ppt课件(全)v实例:ApplicationDemo3.javav在上例中涉及到了对象类型的转型问题,我们知道,基本数据类型可以进行类型转换,Java 支持隐式(自动)及显式(强制)两种类型转换方式v类的对象也能够进行类型转换。v类型转换(Type Casting),也称为塑型 第3章 面向对象程序设计(上)ppt课件(全)对象类型转换遵循的

36、原则对象类型转换遵循的原则333132对象类型转换必须在继承的层次内进行,否则程序将出现异常向上转型是安全的 CastingDemo.java向下转型是危险的 第3章 面向对象程序设计(上)ppt课件(全)对象类型转换遵循的原则(续)对象类型转换遵循的原则(续)353634对象能够转换为对象类型实现的一个接口 对象多态-父类引用指向子类对象,此刻为了使用子类特有的方法,必须在方法体内将对象进行向下转型(强制转型),之前要用instanceof测试 在类的继承结构中,处于相同层次的类对象之间不能进行转换第3章 面向对象程序设计(上)ppt课件(全)任务任务10:初始化块:初始化块【任务内容任务内

37、容】将某个类中部分成员初始化为默认值,其它成员通过构造方法初始化。【能力目标能力目标】v掌握对象成员的初始化v掌握初始化块v学会运用初始化块解决实际问题【任务分析任务分析】v本案例要求将一个类中的部分成员初始化为默认值,而另外一部份成员通过构造方法传参进行初始化。假如,这个类拥有30个成员属性,其中有四个属性通过不同的构造方法完成初始化,那么剩下的26个成员,是否要在每个构造方法中都书写遍初始化语句呢?3.8 初始化代码块初始化代码块第3章 面向对象程序设计(上)ppt课件(全)v实例:ApplicationDemo4.java v初始块初始块是一段出现在类声明中的语句块,它位于所有成员、构造

38、方法以及声明之外,它可以初始化对象的字段。它们会被优先执行,就好像它们被放置在类中的每一个构造方法的开头那样,如果有多个块,它们将按照在类中出现的先后顺序执行。第3章 面向对象程序设计(上)ppt课件(全)任务任务11:静态初始化:静态初始化【任务内容任务内容】v将类中拥有100个元素的静态数组元素用随机数进行初始化【能力目标能力目标】v掌握静态成员初始化v掌握静态代码块v学会运用静态初始化解决实际问题【任务分析任务分析】v本案例中要求对一个类中拥有大量元素的数组进行初始化。在类中成员的初始化工作可以在声明变量时完成,也可以在构造方法内完成。针对本案例,上述两种方式都无法很好的完成初始化工作。

39、首先,在声明变量时完成初始化方式在面对有大量元素的数组时很难书写,这种工作量只能通过循环语句进行初始化。如果将初始化放置在构造方法内,固然可以用循环初始化,然而,每当类实例化新的对象,该成员都将被初始化一次,再者类中的静态成员被多个类对象共享,这种做法很显然在类对象之间互相影响 3.8 初始化代码块初始化代码块第3章 面向对象程序设计(上)ppt课件(全)v范例:ApplicationDemo5.javav java语言提供了一种静态初始化的机制,该机制将静态成员的初始化工作提前到类加载阶段,且只初始化一次。第3章 面向对象程序设计(上)ppt课件(全)编程作业v1尝试编写一个类,定义一个修饰

40、权限为private的成员变量,定义两个成员方法,一个方法实现为此成员变量赋值,另一个成员方法获取这个成员变量的值,保证其他类继承给类时能获取该类的成员变量的值。v2尝试编写一个矩形类,将长与宽作为矩形类的属性,在构造方法中将长宽初始化,定义一个成员方法求此矩形的面积。v3尝试编写一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行操作。v4定义一个实现常用数学运算的类MyMath,类中提供max()、min()、sum()与average()四个静态方法,每个方法带有三个整型参数,分别实现对三个整数求取最大值、最小值、和值及平均值的运算。在主类中对任意输入的三个整数,调用MyMath类的四种静态方法,求取结果并输出。第3章 面向对象程序设计(上)ppt课件(全)

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

当前位置:首页 > 应用文书 > 工作计划

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

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