1.取决于你的classpath.如果d:\test\new在前,就调d:\test\new的.
2.类构造的顺序为
  静态代码初始化………………非静态代码初始化………………构造方法…………

解决方案 »

  1.   

    好的,不好意思,再帮我解答一个问题,好了马上给分,谢谢!
    package Test1;public class Test1 {
        private data d=new d();
        public static void main(String[] args) {
             d.id=12;
             d.str="asdfasdf";
             System.out.println(String.valueOf(d.id));
             System.out.println(d.str);
        }
    }class data{
        protected  int id;
        protected String str;}为什么这么简单的一个类文件也会报错!
    00004:can not  resolve symbol
    00006:non-static variable d  cannot be referenced from a static context
    00007:non-static variable d  cannot be referenced from a static context
    00008:non-static variable d  cannot be referenced from a static context
    00009:non-static variable d  cannot be referenced from a static context
      

  2.   

    如果你想在
    public static void main(String[] args) 
    方法里

    d.id=12;
    的话
    得这么写
    public static void main(String[] args) {
             Test1 test = new Test1();
             test.d.id=12;
    }can not  resolve symbol
    这句话不太清楚
    是不是你的代码里有全角字符
      

  3.   

    private data d=new data();
      

  4.   

    如果你确实需要调用主类的属性
    public class Test1 {
        private static data d=new data();   //加上static,静态函数不可调用动态属性
        public static void main(String[] args) {
             d.id=12;
             d.str="asdfasdf";
             System.out.println(String.valueOf(d.id));
             System.out.println(d.str);
        }
    }
    class data{
        protected  int id;
        protected String str;}
      

  5.   

    给你两个建议:
    1。把你的这句
    private data d=new d();
    改称
    private static data d=new data();//如果你真的想这么作的化2。你的包名最好不要和你的类名重合,改称test把
    package test;
      

  6.   

    private Data d=new Date();
      

  7.   

    根据各位所说的,我做了修改:变成这个样子了:
    package Test1;public class Test1 {
        private data d=new data();
        public static void main(String[] args) {
             Test1 test = new Test1();
             test.d.id=12;
             test.d.str="asdfasdf";
             System.out.println(String.valueOf(test.d.id));
             System.out.println(test.d.str);
        }
    }class data{
        protected  int id;
        protected String str;}这样好象可以拉,但是我有2个疑问:
    1。为什么有时候需要加上Test1 test = new Test1();有时候又不需要的呢,在什么情况下需要,什么情况下不需要,有了这句跟没有这句又什么区别。
    2。为什么档我没有生成Test1实例的时候直接d.id=12就报错,但是test.d.id=12 就不报错呢,谢谢!
      

  8.   

    静态方法只能操作静态数据
    main()是静态方法,所以只能操作static属性的数据。可以结贴了
      

  9.   

    因为这是static和non-static
    class A{
      private data d = new Data();
      private static sd = new Data();
    }A a1 = new A();
    A a2 = new A();
    a1与a2的d不是同一个,因此需要通过具体的某一个对象实例去访问
    而a1a2的sd是同一个,其他任何new A()中的sd都是同一个,因此可以通过
    a1.sd, a1.sd, A.sd来访问,因此不一定要new A()来访问
      

  10.   

    你们都是白痴,老子才是中国有史以来最大的阴谋家!BTW:严正警告楼主:不给老子分我就在扩充话题把你封杀,让你损失30分信誉!嘿嘿!