
java两个类相互调用的问题
有两个类A.java和B.java.其中A中要调用B中的方法,B要调用A中的方法。如果初始化的时候相互初始化的话,那么将会陷入循环初始化。如何解决该问题?举例:javas...
有两个类A.java和B.java.
其中A中要调用B中的方法,B要调用A中的方法。
如果初始化的时候相互初始化的话,那么将会陷入循环初始化。
如何解决该问题?
举例:java swing小程序:
要实现界面与监听器相分离。界面类SimpleFrame.java中有一个Button “清除”,点击之后清空JTextField中的内容。
具体代码如下:
SimpleFrame.java
监听类CleanUp.java 展开
其中A中要调用B中的方法,B要调用A中的方法。
如果初始化的时候相互初始化的话,那么将会陷入循环初始化。
如何解决该问题?
举例:java swing小程序:
要实现界面与监听器相分离。界面类SimpleFrame.java中有一个Button “清除”,点击之后清空JTextField中的内容。
具体代码如下:
SimpleFrame.java
监听类CleanUp.java 展开
3个回答
展开全部
可以这样,在A,B类中分别设一个静态变量 可以是 boolean行的,
当A调用b 的时候 把B类得这个变量改了,然后再B的方法中,依照这个变量来决定是否还调用A的方法
同理可以在B调用A的时候 修改A的变量,A会依照这个变量来决定是否还调用B
这样达到,A调完B 就不会有B 再去A ,B 调完A 之后A不会再去掉B
当A调用b 的时候 把B类得这个变量改了,然后再B的方法中,依照这个变量来决定是否还调用A的方法
同理可以在B调用A的时候 修改A的变量,A会依照这个变量来决定是否还调用B
这样达到,A调完B 就不会有B 再去A ,B 调完A 之后A不会再去掉B
展开全部
用一个类的方法调用不一定要初始化一个类呀
比如
A a = new A(); 这样我有了这个对象的引用之后
a.clear();
a.clear();
a.claer();
他都是只会调用一次构造啊
还有你为什么在本类的初始化工作中,去初始化其他的类呢?
还有就是JtextFiled 中的内容,只要你有那个JtextFIeld对象你就可以清除里面的内容呀
比如
A a = new A(); 这样我有了这个对象的引用之后
a.clear();
a.clear();
a.claer();
他都是只会调用一次构造啊
还有你为什么在本类的初始化工作中,去初始化其他的类呢?
还有就是JtextFiled 中的内容,只要你有那个JtextFIeld对象你就可以清除里面的内容呀
追问
可能是我的描述有问题,我的意思是实例化。比如A类中要用B中的方法,那么要在A中实例化B吧,即在A中要有:B b=new B();然后才能用b.method()。
另外,你说有JTextField对象就可以清楚里面的内容是什么意思?要做点击按钮清除输入框中的内容,那么要在监听器类里面处理吧。如果是分开的两个类的话,你如何让监听器获取JTextField对象呢?是不是需要在监听器类中保存一个窗体类呢?
追答
我现在有点事不能给你看代码,不过我可以告诉你你可以通过传对象的方式,或者就是内部累的方式都是可以实现的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,界面是A类,监听器是B类,只需要在初始化界面A类的时候,给button绑定鉴定器为B类就行,这行代码可以直接在A类的构造方法里写,也可以专门写一个初始化方法,然后在构造方法里调用。
更多追问追答
追问
那么如何让JTextField内容清空呢?
追答
有两种选择,一种是你在A类中,给button绑定监听器的时候,把JTextField对象传过去,例如,button.addActionListener(new B(JTextField对象的引用));这样,你在B类中,可以访问到JTextField这个对象。或者你也可以把整个A类的对象传过去,这样什么都可以获得了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询