为什么Arraylist里面的方法和成员变量不用static修饰 它们不是都共享的吗

解决方案 »

  1.   

    首先我先小心翼翼的确认下,楼主问的类是这个包下的java.util.ArrayList 吗?
    如果不是,下面的文字无视。
    如果是:
    我建议楼主改行,鉴定完毕!楼下有和我意见不一的请朝我开炮。
      

  2.   

    建议看看 类,对象章节。
    String  : 表示所有 字符串的类,那么它有一系列的方法都是针对字符串的。 
    ArrayList : 可以理解为动态数组,它是 一组数据  作为一个对象 的类。你认为静态的 方法可以找 java.util.Collections  ,它是工具类。
    -----------补充说明
    那么什么才是 “普通类”(区别于工具类),什么又是工具类 ? 为什么要工具类呢?其实 最初肯定都是普通类。 学生,水果 活生生的普通类,因为立刻有对应的 对象(张三, 苹果)。有类了肯定要进行操作,那么就 涉及到成员方法 。(张三 ; 学习,睡觉等)。反过来说说ArrayLIst,它是一个动态数组(多元素,元素有序【】,可重复等),它有增删改查。 LinkLIst 也有 增删改查,
    你会说那就抽象一个接口 (增删改查) ,对的java 就是这么做的 LIst 接口来实现。List 就是包含共有动作的一个“类”
    此时 如果要反转一下ArrayList 的顺序如何呢?
    你肯定回答,那不就是 ArrayList 中在定义一个reverse 方法吗? 其实这样不符合面向对象编程的思想。 reverse 并不是ArrayList
    必须提供的功能,即: 没有reverse 方法就不叫ArrayList? 错误的逻辑。 LinkList 也需要呢?
    这时候你就可以定义一个工具类   ListTools 里边 有 reverse(List<E> list) 。 把基本操作或者复杂操作 也看成一个对象(工具类),封装起来。
    粗俗理解:  学生吃东西, 员工也吃东西。 把吃东西封装起来, 就是食堂。 吃东西,想到食堂,至于谁吃我不管。