太复杂了(说的),csdn浮躁之人多(象我,尽管很想赚点分,但是又懒的看),建议1:仔细看一下think in java
建议2:静态类的说法不太准确,有静态的方法、属性,但是没有静态的类,
对于静态的方法、属性,你可以把它理解成一个全局的方法与属性(限于这个类),大家(各个实例)共享这些方法.
建议3:this是对于某一个实例而言的

解决方案 »

  1.   

    1是这样B类中的每个对象都会有一个自己的数据拷贝,这样会出现多余的重复。
    2是B类中的每个对象都有自己的数据拷贝,这样name数组就不会生成唯一的(好象是这样说的,也差不了多大,大体意思是这样的)。这是为什么啊????
    1:每NEW一个B类,里面的两个数组name和couter都需要分配内存;而如果NAME和COUTER是STATIC的,就只分配一个就OK了;
    2:不为什么,本来就是。
      

  2.   

    第1,把这两个静态数组改成非静态的就可以了。但是这样改会有缺点:1是这样B类中的每个对象都会有一个自己的数据拷贝,这样会出现多余的重复。2是B类中的每个对象都有自己的数据拷贝,这样name数组就不会生成唯一的(好象是这样说的,也差不了多大,大体意思是这样的)。这是为什么啊????--------------我想你可能是不太理解static 这个Modifyer的意义吧。在这里体现了static 修饰的变量是作为class 变量的特性,也就是static 变量They are known at compile time itself! The Class owns the STATIC method and not the object of the class!
    在我所说的东西中与是否是inner class 无关。
      

  3.   

    你所说的关于B内方法引用的问题,我想我可能不太明白你的意思。但通常的引用是这样的:
    public class Qxjava 
    {
    public class QxInner
    {
    String [] name ;
          String [] counter;
    public void writeS()
    {
    System.out.println("The write in the inner class");
    }
    }
    public static void main(String[] args) 
    {
    System.out.println("Hello World!");
    } public void w()
    {
    QxInner q = new QxInner();
    q.writeS();/////////////////here
    }
    }
    当然还有其他的形式,但都差不多。
    在通常情况下this.Method() 中得this 指的是当前对象!