main是个静态方法,不能引用this,你的main函数应该这么写:public static void main(String args[])
 {
sample3 s1=new sample3();
sample3 s2=new sample3();
 
 t1=new Thread(s1);
  t2=new Thread(s2);
  t1.setPriority(Thread.MIN_PRIORITY);
  t2.setPriority(Thread.MAX_PRIORITY);
  t1.start();
  t2.start();
 }

解决方案 »

  1.   

    有如mog所说的去做!在静态方法中不能使用关键字this
      

  2.   

    main是个静态方法,不能引用this,你的main函数应该这么写:public static void main(String args[])
     {
    sample3 s1=new sample3();
    sample3 s2=new sample3();
     
     t1=new Thread(s1);
      t2=new Thread(s2);
      t1.setPriority(Thread.MIN_PRIORITY);
      t2.setPriority(Thread.MAX_PRIORITY);
      t1.start();
      t2.start();
     }
      

  3.   

    为什么静态方法里不能引用this
    能解释一下吗
      

  4.   

    静态方法可以通过类直接调用 不用初始化对象
    对象没有初始化你能用this么
      

  5.   

    那什么是this
    书上这写:
    this表示的是当前对像本身,更准确的说this代表了当前对像的一个引用。对象的引用可以理解为对像的另一个名字.......
    -------------
    我理解是内存里已经创建了一个对像,而this就是指向这个对像的一个引用,这和new 一个的s1没什么区别啊能再帮我解释一下吗,细一点的
      

  6.   

    静态方法我们都是通过类对象来调用的,而this指的是实例对象。在类对象的运行范围内,我们无法确定他有哪些实例对象;但是在实例对象的运行范围内,我们则可以确定它的类对象。
    因此,在静态方法里面,我们不能使用非静态的成员变量和方法;但是在非静态的成员方法里面,我们则可以不加类名直接调用静态方法和成员变量。归根到底,是方法所在对象的不同。
      

  7.   

    类对象是在当类被虚拟机加载后自动生成的;实例对象是在你调用new后才会生成
      

  8.   

    也许我只能这么理解
    正因为main()是一个静态方法,所以他只能访问该类的静态域,而this域恰恰不是静态域,所以在main()里面不能使用this
    不知这样想对不对?
      

  9.   

    thanks mog(暗黑魔兽)我明白了一些
    是不是这样,含有main()的这个主类在类加载以后就由系统自动运行了,而不是生成一个主类的对象以后再运行
    是吗?
      

  10.   

    thanks mog(暗黑魔兽)我明白了一些
    是不是这样,含有main()的这个主类在类加载以后就由系统自动运行了,而不是生成一个主类的对象以后再运行,所以main()里的this根本就没有所指了
    是吗?
      

  11.   

    多谢mog(暗黑魔兽)兄,去考试了,回来马上给分!
      

  12.   

    从Thread类继承,然后实现run函数不是容易实现吗?我就是这样做的,包括线程同步的问题。找本书看看,很容易就明白了。