
第8章对象和类
1 第8章 对象和类

动因学习过前几章的知识之后,你已经能够使用选择、循环、方法和数组解决很多程序设计问题。但是,这些Java的特性还不足够用来开发图形用户界面和大型软件系统。假设你希望开发一个如下所示的图形用户界面。该如何用程序实现它呢?ShowGUlComponentsBoldFreshmanCancelEnteryourname:TvpeNameHerelltalicRedYellowOK
2 动因 学习过前几章的知识之后,你已经能够使用 选择、循环、方法和数组解决很多程序设计 问题。但是,这些Java的特性还不足够用来开 发图形用户界面和大型软件系统。假设你希 望开发一个如下所示的图形用户界面。该如 何用程序实现它呢?

学习目标描述对象和类,使用类来建模对象(第8.2节)使用UML图形符号来描述对象和类(第8.2节)演示如何定义类以及如何创建对象(第8.3节)使用构造方法创建对象(第8.4节)。通过对象引用变量访问对象(第8.5节)。使用引用类型定义引用变量(第8.5.1节)使用对象成员访问操作符()来访问对象的数据和方法(第8.5.2节)。定义引用类型的数据域并给对象的数据域赋默认值(第8.5.3节)。区分对象引用变量与基本类型变量的不同(第8.5.4节)。在Java库中使用Date类、Random类和IFrame类(第8.6节)。区分实例变量与静态变量,实例方法与静态方法的不同(S8.7节)定义有恰当的get方法和set方法的私有数据域(第8.8节)。封装数据域以便于类的维护(第8.9节)。开发带对象参数的方法并区分基本类型参数和对象类型参数的不同(第8.10节)在数组中存储和处理对象(第8.11节)
3 学习目标 描述对象和类,使用类来建模对象(第8.2节)。 使用UML图形符号来描述对象和类(第8.2节)。 演示如何定义类以及如何创建对象(第8.3节)。 使用构造方法创建对象(第8.4节)。 通过对象引用变量访问对象(第8.5节)。 使用引用类型定义引用变量(第8.5.1节)。 使用对象成员访问操作符(.)来访问对象的数据和方法(第8.5.2节)。 定义引用类型的数据域并给对象的数据域赋默认值(第8.5.3节)。 区分对象引用变量与基本类型变量的不同(第8.5.4节)。 在Java库中使用 Date类、Random类和JFrame类 (第8.6节)。 区分实例变量与静态变量,实例方法与静态方法的不同(§8.7节)。 定义有恰当的get方法和set方法的私有数据域(第8.8节)。 封装数据域以便于类的维护(第8.9节)。 开发带对象参数的方法并区分基本类型参数和对象类型参数的不同(第8.10节)。 在数组中存储和处理对象(第8.11节)

面向对象程序设计概念面向对象程序设计(OOP)就是使用对象进行程序设计。对象表示现实世界中可以明确标识的一个(object)实体。例如:一名学生、一张桌子、一个圆、一个按钮,甚至一笔贷款都可以被视为对象。每个对象都有自己独特的标识、状态和行为。一个对象的状态是指那些具有当前值的数据域(也称为属性)的集合。一个对象的行为由一个方法的集合定义
4 面向对象程序设计概念 面向对象程序设计(OOP)就是使用对象进行程序 设计。 对象(object)表示现实世界中可以明确标识的一个 实体。 例如:一名学生、一张桌子、一个圆、一个按钮,甚至一笔 贷款都可以被视为对象。每个对象都有自己独特的标识、状 态和行为。 一个对象的状态是指那些具有当前值的数据域(也 称为属性)的集合。一个对象的行为由一个方法的 集合定义

对象一个类模版ClassName:CircleData Fieldsradius isMethods:getAreaCircle类的Circle Object 2Circle Object 3CircleObject1三个对象Data Fields:Data FieldsData Fieldsradiusis25125radiusisradiusis10一个对象具有状态和行为。状态定义了对象而行为定义了对象做什么
5 对象 一个对象具有状态和行为。状态定义了对象而 行为定义了对象做什么。 Class Name: Circle Data Fields: radius is _ Methods: getArea Circle Object 1 Data Fields: radius is 10 Circle Object 2 Data Fields: radius is 25 Circle Object 3 Data Fields: radius is 125 一个类模版 Circle 类的 三个对象

类类是定义相同类型对象的结构。Java类使用变量来定义数据域,而用方法来定义行为类还提供了一种特殊类型的方法,这种方法被称为构造函数,当你用类来构建对象时会调用构造方法
6 类 类 是定义相同类型对象的结构。Java类使用变 量来定义数据域,而用方法来定义行为。 类还提供了一种特殊类型的方法,这种方法被 称为构造函数,当你用类来构建对象时会调用 构造方法

类classcircle/** The radius of this circle */double radius = 1.0;数据域/★* Construct a circle object *circle)(1构造方法/** Construct a circle object */Circle(double newRadius)radius = newRadius;1/** Return the area of this circle */方法double getArea() {return radius * radius * 3.14159;1
7 类 class Circle { /** The radius of this circle */ double radius = 1.0; /** Construct a circle object */ Circle() { } /** Construct a circle object */ Circle(double newRadius) { radius = newRadius; } /** Return the area of this circle */ double getArea() { return radius * radius * 3.14159; } } 数据域 方法 构造方法

类图UML类名CircleUML ClassDiagram数据域radius:double构造方法和Circle()一般方法Circle(newRadius: double)getAreaO:double对象的circle3:Circlecircle2:Circlecirclel:CircleUML符号radius=25radius=125radius=1.0
8 UML 类图 Circle radius: double Circle() Circle(newRadius: double) getArea(): double circle1: Circle radius = 1.0 类名 数据域 构造方法和 一般方法 circle2: Circle radius = 25 circle3: Circle radius = 125 UML Class Diagram 对象的 UML 符号

举例:定义类和创建对象目标:演示创建对象、访问数据和使用方法。TestCirclelRun
9 举例:定义类和创建对象 目标:演示创建对象、访问数据和使用 方法。 TestCircle1 Run

举例:定义类和创建对象目标:演示创建对象、访问数据和使用方法。TVTestTVRun10
10 举例:定义类和创建对象 目标:演示创建对象、访问数据和使用 方法 。 TestTV Run TV