问答题 阅读以下说明和Java代码,将应填入{{U}} (n) {{/U}}处的字句写在答题纸的对应栏内。 {{B}}[{{/B}}说明{{B}}]{{/B}} 已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElement()、 HumberOfElement()以及removeLastElement()。四个方法的含义分别为: void addElement(Object):在列表尾部添加一个对象; Object lastElement():返回列表尾部对象; int numberOfElement():返回列表中对象个数; void removeLastElement():删除列表尾部的对象。 现需要借助LinkeedList来实现一个Stack栈类,Java代码1和Java代码2分别采用继承和组合的方式实现。 {{B}}[{{/B}}Java代码1{{B}}]{{/B}} public class Stack extends binkedList { public void push(Object o) { //压栈 addElement (o); } public Object peek() { //获取栈顶元素 return{{U}} (1) {{/U}}; } public boolean isEmpty() { //判断栈是否为空 return numberOfElement () ==0; } public Object pop() { //弹栈 Object o=lastElement(); {{U}} (2) {{/U}}; return o; } {{B}}[{{/B}}Java代码2{{B}}]{{/B}} public class Stack { private{{U}} ( 3 ) {{/U}}; public Stack() { list = new LinkedList (); } public void push (Object o) { list. addElement (o); } public Object peek() { //获取栈顶元素 return list.{{U}} (4) {{/U}}; } public boolean isEmpty () { //判断栈是否为空 return list.numberOfElement()==0; } public Object pop(){ //弹栈 Object o =list.lastElement(); list.removeLastElement(); return o; } {{B}}[{{/B}}问题{{B}}]{{/B}} 若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第 index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)?{{U}} (5) {{/U}}(A.继承 B.组合)
【正确答案】
【答案解析】(1)lastElement() (2) removeLastElement() (3) LinkedListlist (4) lastElement() (5) A [解析] 根据代码注释,程序代码中空(1)处用来获取栈顶元素,而父类LinkedList提供的成员函数lastElement()可以实现此功能,因此此处调用该函数即可,所以空(1)处填写lastElement()。空(2)处主要执行“弹栈”操作,根据Objectpop()函数的要求,元素弹出栈主要有两个步骤,一是获取栈顶元素,即返回队列尾部对象;二是删除栈顶元素,即删除队列尾部的对象,调用removeLastElement()函数即可实现,所以空 (2)处应该填“removeLastElement()”。空(3)处要求定义一个对象,再根据后面程序代码的提示,可以知道该对象名字为list,类型为 LinkedList,所以空(3)处应填“LinkedList list”。空(4)处用于获取栈顶元素,即返回队列尾部的对象,类LinkedList的lastElement()函数即可实现该功能,所以空(4)处应填“lastElement()”。类的继承是指子类的对象拥有对父类的成员和属性进行访问的权限,通过继承可以使用父类提供的removeElement()方法,类的组合描述的是一个类内嵌其他类的对象作为成员的情况,描述的是一种包含和被包含的关系,所以通过组合Stack对象并不能访问LinkedList提供的方法removeElement(int index),所以空(5)应填A。