Java程序设计项目化教程 教学课件 ppt 作者 陈芸_ 第3章

上传人:E**** 文档编号:89355566 上传时间:2019-05-23 格式:PPT 页数:85 大小:537.50KB
返回 下载 相关 举报
Java程序设计项目化教程 教学课件 ppt 作者 陈芸_ 第3章_第1页
第1页 / 共85页
Java程序设计项目化教程 教学课件 ppt 作者 陈芸_ 第3章_第2页
第2页 / 共85页
Java程序设计项目化教程 教学课件 ppt 作者 陈芸_ 第3章_第3页
第3页 / 共85页
Java程序设计项目化教程 教学课件 ppt 作者 陈芸_ 第3章_第4页
第4页 / 共85页
Java程序设计项目化教程 教学课件 ppt 作者 陈芸_ 第3章_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《Java程序设计项目化教程 教学课件 ppt 作者 陈芸_ 第3章》由会员分享,可在线阅读,更多相关《Java程序设计项目化教程 教学课件 ppt 作者 陈芸_ 第3章(85页珍藏版)》请在金锄头文库上搜索。

1、第3章 任务3创建考试系统中的试题类,3.1 任务描述 3.2 技术要点 3.3 任务实施,3.1 任 务 描 述 本章任务是创建考试系统中所需要的试题类(Testquestion类),包括试题内容、答案、用户选择的答案等属性,以及获取试题、设置选择的答案、获取选择的答案、设置标准答案、获取标准答案、检查答案正确与否等方法。,3.2 技 术 要 点 3.2.1 面向对象编程概述 面向对象编程(Object Oriented Programming, OOP)是当今最流行的程序设计技术,它具有代码易于维护、可扩展性好和代码可重用等优点。面向对象的设计方法的基本原理是按照人们习惯的思维方式建立问题

2、的模型,模拟客观世界。从现实世界中客观存在的事物(即对象)出发,并且尽可能运用人类的自然思维方式来构造软件系统。Java是一种面向对象的程序设计语言。,1面向对象编程的基本概念 1) 对象(Object) 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。在面向对象的程序中,对象就是一组变量和相关方法的集合。其中,变量表明对象的属性;方法表明对象所具有的行为。 2) 类(Class) 类是具有相同属性和行为的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。可以说类是对象的抽象化表示,对象是类的一个实例。,3) 消息(Message

3、) 对象之间相互联系和相互作用的方式称为消息。一个消息由五个部分组成:发送消息的对象、接收消息的对象、传递消息的方法、消息的内容以及反馈信息。对象提供的服务是由对象的方法来实现的,因此发送消息实际上就是调用对象的方法。通常,一个对象调用另一个对象中的方法,即完成了一次消息传递。,2面向对象的编程思想 面向过程的程序设计,例如C程序设计采用的是一种自上而下的设计方法,把复杂的问题一层层地分解成简单的过程,用函数来实现这些过程,其特征是以函数为中心,用函数来作为划分程序的基本单位,数据在过程式设计中往往处于从属的位置,如图3-1所示。,图3-1 面向过程的程序设计,面向对象程序设计是把复杂的问题按

4、照现实世界中存在的形式分解成很多对象,这些对象以一定的形式进行交互(通信、协调和配合),以此来实现整个系统。在图3-2的例子中,无锡的同学A通过邮局将花送给在北京的同学B。同学A只需将同学B的地址、花的品种告诉邮局,通过同学B所在地的邮局联系花商,使花商准备这些花,并与送花人联系送花即可。其中,可将同学A、同学B、邮电局、送花人看作对象。 对象之间相互通信,发送消息,请求其他对象执行动作来完成送花这项任务。对于同学A、B,则不必关心整个过程的细节。,图3-2 面向对象的程序设计举例,3面向对象的基本特性 面向对象的编程主要体现以下三个特性。 1) 封装性 面向对象编程的核心思想之一就是封装性。

5、封装性就是把对象的属性和行为结合成一个独立的单元,并且尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口,使之与外部发生联系。封装的特性使得对象以外的部分不能随意存取对象的内部数据(属性),保证了程序和数据不受外部干扰且不被误用。,2) 继承性 继承是一个类获得另一个类的属性和方法的过程。在Java语言中,通常我们将具有继承关系的类称为父类(superclass,超类)和子类(subclass)。子类可以继承父类的属性和方法,同时又可以增加子类的新属性和新方法。例如,作为“人类”的子类“中国人”,除了继承了“人类”的属性和方法,同时也具有自己所特有的新属性和新方法。,3) 多态性

6、 多态性是指在继承关系中,父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或方法在父类及其各子类中具有不同的含义。例如,哺乳动物有很多叫声,狗和猫是哺乳动物的子类,它们的叫声分别是“汪汪”和“喵喵”。,3.2.2 类 1类的定义 类通过关键词class来定义,一般形式为 类定义修饰符 class /类体 成员变量声明 成员方法 说明: (1) 类的定义通过关键字class来实现,所定义的类名应符合标识符的规定,一般类名的第一个字母大写。,(2) 类的修饰符用于说明类的性质和访问权限,包括public、private、abstract、final。

7、其中,public表示可以被任何其他代码访问;abstract表示抽象类;final表示最终类,详细说明见后面章节。 (3) 类体部分定义了该类所包括的所有成员变量和成员方法。 2成员变量 成员变量是类的属性,声明的一般格式为 变量修饰符 Java语言中,用于说明变量的访问权限的修饰符包括public、protected、private和friendly(默认)。,成员变量分为实例变量和类变量。实例变量记录了某个特定对象的属性,在对象创建时可以对它赋值,只适用于该对象本身。变量之前用static进行修饰,则该变量成为类变量。类变量是一种静态变量,它的值对于这个类的所有对象是共享的,因此它可以在

8、同一个类的不同对象之间进行信息的传递。 3成员方法 成员方法定义类的操作和行为,一般形式为 方法修饰符 () 方法体 ,成员方法修饰符主要有public、private、protected、final、static、abstract和synchronized七种,前三种的访问权限、说明形式和含义与用于修饰成员变量时一致。 与成员变量类似,成员方法也分为实例方法和类方法。如果方法定义中使用了修饰符static,则该方法为类方法。public static void main(String args)就是一个典型的类方法。 例如:定义一个Animal类。 public class Animal S

9、tring name; / 实例变量 static int age; / 类变量,void move() / 实例方法 System.out.println(“animal move”); static void eat() /类方法 System.out.println(“animal eat“); ,4方法重载 方法重载是类的重要特性之一。重载是指同一个类的定义中有多个同名的方法,但是每个重载方法的参数类型、数量或顺序必须是不同的。每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法。 例如:定义一个Area类,其中定义了同名方法getArea,实现了方法的重载。 c

10、lass Area double getArea(float r) /计算圆的面积 ,return 3.14159*r*r; double getArea(float l,float w) /计算矩形的面积 return l*w; ,5修饰符 定义类及类成员时,可以通过一些关键字对它们的访问权限进行限制,这些关键字称为修饰符。最常用的修饰符是public(公共的)、protected(保护的)和private(私有的),如果缺省修饰符,则使用默认的访问权限,如表3-1所示。,表3-1 常用修饰符及其访问范围,该表中所涉及的包及子类的概念,我们将在后续章节进行详细介绍。对于Java中定义的类,只

11、能被public或缺省修饰符修饰。其中public修饰的类可以供所有的类访问。Java缺省修饰符限定的是包级访问权限,即在同一个包下的类都可以访问。类不能被private或protected修饰符修饰。 对于类的成员,若被声明为public,则可以被任何地方的代码访问,即访问权限不受包的限制;若被声明为private,则只能被同一个类中的其他成员所访问,并且该成员不能被子类继承;若被声明为protected,则可由继承的子类访问,也可由包内其他元素访问。对于类的成员,Java缺省的仍然是包级访问权限。,3.2.3 对象 1对象的创建 对象的创建分为两步: (1) 进行对象的声明,即定义一个对象

12、变量的引用。 一般形式为 ; 例如:声明Animal类的一个对象dog。 Animal dog;,(2) 实例化对象,为声明的对象分配内存。这是通过运算符new实现的。 new运算符为对象动态分配(即在运行时分配)实际的内存空间,用来保存对象的数据和代码,并返回对它的引用。该引用就是new分配给对象的内存地址。一般形式为 =new ; 例如: dog = new Animal(); 以上两步也可合并,形式为 =new ,例如: Animal dog = new Animal(); 从图3-3中,我们可以看到对象的声明只是创建变量的引用,并不分配内存,要分配实际内存空间,必须使用new关键字。,

13、图3-3 创建对象的过程,2对象的引用 对象创建之后,通过“”运算符访问对象中的成员变量和成员方法。 一般形式为 由于类变量和类方法不属于某个具体的对象,因此我们也可以直接使用类型替代对象名访问类变量或类方法。 例如:访问Animal类中的类变量和类方法。 Animal.age=3; Animal.eat();,例3-1 ObjectDemo.java 1 public class ObjectDemo 2 public static void main(String args) 3 Animal a=new Animal(); 4 Animal b=new Animal(); 5 a.nam

14、e=“Dog“; 6 Animal.age=3; 7 b.name=“Cat“; 8 System.out.println(b.name+“ is “+b.age+“ years old“); 9 10 ,3构造函数 构造函数是定义在类中的一种特殊的方法,在创建对象时被系统自动调用,主要完成对象的初始化,即为对象的成员变量赋初值。对于Java语言中的每个类,系统将提供缺省的不带任何参数的构造函数。如果程序中没有显式地定义类的构造函数,则创建对象时系统会调用缺省的构造函数。一旦程序中定义了构造函数,系统将不再提供该缺省的构造函数。,构造函数具有以下特点: (1) 构造函数名必须和类名完全相同,类

15、中其他成员方法不能和类名相同。 (2) 构造函数没有返回值类型,也不能返回void类型。其修饰符只能是访问控制修饰符,即public、private、protected中的任意一个。 (3) 构造函数不能直接通过方法名调用,必须通过new运算符在创建对象时自动调用。 (4) 一个类可以有任意个构造函数,不同的构造函数根据参数个数的不同或参数类型的不同进行区分,称之为构造函数的重载。,例3-2 AnimalDemo.java 1 class Animal2 2 String name; 3 int age; 4 Animal2() 5 name=“Dog“; 6 age=3; 7 8 Animal2(String name,int age) 9 this.name=name; 10 this.age=age;,11 12 13 public class AnimalDemo 14 public static void main(String args) 15 Animal2 a=new Animal2(); 16 Animal2 b=new Animal2(“cat“,5); 17 System.out.println(

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号