第3章 类和对象(一

合集下载

第3章补充案例

第3章补充案例

第3章弥补案例之宇文皓月创作案例3-1 定义学生类一、案例描述1、考核知识点编号:00103002名称:类和对象2、练习目标➢掌握类定义的方式➢掌握如何在类中定义成员变量和成员方法3、需求分析在面向对象的思想中最核心就是对象,在程序中创建对象的前提是需要定义一个类。

为了让初学者掌握类的定义方式,本案例将设计一个暗示学生的类,该类具有暗示姓名的属性name和暗示年龄的属性age,同时还具有暗示说话行为的方法speak(),用于输出学生的姓名和年龄。

4、设计思路(实现原理)1)使用class关键字定义一个暗示学生类型的类,类名为Student。

2)在Student类中定义两个成员变量name和age,分别用来暗示姓名和年龄。

其中,name的数据类型为String,变量age的数据类型为int。

3)在Student类中定义一个暗示说话行为的speak()方法,用于输出学生的姓名和年龄。

二、案例实现class Student{String name;int age;void speak() {System.out.println("我的名字是 "+name+",今年 "+age+"岁");}}三、案例总结1、Java语言严格区分大小写,class和Class是分歧的,在定义类时只能使用class关键字2、在Student类中,成员变量name是String类型,String暗示一个字符串,后面的章节会详细讲解3、思考一下:自己定义一个手机(Phone)类,在类中定义品牌(brand)和价格(price)属性,定义打电话的call()方法,代码如下所示public class Phone {String brand;double price;void call(){System.out.println("hi,how are you doing");}}案例3-2 同一对象被多个变量引用一、案例描述1、考核知识点编号:00103003名称:对象创建与使用2、练习目标➢掌握如何创建类的对象➢掌握如何使用两个或者多个变量引用同一个实例对象。

《Java面向对象程序设计》课件-第3章 类和对象

《Java面向对象程序设计》课件-第3章 类和对象

3.4.2 访问权限
35
练习3.4
1.[单选题]被声明为private、protected及public的类成员,对于在类的外部,以下说法中 ________是正确的?
A.都不能访问
B.都可以访问
C.只能访问声明为public的成员 员
D.只能访问声明为protected和public的成
2.[单选题]在Java语言中,被______修饰符修饰的成员变量只可以被该类本身访问。
20
实例变量VS类变量
实例变量必须用对象名访问 类变量可以用类名访问,也可以用对象名访问
21
3.3.2 实例方法和类方法
成员方法的定义:
[访问权限] 返回值类型 方法名([参数列表]){ 方法体
} public String getPassword() {
//实例方法,获取密码
return password;
11
对象的创建
声明对象变量
✓ 类名 对象名(对象的引用)
Car c1; c1=new Car("京A08L35");
创建对象 类名 对象名=new 构造方法(); Car c1=new Car("京A08L35");
new
12
main()方法
main()方法: public static void main(String args[])
类型。
private String carNum;
每个类都有一个默pu认b的li构c C造a方r法()({它没有任何参数),如果类 没有重新定义构造方ca法rN,u则m创=建"京对象A时08系L统3自4"动; 调用默认的 } 构造方法。否则,p创ub建li对c 象Ca时r调(S用tr自in定g义n的u构m造){方法。

java程序设计教程第六版 第3章

java程序设计教程第六版 第3章

1-13
String 类的常用方法
• 当String类的对象创建后,此对象的长度和值都不能修 改 • String类的对象是不可改变的 • 但是String类的一些方法可以,在原来String类对象的 基础上,返回新的String类对象 • 第79页,列出了String类的常用方法
1-14
字符串索引
1-17

• Java类库中的类采用包的方式组织管理。
例如:java.awt包中是完成绘图、图形用户界面创建的类
• 下面是java标准类库中的一些包:

目的
General support Creating applets for the web Graphics and graphical user interfaces Additional graphics capabilities Network communication Utilities XML document processing
ng java.applet java.awt javax.swing java.util javax.xml.parsers
1-18
import 语句
标准类库中,除ng包中的类系统自动引入外, 其他包的类使用时:
• 我们可以使用类的全名
java.util.Scanner scan = new java.util.Scanner (System.in);
title = new String ("Java Software Solutions");
调用 String类的构造函数, 构造函数是一个特殊的方法,用于建立对象
• 对象的创建也称作初始化。
• 一个对象是某个类的一个实例

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

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

面向对象的基本概念
❖ 对象(Object)是一个应用系统中用来描述客观 事物的实体,是具有特定属性(数据)和行为 (方法)的基本运行单位,是类的一个特定状态 下的实例。
❖ 类(Class)是Java代码的基本组织模块,是用 以描述一组具有共同属性和行为的对象的基 本原型,是对这组对象的概括、归纳与抽象 表达,它定义了本类对象所应拥有的状态属 性集及操作这组属性的行为方法集。
也可以一步完成,即:
类名称 对象变量 = new 类名称();
实例化对象(续)
❖ 一旦一个类的实例化对象产生,就可以通过该对象 访问类中定义的成员了。通过对象访问成员的基本 结构如下:
对象变量.属性 = 值; 对象变量.方法();
3.2 方法
任务2--Leabharlann 方法的定义【任务内容】给任务1中的媒体播放器类增加控制方 法
❖ JAVA的类由类的声明与类体两部分组成。
1、类的声明用来指定该类的访问修饰符、类的
名称、父类名称及实现接口等属性。声明类的完整 形式为: [public][abstract|final] class <类名> [extends<基类名> ]
[implements <接口列表>]
类名应该能够描述出类的 特征或作用,类名的第一 个字母通常要大写,如果 类名由多个单词组成,则 每一单词的首字母一般都
【范例 3-1】 设计一个媒体播放器类
class MediaPlayer{ //音乐文件路径 public String musicFile; //播放器音量,范围:0(静音)~100 public int soundLevel; //播放器状态 public boolean isPlaying;

第3章 时序图

第3章 时序图

3.3 类的划分
三种类型:
边界类(Entity) 实体类(Boundary) 控制类(Control)
1、边界类
位于系统与边界的交界处,例如窗体、对话 框、报表、与外部设备或系统交互的类等等; 边界类可以通过用例确定,因为活动者必须 通过边界类参与用例;
1、边界类
1、边界类
一个教师可以开设一到三门课,一门课有一到多名教师讲授
1、关联
受限关联
由关联类和限制符 可以唯一确定受限 制的类 例:一名顾客有多 个银行账户,但指 定的一个账户只能 对应一个客户,甚 至没有客户;
1、关联
关联类
把关联建立类
1、关联
关联约束/依赖
1、关联
聚合(aggregation)
收集相关信息
补充的需求规格说明 用例 项目词汇表
分析信息
名词、名词短语 动词、动词短语 类或属性 操作
3、寻找类
使用CRC卡片分析寻找类 脑力风暴收集信息 关键业务用例表示,,其他卡片作为属性
3.5 设计原则
开闭原则 Liskov替换原则 依赖倒置原则 接口分离原则

UserInterface
Library
DataBase
第3章 类图、对象图和包图
学习重点:
理解类图的基本概念 为系统建模类 建模类之间的关联关系 理解并建模泛化关系 了解依赖关系和实现关系 了解对象图和包图的概念 构造类图
3.1 类的定义
什么是类?
具有相似结构、行 为和关系的一组对 象的描述符。
类的组成:
属性 操作
<<import>> A B

第三章 类图

第三章 类图

3.1 类图的概念
图3-1电子商务网站的对象模型
3.1 类图的概念
2、类图的作用 类图常用来描述业务或软件系统的组成、结构和关系。
3、类图的组成元素 类 接口 协作 关系 注释 约束 包
3.2 UML中的类
1、类的表示 (1)类的定义
类是具有相似结构、行为和关系的一组对象的描述 符。 (2)类的表示
关于聚合与组合
2、泛化-Generalization
表示两个类元间“一般”与“特殊”的关系。 对应面向对象编程语言中类与类之间的继承关系。 “is a kind of”关系,XX是一种XX
Athlete
SwimmerBiblioteka Golfer3、实现-Realization
表达一种说明元素与实现元素之间的关系; 类和接口之间的关系是实现关系,表示类实现接口提供的
3.2 UML中的类
(7)类的约束 约束指定了类所要满足的一个或多个规则。 在UML中,约
束是用花括号括起来的自由文本。
Washing Machine
Brand name Model name Serial number Capacity Add clothes( ) Add detergent( ) Remove clothes( )
表示客户与提供者之间用不同的方法表现同一个概念, 通常一个概念更抽象,一个概念更具体。包括:
① 跟踪<<trace>>--声明不同模型中的元素之间存在一些 连接但不如映射精确。
② 精化<<refine>>--声明具有两个不同语义层次上的元 素之间的映射。
③ 派生<<derive>>--声明一个实例可以从另一个实例导 出。

java3-1

java3-1

4.方法


方法重载: 方法重载的意思是:一个类中可以有多个方法 具有相同的名字,但这些方法的参数必须不同。 或者是参数的个数不同,或者是参数的类型不 同。
class Area { float getArea(float r){ return 3.14f*r*r; } double getArea(float x,int y){ return x*y; }
double x; }
3.成员变量和局部变量 Example3_1_3.java

成员变量又分为实例 成员变量(简称实例 变量)和类变量(也 称静态变量) 。如果 成员变量的类型前面 加上关键字static,这 样的成员变量称做是 类变量或静态变量。
class People{ float a[ ]; static int boy;
void f(){ int boy; this.boy++; } }
4.方法


我们已经知道一个类的类体由两部分组成:变量的定 义和方法的定义。方法的定义包括两部分:方法声明 和方法体。 最基本的方法声明包括:方法返回的数据类型,方法 名和方法类型,以及参数。
方法类型 方法名(定义参数){ 方法体 }
3 2 1 0
101 76 39 32 4 21 34
101 76 39 32 4 34 21
101 76 39 32
101 76 39 34
不参与排序
34
4
32
4
21
21
冒泡排序

排序算法有多种,最简单的是冒泡排序。冒泡排序是一种借助交换进 行排序的方法。
6 第五趟5 升序 排序 4
3 2 1 0

第3章补充案例

第3章补充案例

案例
一、案例描述
1、考核知识点
编号:2
名称:类和对象
2、练习目标
掌握类定义的方式
掌握如何在类中定义成员变量和成员方法
3、需求分析
在面向对象的思想中最核心就是对象,在程序中创建对象的前提是需要定义一个类。为了让初学者掌握类的定义方式,本案例将设计一个表示学生的类,该类具有表示姓名的属性name和表示年龄的属性age,同时还具有表示说话行为的方法speak(),用于输出学生的姓名和年龄。
}else{
age =a;
}
}
void speak() {
System.out.println("我的名字是" + name + ",今年" + age + "岁");
}
}
public class Example02{
public static void main(String[] args) {
Student s1 = new Student();
4、设计思路(实现原理)
1)编写测试类Example02,将属性age的值设为-30,演示不合理现象。
2)对Student类进行修改,将name和age属性使用private修饰,然后定义getName()、setName(String n)、getAge()和setAge(int a)四个对外访问name和age的方法。
图3-5运行结果
从运行结果可以看出,由于实现了Division类的封装,在setDivisor(int mDivision)方法中对传入的值进行检查,从而避免程序中出现除数为0的错误。
案例
一、案例描述

第3章补充案例教学教材

第3章补充案例教学教材
二、案例实现
1、定义Example02类,代码如下所示:
public class Example02{
public static void main(String[] args) {
Student s1 = new Student();
= "小新";
s1.age = -30;
s1.speak();
double price;
void call(){
System.out.println("hi,how are you doing述
1、考核知识点
编号:00103003
名称:对象创建与使用
2、练习目标
掌握如何创建类的对象
掌握如何使用两个或者多个变量引用同一个实例对象。
3、需求分析
3)在setAge(int a)方法中对传入的参数进行检查,如果输入值为负数,则打印出“设置的年龄不合法”,如果不为负数,才将其设置为age属性的值。
4)对Example02类进行修改,在main()方法中创建Student类的实例对象,通过调用对象的setName(String n)和setAge(int a)方法来设置的name属性和age属性值,并调用speak()方法。
第3章补充案例

案例
一、案例描述
1、考核知识点
编号:00103002
名称:类和对象
2、练习目标
掌握类定义的方式
掌握如何在类中定义成员变量和成员方法
3、需求分析
在面向对象的思想中最核心就是对象,在程序中创建对象的前提是需要定义一个类。为了让初学者掌握类的定义方式,本案例将设计一个表示学生的类,该类具有表示姓名的属性name和表示年龄的属性age,同时还具有表示说话行为的方法speak(),用于输出学生的姓名和年龄。

c++教案第三章:类与对象

c++教案第三章:类与对象
5、析构函数是在撤消对象时由系统自动调用的。
在程序的执行过程中,当遇到某一对象的生存期结束时,系统自动调用析构函数,然后再收回为对象分配的存储空间。
对象在定义时自动调用构造函数,生存期即将结束时调用析构函数!
类中的成员数据是另一个类的对象。可以在已有抽象的基础上实现更复杂的抽象。
原则:不仅要负责对本类中的基本类型成员数据赋初值,也要对对象成员初始化。
类名(形参表);//构造函数的原型
//类的其它成员
};
类名::类名(形参表){//构造函数的实现
//函数体
}
类的构造函数承担对象的初始化工作,它旨在使对象初值有意义。
对构造函数,说明以下几点:
1.构造函数的函数名必须与类名相同。构造函数的主要作用是完成初始化对象的数据成员以及其它的初始化工作。
2.在定义构造函数时,不能指定函数返回值的类型,也不能指定为void类型。
由于构造函数属于类的成员函数,它对私有数据成员、保护的数据成员和公有的数据成员均能进行初始化。
当定义类对象时,构造函数会自动执行。
调用默认构造函数的语法:类名类对象名;
在程序中定义一个对象而没有指明初始化时,编译器便按默认构造函数来初始化该对象。
默认构造函数并不对所产生对象的数据成员赋初值;即新产生对象的数据成员的值是不确定的。
析构函数是在对象生存期即将结束的时刻由系统自动调用的。显式定义析构函数格式为:
类名::~析构函数名( ) {
语句;
}
若在类的定义中没有显式地定义析构函数时,系统将自动生成和调用一个默认析构函数,其格式为:
类名::~默认析构函数名( ) {
}
任何对象都必须有构造函数和析构函数,但在撤消对象时,要释放对象的数据成员用new运算符分配的动态空间时,必须显式地定义析构函数。

第3章 面向对象(上)_补充案例

第3章 面向对象(上)_补充案例

v1.0 可编辑可修改第三章补充案例案例3-1 定义学生类一、案例描述1、考核知识点编号:00103002名称:类和对象2、练习目标掌握类定义的方式掌握如何在类中定义成员变量和成员方法3、需求分析在面向对象的思想中最核心就是对象,在程序中创建对象的前提是需要定义一个类。

为了让初学者掌握类的定义方式,本案例将设计一个表示学生的类,该类具有表示姓名的属性name和表示年龄的属性age,同时还具有表示说话行为的方法speak(),用于输出学生的姓名和年龄。

4、设计思路(实现原理)1)使用class关键字定义一个表示学生类型的类,类名为Student。

2)在Student类中定义两个成员变量name和age,分别用来表示姓名和年龄。

其中,name的数据类型为String,变量age的数据类型为int。

3)在Student类中定义一个表示说话行为的speak()方法,用于输出学生的姓名和年龄。

二、案例实现class Student{String name;int age;1void speak() {"我的名字是 "+name+",今年 "+age+"岁");}}三、案例总结1、Java语言严格区分大小写,class和Class是不同的,在定义类时只能使用class关键字2、在Student类中,成员变量name是String类型,String表示一个字符串,后面的章节会详细讲解3、思考一下:自己定义一个手机(Phone)类,在类中定义品牌(brand)和价格(price)属性,定义打电话的call()方法,代码如下所示public class Phone {String brand;double price;void call(){"hi,how are you doing");}}案例3-2 同一对象被多个变量引用一、案例描述1、考核知识点编号:00103003名称:对象创建与使用2、练习目标2掌握如何创建类的对象掌握如何使用两个或者多个变量引用同一个实例对象。

管理信息系统(第二版)课后习题答案--第3章答案

管理信息系统(第二版)课后习题答案--第3章答案

管理信息系统(第二版)课后习题答案--第3章答案第3章参考答案一、单项选择题1.A2.B3.B4.D5.D6.C7.C8.A9.A10.D11.A12.C13.D14.D15.C16.D 17.C18.A19.B20.D21.B22.D23.D 24.B 25.D二、多选题1.ABD 2.ABD 3.AC 4.AC 5.ABC三、填空题1.自上而下,自下而上2.不能从整体上考虑问题3.整体性和逻辑性强4.小,大中5.结构化设计6.系统设计,系统实施7.自下而下8.面向对象的分析,面向对象的设计、面向对象的编程9.系统分析、系统设计、系统实施、系统运行维护和评价四、判断改错题1.F结构化生命周期法虽然开发周期较长,但目前还是一种比较普遍使用的方法。

2.T3.F在结构化生命周期法中,系统规划和分析是所有工作中的重中之重。

4.F原型法和生命周期法虽然思想不一样,但可以结合使用,先用原型化的过程获取需求,然后按照生命周期法的步骤进行设计实施。

5.T6.F系统分析阶段建立的是系统的逻辑模型。

7.T五、名词解释1.生命周期:任何系统都会经历一个由发生、发展、成熟、消亡、更新换代的过程,这个过程叫做系统的生命周期。

2.原型法:原型法是指系统开发人员在初步了解用户的基础上,借助功能强大的辅助系统开发工具,快速开发一个原型(初始模型),从而使用户及早地看到一个真实的应用系统。

在此基础上,利用原型不断提炼用户需求,不断改进原型设计,直至使原型变成最终系统。

3.对象:对象就是客观世界中的任何事物在计算机程序世界里的抽象表示,或者说,是现实世界中个体的数据抽象模型。

4.结构化系统开发方法:用系统工程的思想和工程化的方法,按用户至上的原则,结构化,模块化,自顶向下的对系统进行分析与设计。

具体来说就是先将整个信息系统开发过程化分为若干个独立的阶段,然后各阶段严格按步骤完成开发任务。

5.类,又称为对象类,是具有相同或相似结构、操作和约束规则的对象组成的集合,是一组对象的属性和行为特征的抽象描述。

第3章 OOP 基础语法

第3章 OOP 基础语法

class Program {
public void VoidMethod() { Console.WriteLine("this is VoidMethod."); } public int IntMethod() {
Console.WriteLine("this is IntMethod."); int i = 10; return i; } static void Main() { Program method = new Program(); int j = 5; method.VoidMethod(); Console.WriteLine("j={0}.", j); j = method.IntMethod(); Console.WriteLine("j={0}.", j); Console.ReadLine(); } }
Program aa = new Program(); Program bb = new Program("How are you!"); Program cc = new Program(10); Console.ReadLine(); } }
析构函数
形式:
~类名(){}
特性:
class Child {
class Child
{
public const bool AgeLessSix = true;
//常量
public string name;
//变量
private int age; public int Age { get; set; } public Child(string name, int age)

第3章 类图、对象图和包图

第3章  类图、对象图和包图

结构的核心。要使用类图,需要了解类和对象之间
的区别。类是对资源的定义,它所包含的信息主要
用来描述某种类型实体的特征以及对该类型实体的
使用方法。对象是具体的实体,它遵守类制定的规
则。从软件的角度看,程序通常包含的是类的集合
以及类所定义的行为,而实际创建信息和管理信息
的是遵守类的规则的对象。

类定义了一组具有状态和行为的对象,这些对
象具有相同的属性、操作、关系和语义。其中,属
性和关联用来描述状态。属性通常用没有身份的数
据值表示,如数字和字符串。关联则用有身份的对
象之间的关系来表示。行为由操作来描述,方法是
操作的实现。 6
类的绘制 : 分为上、中、下三层的矩形,上面书写名称,中部书写属 性,下部书写操作。为了图形的清晰和直观,中部和下部可以隐藏 。参见P43,图3-2,图3-3。
4、职责 指类或其他元素的契约或者义务。可以使用一个短语、一 个句子或者若干句子描述类的职责。
5、约束 指明类应该遵守的一个或多个规则。在UML规范中是用花 括号括起来的。 最后,为了添加更多的信息,还可以为类添加注释。
9
3.1.3 定义类
• 由于类是构成类图的基础,所以,在构造类图之前,首先要定义 类,也就是将系统要处理的数据抽象为类的属性,将处理数据的 方法抽象为类的操作。要准确地定义类,需要对问题域有透彻准 确地理解。在定义类时,通常应当使用问题域中的概念,并且, 类的名字要用类实际代表的事物进行命名。
protected: 在子类(派生类)中查看,使用和更新;
private: 类的内部查看,使用和更新。
其他可见性由程序开发语言定义。
在UML中可见性相应的符号:
public

数据结构与程序设计考试大纲

数据结构与程序设计考试大纲

《数据结构与程序设计》考试大纲一.考试大纲的性质数据结构与程序设计课程是计算机相关学科的专业基础课程,主要包括数据结构与算法分析和计算机语言程序设计的内容。

为帮助考生明确本课程的考试复习范围和有关要求,特制定本考试大纲。

本考试大纲主要根据指定参考书《数据结构与算法分析(C++ 版)(第二版)》((美)Clifford A. Shaffer著,张铭刘晓丹等译,北京:电子工业出版社,2010)、《C++面向对象程序设计》(谭浩强编著, 清华大学出版社,2006)编制而成。

适用于报考中国林业科学院硕士学位研究生的考生。

二.考试内容(一)数据结构考试内容第一部分基础知识和概念第1章数据结构和算法第2章数学预备知识第3章算法分析第二部分基本数据结构第4章线性表、栈和队列第5章二叉树第6章树第三部分排序和检索第7章内排序第8章文件管理和外排序第9章检索第10章索引技术第四部分应用与高级话题第11章图第12章线性表和数组高级技术第13章高级树形结构第14章分析技术第15章计算的限制(二)程序设计内容第1章C++的初步知识1.1 从C到C++1.2 最简单的C++程序1.3 C++对C的扩充1.4 C++程序的编写和实现1.5 关于C++上机实践第2章类和对象第3章关于类和对象的进一步讨论第4章运算符重载第5章继承与派生第6章多态性与虚函数第7章输入输出流第8章C++工具三.考试要求数据结构与程序设计作为计算机相关专业的基础和公共课程,要求考生掌握数据结构和算法分析的基本概念、掌握常用数据结构及其分析算法,了解常用面向对象的编程语言的特点和编程规范,能熟练应用C++程序语言编写和实现简单应用程序(如数据结构与算法等)。

了解数据结构算法与计算机程序设计的关系,具有综合运用所学知识分析和解决问题的能力。

四.试卷结构数据结构与程序设计各占50%。

1. 名词解释(30%)2. 简答题(40%)3. 论述题(30%)五.考试方式和时间考试方式:笔试考试时间:3小时主要参考书1.《数据结构与算法分析(C++ 版)(第二版)》,(美)Clifford A. Shaffer 著,张铭刘晓丹等译,北京:电子工业出版社,20102.《C++面向对象程序设计》,谭浩强编著, 清华大学出版社,20062。

课程概述

课程概述

论坛地址
一个非常好的Java技术论坛,有多个版块, 技术论坛,有多个版块, 一个非常好的 技术论坛 几乎涉及所有Java技术 几乎涉及所有 技术 / 一个非常流行的外国论坛网站 /
课程主要内容
参考资料
编程思想》 《Java编程思想》 Bruce Eckel (第3版) 机 编程思想 第 版 械工业出版社 《 Thing in Java 》 Bruce Echel 语言程序设计》 《Java语言程序设计》(第6版) Y. Daniel 语言程序设计 第 版 Yang著 机械工业出版社 著 Sun公司 公司Java网站 公司 网站
Java程序设计 程序设计
主讲教师:伞晓丽 主讲教师: 渤海大学Java精品课教学团队 精品课教学团队 渤海大学
程序设计》 《Java程序设计》目录 程序设计
第1章 Java 程序设计语言 第2章 java语言基础 第3章 Java的类和对象 第4章 数组与字符串 第5章 Java面向对象特征 第6章 Java基础语言类 第7章 异常处理与断言 第8章 Java输入输出 第9章 Java图形界面设计 第10章 事件处理与常用组 件 第11章 Java多线程编程 第12章 Java多媒体应用 第13章 Java网络编程 第14章 Java数据库编程 第15章 Java泛型与集合
课程目的
了解并掌握Java语言面向对象的特征; 语言面向对象的特征; 了解并掌握 语言面向对象的特征 掌握使用Java语言开发应用程序的方法; 语言开发应用程序的方法; 掌握使用 语言开发应用程序的方法 了解用JAVA开发项目的一般过程,培养简 开发项目的一般过程, 了解用 开发项目的一般过程 单Java项目的开发能力 ; 项目的开发能力 为进一步学习Java技术打下坚实基础. 技术打下坚实基础. 为进一步学习 技术打下坚实基础

JAVA基础 第3章类与对象_练习题

JAVA基础 第3章类与对象_练习题

第3章类与对象一.选择题1.下列不属于面向对象编程的特性是(D)。

A.封装性 B. 继承性 C. 多态性 D. 编译执行2.下列类的声明中不合法的是(C)。

A. class People{…}B. class 植物{…}C. Class A{…}D. public class 共有类{…3.下列方法的声明中不合法的是(C)。

A. float area(){…}B. void area(){…}C. double area(d){…}D. int area(int r){…}4. 下列构造方法(构造器)的调用中正确的是(C)。

A. 按照一般的方法调用B. 由用户直接调用C. 只能通过new自动调用D. 被系统调用5.下列程序运行的结果是(A)。

class Book{int width;int length;}public class A{static void f(Book p){p.width=20;p.length=40;}public static void main(String args[]){Book b=new Book();b.width=10;b.length=20;f(b);System.out.print(" "+b.width);System.out.print(" "+b.length);}}A. 20 40B. 10 40C. 10 20D. 以上都不对6.下列程序运行的结果是(D)。

public class A{static void f(int y){y=y+10;}public static void main(String args[]){double x=10;f(x);System.out.println(x);}}精选文库A. 10B. 20C. 10.0D. 程序编译错误7.下列程序运行的结果是(C)。

public class A{int z=20;static void f(int y){y=z;System.out.println(y);}public static void main(String args[]){f(10);}}A. 10B. 20C. 程序编译错误D. 以上都不对8. 以下代码的输出结果为(C)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

o1
o1.a o1.b o1.init o1.show
12
o2
12 34 代 码
34 代

o2.a o2.b o2.init o2.show
运行结果: 12 34 12 34
3.3.6 类的作用域
所谓类的作用域就是指在类声明中的 一对花括号所形成的作用域。 一个类的所有成员都在该类的作用域 内,一个类的任何成员可以访问该类的其他 成员。 而在类的外部,对该类的数据成员和成 员函数的访问则要受到一定的限制,有时甚 至是不允许的,这体现了类的封装功能。
3.3.3 对象中成员的访问
在类的外部可以通过类的对象进行访 问,访问的一般形式是: <对象名>.<公有数据成员名> 或 <对象名>.<公有成员函数名(参数表)> 其中“.”叫做对象选择符,简称点运算 符。
例3.2 使用类Coord的完整程序。 #include<iostream.h> 结果: class Coord { public: op1 i=5 op2 j=6 void setCoord(int a,int b){ x=a; y=b; } int getx(){ return x; } int gety(){ return y; } private: int x,y; }; void main() { Coord op1; int i,j; op1.setCoord(5,6); // 调用op1的setCoord(),初始化对象op1 i=op1.getx(); // 调用op1的getx(),取op1的x值 j=op1.gety(); // 调用op1的gety(),取op1的y值 cout<<"op1 i= "<<i<<" op1 j= "<<j<<endl; }
//文件名:person.hpp class Person { private: char name[10]; int age; char sex; public: void print(); };
用一个类来描述日期,其形式如下: class Date { public: void setDate(int y,int m,int d); void showDate(); private: int year; int month; int day; };
例:class Person{ private: char name[10]; char sex; int age; public: void print(); }; Person zh,c;
说明:P50 1、声明类的同时定义对象是一种全局变量。 2、在创建对象时,类被用作样板,对象被 称为类的实例,声明类时并不接收和存储 具体的值,只有定义对象后,系统才为对 象分配存储空间。
(2) 将成员函数以内联函数的形式进 行说明。在C++中,可以用下面两种格式 将成员函数声明为类的内联函数:
① 隐式声明 直接将函数声明在类内部。
例: #include <iostream.h> Class Person { private: char name[10]; int age; char sex; void print() {cout<<“name:”<<name; cout<<“,age:”<<age; cout<<“,sex:”<<sex<<endl; } }; inline void Person::print() { cout<<“name:”<<name; cout<<“,age:”<<age; cout<<“,sex:”<<sex<<endl; }
例如: class Coord{ public: void setCoord(int a,int b) { x=a; y=b;} int getx() { return x;} int gety() { retrun y;} private: int x,y; };

显式声明
这种成员函数在类外定义的一般形式是: inline 返回类型 类名::成员函数名(参数表) { // 函数体 }
3.1.2
类的构成
类声明的一般格式如下:: class 类名 { public: 公有数据成员; 公有成员函数; protected: 保护数据成员; 保护成员函数; private: 私有数据成员; 私有成员函数; }; <各成员函数的实现>
说明: private私有:只能在该类成员函数中被访问。(缺 省) public公有:可以被同一个类的其它成员访问,也 可由程序中的任何函数访问。 protected保护:与私有成员相似,在类的继承中有区 别。
3.3 对象的定义和使用
3.3.1 类与对象的关系 通常我们把具有共同属性和行为的事 物所构成的集合叫做类。 在C++中,可以把相同数据结构和相 同操作集的对象看成属于同一类。
3.3.2 对象的定义
(1)在声明类的同时,直接定义对象,即在声明类 的右花括号“}”后,直接写出属于该类的对象 名表。例如: class Coord { public: void setCoord(int,int); int getx(); int gety(); private: int x,y; } op1,op2;
例如上面的例子改为显式声明可变成如下形式: class Coord{ public: void setCoord(int,int); int getx(); int gety(); private: int x,y; }; inline void Coord::setCoord(int a,int b){ x=a; y=b;} inline int Coord::getx(){ return x;} inline int Coord::gety(){ return y; }
op1 op1.x0p1来自y代码op2op2.x op2.y
代码
代码
op1.setCoord
代码
op2.setCoord op2.getx
op1.getx
代码 代码
op1.gety
op2.getx
例:class Person { private: char name[10]; char sex; int age; public: void print(); } zh ,c;
说明:P46 1、 2、 3、 4、 5、 6、不可以对类中的数据成员进行初始化。 例:class Location { private: int x=0,y=0; //错误 ……… };
3.2
成员函数的声明
成员函数的声明通常采用以下两种方式: (1) 将成员函数以普通函数的形式进 行说明,这种成员函数在类外定义的一般 形式是: 返回类型 类名∷成员函数名(参数表) { ∶∶作用域运算符 <类名>::表明其后的东西是在此 // 函数体 类中声明的 }
3.3.4 类成员的访问属性
类成员有三种访问属性 : 公有( public )、 私有(private)和保护(protected)。 • 说明为公有的成员不但可以被类中成员函 数访问;还可在类的外部,通过类的对象进行访 问。 • 说明为私有的成员只能被类中成员函数访 问,不能在类的外部,通过类的对象进行访问。 • 说明为保护的成员除了类本身的成员函数 可以访问外,该类的派生类的成员也可以访问, 但不能在类的外部,通过类的对象进行访问。
第3章 类和对象(一) 本章内容: 1、类的构成; 2、成员函数的声明; 3、对象的定义与声明; 4、构造函数与析构函数; 5、对象的生存期; 6、小结。
教学重点与难点
1、深刻理解类的构成; 2、理解成员函数在类内的声明,及在类外的定义; 3、理解对象的定义与使用; 4、理解构造函数与析构函数的定义、特点; 用户自定义的、缺省的的构造函数与析构函数;拷 贝构造函数;并要理解系统对它们的调用;
3.1 类的构成
3.1.1 从结构到类
例3.1有关日期结构的例子。 #include <iostream.h> struct Date { int year; int month; int day; }; main() { Date date1; date1.year=2003; date1.month=8; date1.day=25; cout<<date1.year<<"."<<date1.month<<"."<<date1.day<<endl; return 0; }
3.3.5 对象赋值语句
例3.5 用对象赋值语句的例子。 #include<iostream.h> class abc{ public: void init(int i,int j) { a=i; b=j; } void show(){ cout<<a<<" "<<b<<endl; } private: I nt a,b; }; main() { abc o1,o2; o1.init(12,34); o2=o1; // 将对象o1数据成员的值赋给对象o2 o1.show(); o2.show(); return 0; }
#include<iostream.h> class Coord { public: void setCoord(int a,int b){ x=a; y=b; } int getx(){ return x; } int gety(){ return y; } private: int x,y; }; void main() { Coord op1; int i,j; op1.setCoord(5,6); // 调用op1的setCoord(),初始化对象op1 cout<<"op1 .x= "<<op1.x<<" op1.y= "<<op1.y<<endl; }
相关文档
最新文档