任务3——创建考试系统中的试题类

上传人:宝路 文档编号:53028994 上传时间:2018-08-27 格式:PPT 页数:70 大小:1.73MB
返回 下载 相关 举报
任务3——创建考试系统中的试题类_第1页
第1页 / 共70页
任务3——创建考试系统中的试题类_第2页
第2页 / 共70页
任务3——创建考试系统中的试题类_第3页
第3页 / 共70页
任务3——创建考试系统中的试题类_第4页
第4页 / 共70页
任务3——创建考试系统中的试题类_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《任务3——创建考试系统中的试题类》由会员分享,可在线阅读,更多相关《任务3——创建考试系统中的试题类(70页珍藏版)》请在金锄头文库上搜索。

1、任务3创建考试系统中的试题类,学习情境一(项目开发准备),学习目标,了解面向对象的基本特性。 掌握类的定义和对象的创建。 掌握方法、变量的定义与使用。 熟悉类的访问权限。 掌握继承的使用。 掌握抽象类和接口的使用。 了解包的创建和引用。,3.1 任务描述,创建考试系统中所需要的试题类(Testquestion类) 属性:包括试题内容、答案、用户选择的答案等。 方法:获取取试题、设置选择的答案、获取选择的答案、设置标准答案、获取标准答案、检查答案正确与否等。,3.2 技术要点,面向对象编程概述类 对象 继承 抽象类和接口 包,3.2.1 面向对象编程概述,面向对象编程的基本概念 面向对象的编程思

2、想 面向对象的基本特性,万物皆对象,世界是由什么组成的?,身边的对象,布兰尼,朱丽叶,顾客 姓名:朱丽叶 年龄:28 体重:52千克操作: 购买商品,姓名:布兰尼 职衔:收银员 年龄:35 体重:60千克操作: 收款 打印账单,对象的特征属性,属性对象具有的各种特征 每个对象的每个属性都拥有特定值 例如:布兰尼和朱丽叶的体重不一样,60kg,布兰尼,属性,35岁,对象的特征方法,方法对象执行的操作,打单,收银,方法,刷卡,对象的属性和方法,列出尼古拉斯凯奇驾驶的这辆法拉利F360 Spider的属性和方法列出小狗对象的属性和方法,属性:品牌:法拉利型号:F360 Spider颜色:黄色价格:3

3、80万元 方法:发动停止加速,属性: 颜色:白色 方法: 叫跑吃,小结1,说一说教室里的对象 描述他们的属性和方法,颜色:黑色 品牌:BENQ 投影,姓名:张三 年龄:20 学习,类型:白炽灯 开 关 变亮 变暗,材制: 木质 支撑物品,封装,对象同时具有属性和方法两项特性 对象的属性和方法通常被封装在一起,共同体现事物的特性, 二者相辅相承,不能分割,谁看见过只有“完好的零件和颜色”而不能开动的汽车?,封装的示例,接口,采购经理,罗杰斯先生,法拉力公司,.,迪斯尼汽车公司,.,市场经理,雪莉女士,要求,封装的示例,有选择地提供数据,法拉力公司,迪斯尼汽车公司,封装的示例,实体法拉力公司,实体

4、迪斯尼汽车公司,Auti Ltd,.,Buto Ltd,.,从对象抽象出“类”,抽取出下列对象的属性和方法的共同特征,轿车,顾客,类,顾客类 轿车类,类是模子,确定对象将会拥有的特征(属性)和行为(方法),类是对象的类型 不同于int类型:具有方法,各种口味的球状冰淇淋,球状冰淇淋模子,类,类是用于组合各个对象所共有操作和属性的一种机制,形状类,动物类,汽车类,类的示例,“类是具有相同属性和行为的一组对象的集合”,类和对象的区别,类是概念模型,定义对象的所有特性和所需的操作,对象是真实的模型,类定义实体,对象是实际的实体,小结2,类和对象有什么区别呢? 类是抽象的概念,仅仅是模板,比如说:“人

5、” 对象是一个你能够看得到、摸得着的具体实体,比如:“小布什”,小布什,普京,克林顿,面向对象编程的基本概念,1 对象 (Object)对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。在面向对象的程序中,对象就是一组变量和相关方法的集合,其中变量表明对象的属性,方法表明对象所具有的行为。2 类 (Class)类是具有相同属性和行为的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。可以说类是对象的抽象化表示,对象是类的一个实例。3 消息 (Message)对象之间相互联系和相互作用的方式称为消息。,一个消息只要由5个部分组成:发送

6、消息的对象、接收消息的对象、传递消息的方法、消息的内容以及反馈信息。对象提供的服务是由对象的方法来实现,因此发送消息实际上就是调用对象的方法。通常,一个对象调用另一个对象中的方法,即完成了一次消息传递。,面向过程的程序设计,面向对象的编程思想,面向对象程序设计是把把复杂的问题按照现实世界中存在的形式分解成很多对象,这些对象以一定的形式交互(通讯、协调和配合)来实现整个系统。,面向对象的基本特性,封装性 继承性 多态性,封装性,封装性就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。封装的特性使得对象以外的部分不

7、能随意存取对象的内部数据(属性),保证了程序和数据不受外部干扰且不被误用。 面向对象的编程语言主要通过访问控制机制来实现封装,Java语言中提供了以下4种访问控制级别。 public: 对外公开,访问级别最高。 potected: 只对同一个包中的类或子类公开。 默认:只对同一个包中的类公开。 Private:不对外公开,只能在对象内部访问,访问级别最低,继承性,继承是一个类获得另一个类的属性和方法的过程。在Java语言中,通常我们具有继承关系的类称为父类(superclass,超类)和子类(subclass)。子类可以继承父类的属性和方法,同时又可以增加子类的新属性和新方法。,多态性,多态性

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

9、。 (2)类的修饰符用于说明类的性质和访问权限,包括public、private、abstract、final。 其中public表示可以被任何其他代码访问,abstract表示抽象类,final表示最终类,详细说明见后面章节。类体部分定义了该类所包括的所有成员变量和成员方法,成员变量,成员变量是类的属性,声明的一般格式为:变量修饰符 变量修饰符:public、protected、private、和默认(frieddlly)。成员变量,实例变量,类变量: 静态变量, static进行修饰,成员方法,成员方法定义的类的操作和行为,一般形式为:方法修饰符 ()方法体 成员方法修饰符主要有publi

10、c、private、protected、final、static、abstract和synchronized七种,前三种的访问权限、说明形式和含义与成员变量一致。 与成员变量类似,成员方法也分为实例方法和类方法。如果方法定义中使用了static ,则该方法为类方法。public static void main(String args)就是一个典型的类方法,方法重载,重载是指同一个类的定义中有多个同名的方法,但是每个重载方法的参数的类型、数量或顺序必须是不同的。每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法。,例如:class Area double getArea

11、(float r)return 3.14159*r*r;double getArea(float l,float w)return l*w; ,修饰符,3.2.3 对象,对象的创建 对象的引用 构造方法,对象,类是抽象,而对象是具体(实例化)。 对象的创建:创建对象的过程就是实例化类的过程 创建的步骤: 1、对象的声明 2、对象的实例化及对象的初始化,对象的创建,第一步:进行对象的声明。一般形式为: ;例如: Animal dog; 第二步:实例化对象,通过运算符new实现的。new 运算符为对象动态分配(即在运行时分配)实际的内存空间,用来保存对象的数据和代码,并返回对它的的引用。该引用就是

12、new分配给对象的内存地址。 一般形式为: =new ;例如: dog = new Animal( ) ; 以上两步也可合并:=new ,对象的创建(举例),从图中,我们可以看到对象的声明只是创建变量的引用,并不分配内存,要分配实际内存空间,必须new关键字。,对象的引用,对象创建之后,通过“”运算符用于访问对象中的成员变量和成员方法。 一般形式为: 由于类变量和类方法不属于某个具体的对象,因此我们也可以直接使用类型替代对象名访问类变量或类方法。 例如:Animal.age=3;Animal.eat( );,举例3-1 ObjectDemo.java,例3-1 ObjectDemo.java

13、public class ObjectDemo public static void main(String args) Person a = new Person();Person b = new Person();Person c =null;a.name = “张三“;Person.age = 18;b.name = “李四“;c=b;System.out.println(a.name + “ is “ + Person.age + “ years old“);System.out.println(b.name + “ is “ + Person.age + “ years old“);

14、System.out.println(c.name + “ is “ + Person.age + “ years old“);a.move();Person.eat(); ,class Person String name; / 实例变量static int age; / 类变量void move() / 实例方法System.out.println(“Person move“);static void eat() / 类方法System.out.println(“Person eat“); ,举例3-1 ObjectDemo.java(续),举例3-1 ObjectDemo.java(续)

15、,【程序解析】 类属于数据引用类型,代码第9行是利用对象的引用赋予值,对象b和C指向同一个堆内存,因此两个对象输出的内容是相同的。 Java中主要存在四块内存空间: (1)栈内存空间:保存所有对象的名称。 (2)堆内存空间: 保存每个对象的的具体属性内容。 (3)全局数据区: 保存static类型的属性。 (4)全局代码区:保存所有方法的定义。,构造方法,构造方法是定义在类中的一种特殊的方法,在创建对象时被系统自动调用,主要完成对象的初始化,即为对象的成员变量赋初值。对于Java语言中每个类,系统将提供缺省的不带任何参数的构造方法。如果程序中没有显示地定义类的构造方法,则创建对象时系统会调用缺

16、省的构造方法,一旦程序中定义了构造方法,系统将不再提供该缺省的构造方法。 构造方法具有以下特点: (1)构造方法名必须和类名完全相同,类中其他成员方法不能和类名相同。 (2)构造方法没有返回值类型,也不能返回void类型。其修饰符只能是访问控制修饰符,即public、private、protected中的任一个。 (3)构造方法不能直接通过方法名调用(显式调用),必须通过new运算符在创建对象时自动调用。 (4)一个类可以有任意个构造方法,不同的构造方法根据参数个数的不同或参数类型的不同进行区分,称之为构造方法的重载。 (5)构造方法可在类中由用户定义,若用户没有定义,系统将自动生成一个空构造方法。如 public Employee( ) ;,

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

当前位置:首页 > 中学教育 > 教学课件

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