阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElemcnt()、 numberOfElement()以及removeL

admin2010-04-12  49

问题 阅读以下说明和Java代码,将应填入  (n)  处的字句写在答题纸的对应栏内。
【说明】
已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElemcnt()、
numberOfElement()以及removeLastElement()。四个方法的含义分别为:
void addElement(Object):在列表尾部添加一个对象;
Object lastElement():返回列表尾部对象;
int numberOfElement():返回列表中对象个数;
void removeLastElement():删除列表尾部的对象。
现需要借助LinkedList来实现一个Stack栈类,Java代码1和Java代码2分别采用继承和组合的方式实现。
【Java代码1】
public class Stack extends LinkedList{
public void push(Object o){  //压栈
addElement(O);
)
public Object peek(){    //获取栈顶元素
return  (1 )  ;
)
public boolean isEmpty()(    //判断栈是否为空
return numberOfElement()==0 ;
)
public Object pop()(  //弹栈
Object o=lastElement();(2);
return o;
)
)
【Java代码2】
public clasB Stack{
private  ( 3)  ;
public Stack(){
list=new LinkedList();
}
public void push(Object o){
1ist.addElement(o);
}
public Object peek(){  //获取栈顶元素
return list.  (2)  ;
}
public boolean isEmpty(){    //t,1断栈是否为空
return 1ist.numberOfElement()==0;
}
}
public Object pop()(  //弹栈
Object o=list.1astElement();
1ist.removeLastElement();
return o;
}
}
【问题】
若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)?  (5)    (A.继承B.组合)

选项

答案(1)lastElement() (2)removeLast Element() (3)LinkedList list(4)lastElement() (5)A

解析 根据代码注释,程序代码中空(1)处用来获取栈顶元素,而父类LinkedIjst提供的成员函数。lastElement()可以实现此功能,因此此处调用该函数即可,所以空(1)处填写lastElement()。空(2)处主要执行“弹栈”操作,根据Object pop()函数的要求,元素弹出栈主要有两个步骤,一是获取栈顶元素,即返回队列尾部对象;二是删除栈顶元素,即删除队列尾部的对象,调用removeLastElement()函数即可实现,所以空(2)处应该填“removeLastElemeNt()”。空(3)处要求定义一个对象,再根据后面程序代码的提示,可以知道该对象名字为list,类型为IinkedIjst,所以空(3)处应填“LinkedList list”。空(4)处用于获取栈顶元素,即返回队列尾部的对象,类LinkedList的lastElement()函数即可实现该功能,所以空(4)处应填“lastElement()”。类的继承是指子类的对象拥有对父类的成员和属性进行访问的权限,通过继承可以使用父类提供的removeElement()方法,类的组合描述的是一个类内嵌其他类的对象作为成员的情况,描述的是一种包含和被包含的关系,所以通过组合Stack对象并不能访问LinkedList提供的方法removeElement(int.index),所以空(5)应填A。
转载请注明原文地址:https://jikaoti.com/ti/lXW7FFFM
0

最新回复(0)