为了账号安全,请及时绑定邮箱和手机立即绑定

以下是CommonClass.java文件,麻烦大佬帮忙看看~

以下是CommonClass.java文件,麻烦大佬帮忙看看~

开满天机 2022-07-26 19:15:42
////////////////////////////////////////////////////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,实现run()方法时用到CommonClass下的print()方法public static CommonClass cc=null;//开始时我没有加static修饰符public CleanRead(){cc=new CommonClass();}/**省略若干与问题无关的代码*/public static void main(String[] args) {// TODO Auto-generated method stubfinal CleanRead cr=new CleanRead();Runnable r2=new Runnable(){public void run(){就在这儿run()方法内部,我需要调用CommonClass下的print()方法,开始的时候我没有将对象cc说明为静态的。MyEclipse就一直提示错误,不让我过去,提示说只有将cc改为静态的才可以通过,难道在实现run()的时候要使用其它类的方法的时候一定要是静态的么????cc.print("getName()="+cr.getName());}};Thread t2=new Thread(r2,"Thread_2");t2.start();}哎,粘贴了这么多,也不知道有没有说清楚,有劳各位高手了。。。
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

因为你是在主函数里面构造的内部类,别忘了,主函数是static的,它不依赖于主函数所在的类。你应该把 Runnable r2=new Runnable(){//省略...}这段代码放到一个CleanRead的成员方法中,比如,在CleanRead类中,你写一个public void test(){}方法,然后把你的代码放到test方法体中,然后再main函数中调用,new CleanRead().test(); 就可以了

查看完整回答
反对 回复 2022-08-01
?
函数式编程

TA贡献1807条经验 获得超9个赞

你可以实例化这个对象,然后用对象去引用它里面的方法!
调用一个类的方法有两种方式
1、类名.静态方法();
2、类名 cc = new 类名();
cc.方法名();

查看完整回答
反对 回复 2022-08-01
  • 2 回答
  • 0 关注
  • 204 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信