问题 问答题

阅读以下说明和Java代码,将应填入__(n)__处的字句写在答题纸的对应栏内。

【说明】已知类LinkedList表示列表类,该类具有四个方法:addElernent()、lastElement()、numberOfElement()以及removeLastElement()。四个方法的含义分别为:voidaddElement(Object):在列表尾部添加一个对象;ObjectlastElement():返回列表尾部对象;intnumberOfElement():返回列表中对象个数;voidremoveLastElement():删除列表尾部的对象。现需要借助LinkedList来实现一个Stack栈类,Java代码1和Java代码2分别采用继承和组合的方式实现。【Java代码1】

【Java代码2】

【问题】若类LinkedList新增加了一个公有的方法removeElement(intindex),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(intindex)?__(5)__(A.继承B.组合)

答案

参考答案:

(1) lastElement()

(2) removeLastElement()

(3) LinkedList list

(4) lastElement()

 (5)A

解析:

本题考查面向对象基本概念和Java语言程序设计能力。   继承和组合是面向对象程序设计中复用的基本手段。继承的方式是在实现类的过程中指定其父类,则该类将自动拥有父类的属性和方法;组合方式则是将某类的 对象作为该类的成员,通过成员使用该类的属性和方法。   本题中Java代码1采用的是继承方式,因此在Stack类中可以直接使用LinkedList类中定义的方法。空缺(1)要求获得栈顶元 素,LinkedList类提供了lastElement()方法获得列表尾部的元素,因此可使用该方法获得栈顶元素;空缺(2)位于Stack类的 pop()方法中,该方法不仅要获得栈顶元素,还要将栈顶元素删除,因此可以直接复用LinkedList类中的removeLastElement() 方法。   本题中Java代码2采用的是组合方式,因此在Stack类中需要通过LinkedList对象来使用其属性和方法。Stack类中的peek()方 法要求获得栈顶元素,list一定是LinkedList类型的对象,因此空缺(3)应该定义link成员变量,空缺(4)应该调用link对象获得队列 的尾部元素方法。 若LinkedList方法新增加了一个公有的removeElement(int index)方法,采用继承方式的子类对象可直接使用该方法,而采用组合方式则必须通过对象形式进行访问,因此必须在Stack类中增加新的方法,并在该 方法中通过list对象调用removeElement(int indeX)。

选择题
单项选择题