A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝蓝的天 中级黑马   /  2015-4-22 15:14  /  428 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*

  2. Sychronized:同步代码块,解决


  3. 问题是:这里为什么用到this会报错呢???

  4. */
  5. class Ticket implements Runnable
  6. {
  7.   private static int ticket = 20;
  8.   Object obj = new Object();
  9.   public void run()
  10.   {
  11.           while(true)
  12. {
  13.           synchronized(obj)
  14.           {
  15.                   if(ticket>0)
  16.                   {
  17.                          
  18.                            System.out.println(this.getName()+"正在卖"+ticket-- +"号票");       
  19.                          
  20.                   }       
  21.     }        
  22.   }       
  23.        
  24. }       
  25.        
  26. }
  27. class SynchronizedTest
  28. {
  29.   public static void main(String[] args)
  30.   {
  31.     Ticket t = new Ticket();     //创建线程对象
  32.     Thread t0 = new Thread(t);    //创建线程
  33.      Thread t1 = new Thread(t);    //创建线程
  34.       Thread t2 = new Thread(t);     //创建线程
  35.        Thread t3 = new Thread(t);            //创建线程
  36.          
  37.           t0.start();
  38.             t1.start();
  39.              t2.start();
  40.               t3.start();
  41.   }       
  42.        
  43.        
  44.        
  45.        
  46. }
  47. /*

  48. G:\代码>javac SynchronizedTest.java
  49. SynchronizedTest.java:22: 错误: 找不到符号
  50.                          System.out.println(this.getName()+"正在卖"+ticket-- +"
  51. 号票");
  52.                                                 ^
  53.   符号: 方法 getName()
  54. 1 个错误




  55. */
复制代码

3 个回复

倒序浏览
为什么这里用到this会报错呢??
回复 使用道具 举报
你都没有声明getName()方法,也就是说你的Ticket类没有getName()方法,所以当然会报错了。
回复 使用道具 举报
你的this 时指的那个?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马