第 7 章 面向对象编程

类和对象

1. 简述类和对象之间的关系

2. 对象的引用和对象本身分别存在哪块存储区? 3. 方法签名由哪些部分组成?

4. 创建一个Teacher类,要求描述姓名、性别、年龄、薪水,定义一个方法,用于在教师

原有薪水的基础上增加5000,再定义一个TeacherTest类,创建一个Teacher对象并初始化对象的各属性值,调用教师增加薪水的方法,并将增加薪水后的教师信息输出。 5. 小红养了两只猫,一只叫小黑,今年2岁,黑色,另一只叫小白,今年5岁,白色。请

编写一个程序,要求当用户输入小猫的名字时,就显示猫的名字、年龄和颜色。如果用户输入的小猫名字错误,则显示“小红没有养这只猫”。

封装、继承

1. 编写一个类Student,代表学员,要求:

1) 具有属性:姓名、年龄、性别、专业

2) 具有方法:自我介绍,负责输出该学员的姓名、年龄、性别以及专业 3) 具有两个带参数的构造方法:

第一个构造方法中,设置学员的性别为男,专业为Android,其余属性的值由参数给定;第二个构造方法中,所有属性都由参数给定

编写测试类StudentTest进行测试,分别以两种方式对两个Student对象进行初始化,并分别调用他们的自我介绍方法,看看输出结果是否正确。 2. 需求

1) 定义一个(Person)类,包含属性:姓名,年龄,性别;写好相关的方法,能够构造的

时候初始化或者后续修改属性值。

2) 定义一个Employee类继承于Person类,包含新的属性:职位;写好相关的方法,

能够构造的时候初始化或者后续修改属性值,重写equals方法,规则:当两个对象的姓名,年龄,性别,职位都相等时返回true,否则返回false。

3) 写一个测试类进行相关测试(要求可以打印对象的信息,能够比较对象是否\相等\)。 效果:

3. 假设现在需要对员工进行建模,员工包含3个属性:工号、姓名、工资。经理也是员工,

除了含有员工的属性外,另外还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。

4. 用面向对象编程的思想,设计一个猜拳游戏,完成人机猜拳互动游戏的开发。

功能:

1) 选取对战角色 2) 猜拳 3) 记录分数

效果图:

提示:

先思考这个程序中一共涉及到多少个类,需要创建多少个对象。

5. 为某音像店开发一个迷你DVD管理器,实现DVD碟片的管理,包括如下功能:新增DVD、

查看DVD、删除DVD、借出DVD、归还DVD。(后台使用数组来存放DVD对象。默认最多存放100个) 设计:

1) DVD类(属性:id ,name ,lendCount,lendDate,status)(默认每张DVD都是唯一的)

lendCount字段每借一次加1

2) DVDDB类(提供一个动态数组来保存多张DVD)

3) DVDManager类(提供操纵功能),添加DVD、查看DVD、删除DVD、借出DVD、归还

DVD、DVD排行榜(按借出次数降序排序),退出系统 效果图:

多态

1. 张三可以开关家里的任何电器,比如电灯、电视、电扇等。使用继承和多态来实现开关

电器的方法。

2. 学校中心配备一台打印机(可以是黑白打印机,也可以是彩色打印机)。中心可以通过

打印机打印学员的个人信息(张三和李四等)。通过继承和多态来设计这个程序,使程序具有更好的扩展性和维护性。

3. 模拟一个军队作战,军队里面有各种兵,骑兵,步兵等等。每种兵的攻击敌人方式不一

样。建立各种各样的兵,至少3种,然后建立一个军官,军官也会上场去攻击敌人,但是军官还有一种行为,就是发号,军官发号了,无论什么兵都去战场攻击敌人,也可以指定哪种兵去攻击敌人。最后程序运行效果就是一个军官开始发号,然后所有被指定的士兵包括军官都去打仗,显示每个人攻击敌人的方式。 4. 用Java程序完成以下场景:

有一个主人(Master类),他养了两只宠物(Pet类),一只宠物是狗(Dog类),名字叫“旺财”,另一只宠物是猫(Cat类),名字叫“小花”,现在有两种食物(Food

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4