黑马程序员技术交流社区
标题:
弄不明白
[打印本页]
作者:
尹善波
时间:
2012-7-9 22:34
标题:
弄不明白
import java.util.*;
public class MyUtil extends ArrayList
{
public static void main(String[] args)
{
MyUtil m = new MyUtil();
m.add("w");
m.add("x");
m.add("y");
m.add("z");
m.removeRange(1,3);
System.out.print(m.size() + " ");
MyUtil m2 = new MyUtil2().go();
System.out.println(m2.size());
}
}
class MyUtil2
{
MyUtil go()
{
MyUtil m2 = new MyUtil();
m2.add("1");
m2.add("2");
m2.add("3");
m2.removeRange(1,2);
return m2;
}
}
为什么会编译时出现removeRange是protected方法,请高手解释一下
作者:
李伟
时间:
2012-7-9 23:49
查看一下API
protected void removeRange(int fromIndex,int toIndex)
removeRange是受保护的方法
作者:
尹善波
时间:
2012-7-10 00:00
标题:
RE: 弄不明白
追问
但是在MyUtil2中调用这个方法的还是MyUtil的对象呀。
MyUtil m2 = new MyUtil(); .......; m2.removeRange(1,2); 这跟在MyUtil自己的main方法中调用不是一样的吗?
作者:
贾飞雨
时间:
2012-7-10 00:22
首先肯定不行:
因为removeRange是继承了父类ArrayList的方法,这个方法的权限修饰符是protected,这个修饰符的访问权限是:在同一个包下,其他类或者子类,
你创建的MyUtil 这个类没有在util包下创建,如果你想用的这个removeRange方法的话,要把它放在同一个包下,或者就在util包下创建,或者你可以把源码的修饰符改为public,这样你也可以用了,不过这些都是浪费时间的,你干嘛一定要用这个方法呢,可以用Remove啊
作者:
李志群
时间:
2012-7-10 00:25
ArrayList:底层的数据结构使用的是数组结构。 特点:查询速度很快,但是增删稍慢。线程不同步
希望采纳 楼主你的程序不安全!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2