看java相关的书籍说:java缺省的修饰符是friendly,就是同一个包内可以访问。
但是我写了段测试代码,却不对,大家帮忙分析下。A.java
package a;public  class A { private static int a = 1;
}B.java
package a;class B 
{ public void run() {
// TODO Auto-generated method stub
System.out.print("a =" +a);//错误,编译器说a无法解析
}

}问:a既然不能解析,那不是与friendly的作用冲突了么?

解决方案 »

  1.   

    A class 中的a是私有的静态变量啊 外面谁都看不到
      

  2.   

    首先如果你用默认修饰符,那就不能加private 。第二,在B里应用A的东西要加类名,参考如下:A.java 
    package a; public  class A { static int a = 1; 
    } B.java 
    package a; class B  
    { public void run() { 
    // TODO Auto-generated method stub 
    System.out.print("a =" +A.a);//错误,编译器说a无法解析 
    } } 
      

  3.   

    在A中加个方法,调用a,然后再在B中调用A中的方法!
      

  4.   

    把static去掉你再看看...非静态方法不能直接调用静态变量
      

  5.   


    //System.out.print("a =" +a);改为:
    System.out.print("a =" +A.a);
      

  6.   

    呵呵,等等,
    楼主
    private static int a = 1; 
    这是私有的属性哦,同一个包也不可以打破这样的封装吧,
    内部类才可以直接访问到这样的属性4.1楼主在忽悠,呵呵
      

  7.   

    private是IDE自己加的,忘记去除