Java程序设计项目化教程章 (3)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<对象名>.<成员> 由于类变量和类方法不属于某个具体的对象,因此我们也 可以直接使用类型替代对象名访问类变量或类方法。 例如:访问Animal类中的类变量和类方法。
Animal.age=3; Animal.eat();
第3章 任务3——创建考试系统中的试题类
例3-1 ObjectDemo.java
}
}
第3章 任务3——创建考试系统中的试题类
4.方法重载
方法重载是类的重要特性之一。重载是指同一个类的定义
中有多个同名的方法,但是每个重载方法的参数类型、数量或
顺序必须是不同的。每个重载方法可以有不同的返回类型,但
返回类型并不足以区分所使用的是哪个方法。
例如:定义一个Area类,其中定义了同名方法getArea,
第3章 任务3——创建考试系统中的试题类 图3-2 面向对象的程序设计举例
第3章 任务3——创建考试系统中的试题类
3.面向对象的基本特性 面向对象的编程主要体现以下三个特性。 1) 封装性 面向对象编程的核心思想之一就是封装性。封装性就是把 对象的属性和行为结合成一个独立的单元,并且尽可能隐蔽对 象的内部细节,对外形成一个边界,只保留有限的对外接口, 使之与外部发生联系。封装的特性使得对象以外的部分不能随 意存取对象的内部数据(属性),保证了程序和数据不受外部干 扰且不被误用。
5.修饰符 定义类及类成员时,可以通过一些关键字对它们的访问权 限进行限制,这些关键字称为修饰符。最常用的修饰符是 public(公共的)、protected(保护的)和private(私有的),如 果缺省修饰符,则使用默认的访问权限,如表3-1所示。
第3章 任务3——创建考试系统中的试题类
表3-1 常用修饰符及其访问范围
new运算符为对象动态分配(即在运行时分配)实际的内存 空间,用来保存对象的数据和代码,并返回对它的引用。该引 用就是new分配给对象的内存地址。一般形式为
<对象名> =new <类名>; 例如:
dog = new Animal(); 以上两步也可合并,形式为
<类名> <对象名>=new <类名>
第3章 任务3——创建考试系统中的试题类
String name;
// 实例变量
static int age; // 类变量
第3章 任务3——创建考试系统中的试题类
void move(){
// 实例方法
System.out.println(“animal move”);
}
static void eat(){ //类方法
System.out.println("animal eat");
1 public class ObjectDemo{
2 public static void main(String [] args){
3
Animal a=new Animal();
4
Animal b=new Animal();
5
a.name="Dog";
6
Animal.age=3;
7
b.name="Cat";
第3章 任务3——创建考试系统中的试题类
3.2.3 对象 1.对象的创建 对象的创建分为两步: (1) 进行对象的声明,即定义一个对象变量的引用。 一般形式为 <类名> <对象名>; 例如:声明Animal类的一个对象dog。 Animal dog;
第3章 任务3——创建考试系统中的试题类
(2) 实例化对象,为声明的对象分配内存。这是通过运算 符new实现的。
第3章 任务3——创建考试系统中的试题类
第3章 任务3——创建考试系统中的试题类
3.1 任务描述 3.2 技术要点 3.3 任务实施
第3章 任务3——创建考试系统中的试题类
3.1 任 务 描 述
本章任务是创建考试系统中所需要的试题类 (Testquestion类),包括试题内容、答案、用户选择的答案等 属性,以及获取试题、设置选择的答案、获取选择的答案、设 置标准答案、获取标准答案、检查答案正确与否等方法。
第3章 任务3——创建考试系统中的试题类
2) 继承性 继承是一个类获得另一个类的属性和方法的过程。在Java 语言中,通常我们将具有继承关系的类称为父类(superclass, 超类)和子类(subclass)。子类可以继承父类的属性和方法, 同时又可以增加子类的新属性和新方法。例如,作为“人类” 的子类“中国人”,除了继承了“人类”的属性和方法,同时 也具有自己所特有的新属性和新方法。
实现了方法的重载。
class Area{
double getArea(float r)
//计
算圆的面积
{
第3章 任务3——创建考试系统中的试题类
return 3.14159*r*r;
}
double getArea(float l,float w)
//
计算矩形的面积
{
return l*w;
}
}
第3章 任务3——创建考试系统中的试题类
第3章 任务3——创建考试系统中的试题类
2.面向对象的编程思想 面向过程的程序设计,例如C程序设计采用的是一种自上 而下的设计方法,把复杂的问题一层层地分解成简单的过程, 用函数来实现这些过程,其特征是以函数为中心,用函数来作 为划分程序的基本单位,数据在过程式设计中往往处于从属的 位置,如图3-1所示。
问权限、说明形式和含义与用于修饰成员变量时一致。
与成员变量类似,成员方法也分为实例方法和类方法。如
果方法定义中使用了修饰符static,则该方法为类方法。
public static void main(String [] args)就是一个典型的
类方法。
例如:定义一个Animal类。
public class Animal {
3.成员方法 成员方法定义类的操作和行为,一般形式为
[方法修饰符] <方法返回值类型> <方法名>([<参数 列表>])
{ 方法体
}
第3章 任务3——创建考试系统中的试题类
成员方法修饰符主要有public、private、protected、
Baidu Nhomakorabea
final、static、abstract和synchronized七种,前三种的访
第3章 任务3——创建考试系统中的试题类
3) 多态性 多态性是指在继承关系中,父类中定义的属性或方法被子 类继承之后,可以具有不同的数据类型或表现出不同的行为。 这使得同一个属性或方法在父类及其各子类中具有不同的含义。 例如,哺乳动物有很多叫声,狗和猫是哺乳动物的子类,它们 的叫声分别是“汪汪”和“喵喵”。
8
System.out.println(b.name+" is "+b.age+"
years old");
9}
10 }
第3章 任务3——创建考试系统中的试题类
3.构造函数 构造函数是定义在类中的一种特殊的方法,在创建对象时 被系统自动调用,主要完成对象的初始化,即为对象的成员变 量赋初值。对于Java语言中的每个类,系统将提供缺省的不带 任何参数的构造函数。如果程序中没有显式地定义类的构造函 数,则创建对象时系统会调用缺省的构造函数。一旦程序中定 义了构造函数,系统将不再提供该缺省的构造函数。
第3章 任务3——创建考试系统中的试题类
3.2.2 类 1.类的定义 类通过关键词class来定义,一般形式为 [类定义修饰符] class <类名> { //类体 [成员变量声明] [成员方法] } 说明: (1) 类的定义通过关键字class来实现,所定义的类名应
符合标识符的规定,一般类名的第一个字母大写。
第3章 任务3——创建考试系统中的试题类
(2) 类的修饰符用于说明类的性质和访问权限,包括 public、private、abstract、final。其中,public表示可以 被任何其他代码访问;abstract表示抽象类;final表示最终 类,详细说明见后面章节。
(3) 类体部分定义了该类所包括的所有成员变量和成员方 法。
第3章 任务3——创建考试系统中的试题类
3.2 技 术 要 点
3.2.1 面向对象编程概述 面向对象编程(Object Oriented Programming, OOP)是当
今最流行的程序设计技术,它具有代码易于维护、可扩展性好 和代码可重用等优点。面向对象的设计方法的基本原理是按照 人们习惯的思维方式建立问题的模型,模拟客观世界。从现实 世界中客观存在的事物(即对象)出发,并且尽可能运用人类的 自然思维方式来构造软件系统。Java是一种面向对象的程序设 计语言。
对于类的成员,若被声明为public,则可以被任何地方的 代码访问,即访问权限不受包的限制;若被声明为private, 则只能被同一个类中的其他成员所访问,并且该成员不能被子 类继承;若被声明为protected,则可由继承的子类访问,也 可由包内其他元素访问。对于类的成员,Java缺省的仍然是包 级访问权限。
2.成员变量 成员变量是类的属性,声明的一般格式为
[变量修饰符] <成员变量类型> <成员变量名> Java语言中,用于说明变量的访问权限的修饰符包括 public、protected、private和friendly(默认)。
第3章 任务3——创建考试系统中的试题类
成员变量分为实例变量和类变量。实例变量记录了某个特 定对象的属性,在对象创建时可以对它赋值,只适用于该对象 本身。变量之前用static进行修饰,则该变量成为类变量。类 变量是一种静态变量,它的值对于这个类的所有对象是共享的, 因此它可以在同一个类的不同对象之间进行信息的传递。
可见度 同一类中可见 同一包中对子类可见 同一包中对非子类可见 不同包中对子类可见 不同的包中对非子类可见
public 是 是 是 是 是
protected 是 是 是 是 否
private 是 否 否 否 否
缺省 是 是 是 否 否
第3章 任务3——创建考试系统中的试题类
该表中所涉及的包及子类的概念,我们将在后续章节进行 详细介绍。对于Java中定义的类,只能被public或缺省修饰符 修饰。其中public修饰的类可以供所有的类访问。Java缺省修 饰符限定的是包级访问权限,即在同一个包下的类都可以访问。 类不能被private或protected修饰符修饰。
第3章 任务3——创建考试系统中的试题类 图3-1 面向过程的程序设计
第3章 任务3——创建考试系统中的试题类
面向对象程序设计是把复杂的问题按照现实世界中存在的 形式分解成很多对象,这些对象以一定的形式进行交互(通信、 协调和配合),以此来实现整个系统。在图3-2的例子中,无锡 的同学A通过邮局将花送给在北京的同学B。同学A只需将同学B 的地址、花的品种告诉邮局,通过同学B所在地的邮局联系花 商,使花商准备这些花,并与送花人联系送花即可。其中,可 将同学A、同学B、邮电局、送花人看作对象。 对象之间相互 通信,发送消息,请求其他对象执行动作来完成送花这项任务。 对于同学A、B,则不必关心整个过程的细节。
例如: Animal dog = new Animal();
从图3-3中,我们可以看到对象的声明只是创建变量的引 用,并不分配内存,要分配实际内存空间,必须使用new关键 字。
第3章 任务3——创建考试系统中的试题类 图3-3 创建对象的过程
第3章 任务3——创建考试系统中的试题类
2.对象的引用 对象创建之后,通过“.”运算符访问对象中的成员变量 和成员方法。 一般形式为
第3章 任务3——创建考试系统中的试题类
3) 消息(Message) 对象之间相互联系和相互作用的方式称为消息。一个消息 由五个部分组成:发送消息的对象、接收消息的对象、传递消 息的方法、消息的内容以及反馈信息。对象提供的服务是由对 象的方法来实现的,因此发送消息实际上就是调用对象的方法。 通常,一个对象调用另一个对象中的方法,即完成了一次消息 传递。
第3章 任务3——创建考试系统中的试题类
1.面向对象编程的基本概念 1) 对象(Object) 对象是系统中用来描述客观事物的一个实体,它是构成系 统的一个基本单位。在面向对象的程序中,对象就是一组变量 和相关方法的集合。其中,变量表明对象的属性;方法表明对 象所具有的行为。 2) 类(Class) 类是具有相同属性和行为的一组对象的集合,它为属于该 类的所有对象提供了统一的抽象描述,其内部包括属性和行为 两个主要部分。可以说类是对象的抽象化表示,对象是类的一 个实例。
相关文档
最新文档