////////////////////////////////////////////////////package com.ThreadTest;public class CommonClass {/*** @param args*/public void print(String Msg){String threadName=Thread.currentThread().getName();System.out.println(threadName+":"+Msg);}}####################################################這個是CleanRead.java文件/////////////////////////////////////////////////package com.ThreadTest;public class CleanRead {/*** @param args*/private String fname,lname;//引用上面的CommonClass,實現(xiàn)run()方法時用到CommonClass下的print()方法public static CommonClass cc=null;//開始時我沒有加static修飾符public CleanRead(){cc=new CommonClass();}/**省略若干與問題無關(guān)的代碼*/public static void main(String[] args) {// TODO Auto-generated method stubfinal CleanRead cr=new CleanRead();Runnable r2=new Runnable(){public void run(){就在這兒run()方法內(nèi)部,我需要調(diào)用CommonClass下的print()方法,開始的時候我沒有將對象cc說明為靜態(tài)的。MyEclipse就一直提示錯誤,不讓我過去,提示說只有將cc改為靜態(tài)的才可以通過,難道在實現(xiàn)run()的時候要使用其它類的方法的時候一定要是靜態(tài)的么????cc.print("getName()="+cr.getName());}};Thread t2=new Thread(r2,"Thread_2");t2.start();}哎,粘貼了這么多,也不知道有沒有說清楚,有勞各位高手了。。。
2 回答

智慧大石
TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊
因為你是在主函數(shù)里面構(gòu)造的內(nèi)部類,別忘了,主函數(shù)是static的,它不依賴于主函數(shù)所在的類。你應(yīng)該把 Runnable r2=new Runnable(){//省略...}這段代碼放到一個CleanRead的成員方法中,比如,在CleanRead類中,你寫一個public void test(){}方法,然后把你的代碼放到test方法體中,然后再main函數(shù)中調(diào)用,new CleanRead().test(); 就可以了

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊
你可以實例化這個對象,然后用對象去引用它里面的方法!
調(diào)用一個類的方法有兩種方式
1、類名.靜態(tài)方法();
2、類名 cc = new 類名();
cc.方法名();
添加回答
舉報
0/150
提交
取消