论坛首页 招聘求职论坛

一个馒头引发的血案

浏览 16801 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2008-11-28  
public class B
{
    public void mm(List a)
    {
       a = new ArrayList();//这个能编译通过吗????????
                                  假如传进来的a是一个Vector????
       a.add("mm");
    }
}

这题首先考的不是值传递的问题!!!!!!!,应该是多态的问题!!!

另外,ArrayList内部其实就是个Object[]!
0 请登录后投票
   发表时间:2008-11-28  
初学者对于这种问题,很正常的,支持LZ。
0 请登录后投票
   发表时间:2008-11-28   最后修改:2008-11-28
hahalizx 写道
public class B
{
    public void mm(List a)
    {
       a = new ArrayList();//这个能编译通过吗????????
                                  假如传进来的a是一个Vector????
       a.add("mm");
    }
}

这题首先考的不是值传递的问题!!!!!!!,应该是多态的问题!!!

另外,ArrayList内部其实就是个Object[]!

假如传进来的a是一个Vector????

试一下.....不就知道了?
java.util.Vector

All Implemented Interfaces:
    Cloneable, Collection, List, RandomAccess, Serializable
0 请登录后投票
   发表时间:2008-11-28  
抛出异常的爱 写道
hahalizx 写道
public class B
{
    public void mm(List a)
    {
       a = new ArrayList();//这个能编译通过吗????????
                                  假如传进来的a是一个Vector????
       a.add("mm");
    }
}

这题首先考的不是值传递的问题!!!!!!!,应该是多态的问题!!!

另外,ArrayList内部其实就是个Object[]!

假如传进来的a是一个Vector????

试一下.....不就知道了?
java.util.Vector

All Implemented Interfaces:
    Cloneable, Collection, List, RandomAccess, Serializable



我的意思是参数是个List,然后你把它强制new成ArrayList,这就是不对的啊!!!
0 请登录后投票
   发表时间:2008-11-28  
huangxin_sy 写道

        List a = null;



应该在这个地方声明之后,立马实例化就可以了,让他指向list的实现类ArrayList就可以了,
这样在B中的mm()中,也就是传递了一个list的引用。
0 请登录后投票
   发表时间:2008-11-28  
public class B
{
    public void mm(List a)
    {
       a = new ArrayList();
                                
       a.add("mm");
    }
}

假如这是一个单独的类, a = new ArrayList();这都肯定编译通不过的,其他的都不用说了!!!!!!!!
这题目看上去是考值传递那些,但我的观点是考的多态!!!!!!!!
0 请登录后投票
   发表时间:2008-11-28   最后修改:2008-11-28
hahalizx 写道
抛出异常的爱 写道
hahalizx 写道
public class B
{
    public void mm(List a)
    {
       a = new ArrayList();//这个能编译通过吗????????
                                  假如传进来的a是一个Vector????
       a.add("mm");
    }
}

这题首先考的不是值传递的问题!!!!!!!,应该是多态的问题!!!

另外,ArrayList内部其实就是个Object[]!

假如传进来的a是一个Vector????

试一下.....不就知道了?
java.util.Vector

All Implemented Interfaces:
    Cloneable, Collection, List, RandomAccess, Serializable



我的意思是参数是个List,然后你把它强制new成ArrayList,这就是不对的啊!!!

瀑布汗我哪只眼睛也没看到
(List)a
这样的代码...哪里强转了?
PS:强转错误会有异常抛出的...
这样学java还不如不学....
0 请登录后投票
   发表时间:2008-11-28  


java的 基本类型是值传递
对象是 引用传递
0 请登录后投票
   发表时间:2008-11-28  
我的理解错了,呵呵,道个歉!!!!!
0 请登录后投票
   发表时间:2008-11-28  
hahalizx 写道
抛出异常的爱 写道
hahalizx 写道
public class B
{
    public void mm(List a)
    {
       a = new ArrayList();//这个能编译通过吗????????
                                  假如传进来的a是一个Vector????
       a.add("mm");
    }
}

这题首先考的不是值传递的问题!!!!!!!,应该是多态的问题!!!

另外,ArrayList内部其实就是个Object[]!

假如传进来的a是一个Vector????

试一下.....不就知道了?
java.util.Vector

All Implemented Interfaces:
    Cloneable, Collection, List, RandomAccess, Serializable



我的意思是参数是个List,然后你把它强制new成ArrayList,这就是不对的啊!!!



按你的意思还能new成List不成????
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics