> 文档中心 > 面向对象经典题整理

面向对象经典题整理

文章目录

  • 前言
  • 一、请根据类图编写代码框架
  • 二、请根据场景描述绘制类图
    • 请根据代码绘制类图
  • 三、综合题

前言

面向对象就是把构成问题的事物分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述某个事物在解决问题中的行为。

类是面向对象中的一个很重要的概念,因为类是很多个具有相同属性和行为特征的对象所抽象出来的,对象是类的一个实例。
请添加图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、请根据类图编写代码框架

1、
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

public class house {private int roonNum;protected String address;private float area;public void show() {}public void paint(String color) {}public float getArea() {return 1;}}

2、
在这里插入图片描述

public class Book {private String title;private int pages;public void trunPage(int index) {System.out.println("The book has turn page on"+index);}public class sanDBook extends Book{private String material;public void play() {}public void turnPage(int index) {System.out.println("The 3DBook has turn page on"+index);}}}

3、
在这里插入图片描述

abstract class Animal {private String color;private String type;public abstract void cry(String sound);public void run() {}}

二、请根据场景描述绘制类图

1、工人(Worker)会使用(useTool)螺丝刀(Screwdriver)来完成日常维修工作
面向对象经典题整理
2、小汽车(Car)与轮胎的关系(Wheel)
面向对象经典题整理
3、圆(Circle)、矩形(Rectangle)和多边形(Polygon)都是形状(Shape)的一种。它们都可以移动(move),都可以变换大小(resize〉和显示(show)。但是圆具有自己的半径(radius),矩形拥有自己的长(width)和宽( height),多边形拥有自己的顶点列表( points)
在这里插入图片描述
4、公司(Company)是由部门(Department)构成的
面向对象经典题整理

请根据代码绘制类图

5、(1)

1)、public class Head { private Mouth mouth; public Head() { mouth = new Mouth();} …… }public class Mouth { …… }

在这里插入图片描述
(2)

2)、public class Car { private Engine engine; public Car(Engine engine) { this.engine = engine; }public void setEngine(Engine engine) {this.engine = engine; } …… } public class Engine { …… }

在这里插入图片描述
6、用户小李对数据展示系统 CustomerDataDisplay 发出请求,想要读取一些信息,进行图形创建并展示,
如下类图如何修改?

在这里插入图片描述
在这里插入图片描述

三、综合题

1、茶(Tea)、咖啡(Coffee)、啤酒(Beer),都属于饮品(Beverage)的一种,它们都具有品牌(brand)、类型(typeName)、产地(place)、价格(price)等特征,它们都有一定的制作方法(make)。但是,不同的饮品,制作的方法却完全不一样。
(1)、请通过类图将上述的关系表达出来
在这里插入图片描述
(2)、请用代码实现 Beverage 类和 Coffee 类

package Beverage;public class Beverage {String brand;String typeName;String place;String price;public void make() {System.out.println("我是饮品");}}
package Beverage;public class Tea extends Beverage{String brand;String typeName;String place;String price;public void make() {System.out.println("我是茶");}}
package Beverage;public class Coffee extends Beverage{String brand;String typeName;String place;String price;public void make() {System.out.println("我是咖啡");}}
package Beverage;public class Beer extends Beverage{String brand;String typeName;String place;String price;public void make() {System.out.println("我是啤酒");}}
package Beverage;public class Text {public static void main(String[] args) {Beverage b=new Beverage();Beverage T=new Tea();Beverage C=new Coffee();Beverage B=new Beer();b.make();T.make();C.make();B.make();}}

2、请为汽车厂家设计一套驱动车载音响(CarAudio)的协议,让凡是遵守这个协议的车载音响制造商所生产的产品,都能在汽车(Car)上使用。车载音响上的功能包括播放(play)、暂停(pause)、上一首(prev)、下一首(next)、调节声音大(turnUp)、调节声音小(turnDown)。目前有 Philips 和 BOSE两个品牌满足这个协议。
(1)、请通过类图表达自己的设计思想

在这里插入图片描述
(2)、实现类 CarAudio 和 BOSE 的代码

package CarAudio;public class BOSE implements CarAudio{public void play() {System.out.println("我是BOSE品牌上的播放键");}public void pause(){System.out.println("我是BOSE品牌上的暂停键");}public void prev(){System.out.println("我是BOSE品牌上的上一首");}public void next(){System.out.println("我是BOSE品牌上的下一首");}public void turnUp(){System.out.println("我是BOSE品牌上调节声音大的");}public void turnDown(){System.out.println("我是BOSE品牌上调节声音小的");}}
package CarAudio;public class Car {CarAudio carAudio;public void play() {carAudio.play();}public void pause() {carAudio.pause();}public void prev() {carAudio.prev();}public void next() {carAudio.next();}public void turnUp() {carAudio.turnUp();}public void turnDown() {carAudio.turnDown();}}
package CarAudio;public interface CarAudio {public void play();public void pause();public void prev();public void next();public void turnUp();public void turnDown();}
package CarAudio;public class Philips implements CarAudio{public void play() {System.out.println("我是Philips品牌上的播放键");}public void pause(){System.out.println("我是Philips品牌上的暂停键");}public void prev(){System.out.println("我是Philips品牌上的上一首");}public void next(){System.out.println("我是Philips品牌上的下一首");}public void turnUp(){System.out.println("我是Philips品牌上调节声音大的");}public void turnDown(){System.out.println("我是Philips品牌上调节声音小的");}}

(3)、请根据题 2 中给出的方案,用代码描述在一辆车上既可以使用 BOSE 音响,也可以使用 Philips音响的场景。

package CarAudio;public class BOSEText {public static void main(String[] args) {Car c=new Car();c.carAudio=new BOSE();c.play();c.pause();c.prev();c.next();c.turnUp();c.turnDown();}}
package CarAudio;public class PuilipsText {public static void main(String[] args) {Car c = new Car();c.carAudio = new Philips();c.play();c.pause();c.prev();c.next();c.turnUp();c.turnDown();}}