同一个包,在不同文件中的类如何互相访问

luming988 2003-01-11 05:57:13
两个类,都是实现线程的,一个是运行并完成特定任务,另一个是负责在前一个线程结束的时候关闭它,两个在同一个包里面,分属于两个不同的类文件,请问,我在第二个线程如何实现关闭第一个线程?(其实就是怎么去访问第一个类文件中的类)
...全文
167 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
helpall 2003-01-11
  • 打赏
  • 举报
回复
三个类放在同一个目录中,甚至放在同一个文件中,一个类声明为public即可.
不需互相import.
class A {
Object isWindowReady = new Object();
Frame frame = null;
public static void main(String[ ] args) {
A o = new A();
if(true) {
new CreateWindow2(o).start();
} else { // I would prefer this approach
new CreateWindow(o).start();
new CloseWindow(o).start();
}
}
}
class CreateWindow extends Thread {
A o = null;
public CreateWindow(A o) {
this.o = o;
}
public void run() {
synchronized(o.isWindowReady) {
o.frame = new JFrame();
o.isWindowReady.notify();
}
}
}
class CreateWindow2 extends Thread {
A o = null;
public CreateWindow2(A o) {
this.o = o;
}
public void run() {
new CloseWindow(o).start();
synchronized(o.isWindowReady) {
o.frame = new JFrame();
o.isWindowReady.notify();
}
}
}
class CloseWindow extends Thread {
A o = null;
public CloseWindow(A o) {
this.o = o;
}
public void run() {
synchronized(o.isWindowReady) {
if(o.frame == null ) {
try{
o.isWindowReady.wait();
}catch(InterruptedException e) {}
}
o.frame = null;
}
}
}
jl83 2003-01-11
  • 打赏
  • 举报
回复
c中先实例化类b,然后对这个实例进行操作。不过这样好像有点循环的味道在里面了,不知道行不行。
luming988 2003-01-11
  • 打赏
  • 举报
回复
?怎么办呢?
luming988 2003-01-11
  • 打赏
  • 举报
回复
比如说我有三个类文件:a、b、c:b生成一个窗口,c负责关闭这个窗口,而a是主程序,我在c中该如何实现关闭b生成的窗口的任务,最后我要在b中生成一个c的实例,来完成c要完成的任务。
xiaofenguser 2003-01-11
  • 打赏
  • 举报
回复
用import ...;//你的类,包括包名的
就可以用第一个类了.
takecare 2003-01-11
  • 打赏
  • 举报
回复
一般是在某一个.java文件中开始线程的,难道不能控制吗?
总不见的是
java threadA
java threadB
而要threadB kill threadA 吧?
zxhong 2003-01-11
  • 打赏
  • 举报
回复
最简单的就是拷贝到同一目录下

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧