java Enumeration接口的问题
importjava.util.*;//下面用到的Vector类和Enumeration接口都在此包中publicclassTestVector{publicstatic...
import java.util.*; //下面用到的Vector类和Enumeration接口都在此包中
public class TestVector
{
public static void main(String [] args)
{
int b=0;
Vector v=new Vector();
System.out.println("Please Enter Number:");
while(true)
{
try
{
b= System.in.read();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
if(b=='\r' || b== '\n')
break;
else
{
int num=b-'0';
v.addElement(new Integer(num));
}
}
int sum=0;
Enumeration e=v.elements();
while(e.hasMoreElements())
{
Integer intObj=(Integer)e.nextElement();
sum += intObj.intValue();
}
System.out.println(sum);
}
}
以上也算一段古老的代码了(很多论坛看到),但是翻阅了大半天还是有点东西没弄懂:
Enumeration e=v.elements();
这句我是不是应该理解成e是一个实现Enumeration接口的类,但是返回给e的类应该是Integer对象啊,我在它的源码还有它的父类Number都没看到有覆盖了Enumeration接口中的hasMoreElement跟nextElement的方法啊?这两个方法究竟是怎么实现的啊?
其实我最想知道的是e跟Enumeration究竟是什么关系啊?其他的我都明白,就是这句想不透。
如果返回的是Enumertation...那不是又返回了一个接口了- -??我是不明白谁实现了那两个方法... 展开
public class TestVector
{
public static void main(String [] args)
{
int b=0;
Vector v=new Vector();
System.out.println("Please Enter Number:");
while(true)
{
try
{
b= System.in.read();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
if(b=='\r' || b== '\n')
break;
else
{
int num=b-'0';
v.addElement(new Integer(num));
}
}
int sum=0;
Enumeration e=v.elements();
while(e.hasMoreElements())
{
Integer intObj=(Integer)e.nextElement();
sum += intObj.intValue();
}
System.out.println(sum);
}
}
以上也算一段古老的代码了(很多论坛看到),但是翻阅了大半天还是有点东西没弄懂:
Enumeration e=v.elements();
这句我是不是应该理解成e是一个实现Enumeration接口的类,但是返回给e的类应该是Integer对象啊,我在它的源码还有它的父类Number都没看到有覆盖了Enumeration接口中的hasMoreElement跟nextElement的方法啊?这两个方法究竟是怎么实现的啊?
其实我最想知道的是e跟Enumeration究竟是什么关系啊?其他的我都明白,就是这句想不透。
如果返回的是Enumertation...那不是又返回了一个接口了- -??我是不明白谁实现了那两个方法... 展开
1个回答
展开全部
v.elements()返回的是轮山Enumeration而不是你说的Integer。hasMoreElement和nextElement都在Enumeration类里面。
--------------------------------------------------------------------
明白!
确实是接口,但是却也是实例好了的接口!就是说她已经是一个实例了!那就没问题!你要问“谁”实现了的话,那就是他返回的接口里面已经包含了腊孙中实现的细节!或者说一个已经凯歼被实现了的接口!
public interface myInterface {
void whoAmI();
}
......
return new myInterface(){
public void whoAmI() {
System.out.println("I am student");
}
}
--------------------------------------------------------------------
明白!
确实是接口,但是却也是实例好了的接口!就是说她已经是一个实例了!那就没问题!你要问“谁”实现了的话,那就是他返回的接口里面已经包含了腊孙中实现的细节!或者说一个已经凯歼被实现了的接口!
public interface myInterface {
void whoAmI();
}
......
return new myInterface(){
public void whoAmI() {
System.out.println("I am student");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询