Java 有没有办法在类之间使用方法?
我在同一个包中有两个.java文件。我计划将第一个.java文件作为底层代码,将第二个.java文件作为GUI swing界面 我遇到的问题是,在处理项目的GUI部分时,我需要使用代码从.java文件访问几个方法。我的.java文件及其代码如下所示:Java 有没有办法在类之间使用方法?,java,swing,class,oop,methods,Java,Swing,Class,Oop,Methods,我在同一个包中有两个.java文件。我计划将第一个.java文件作为底层代码,将第二个.java文件作为GUI swing界面 我遇到的问题是,在处理项目的GUI部分时,我需要使用代码从.java文件访问几个方法。我的.java文件及其代码如下所示: package same; public class HFSim extends ApplicationTemplate { private static class AppFrame extends Appli
package same;
public class HFSim extends ApplicationTemplate
{
private static class AppFrame extends ApplicationTemplate.AppFrame
{
public myMethodIWanttoUse()
{
//code
}
在我的GUI.java中:
package same;
public class GUI extends JFrame
{
public GUI()
{
public void actionPerformed(ActionEvent e)
{
//this is where I want to use the method from above
有没有办法在GUI部分使用该方法?还是有更好的方法来解决这个问题?提前感谢。通过替换
public myMethodIWanttoUse()
与
其次,将AppFrame
标记为public
,而不是private
然后像这样调用您的方法HFSim.AppFrame.mymethodiWantouse()
编辑:
或者,您不必使方法成为静态的
。只需在GUI代码中添加以下内容:
HFSim.AppFrame frame = new HFSim.AppFrame();
frame.myMethodIWantToUse();
不过,无论如何,您必须通过替换使
AppFrame
成为public
使methodiWantouse()
静态
public myMethodIWanttoUse()
与
其次,将AppFrame
标记为public
,而不是private
然后像这样调用您的方法HFSim.AppFrame.mymethodiWantouse()
编辑:
或者,您不必使方法成为静态的
。只需在GUI代码中添加以下内容:
HFSim.AppFrame frame = new HFSim.AppFrame();
frame.myMethodIWantToUse();
不过,无论如何,您都必须将
AppFrame
公开化您的问题有多种解决方案。您应该回答的第一个问题是,您需要如何调用这些方法来限定它们自己
- 它们是实用方法吗?(它们不需要处理对象的实例)
- 它们是否附着到对象的单个实例
- 您是否需要调用特定对象的方法而不仅仅是方法
- 声明它们
并调用它们,例如static
HFSim.AppFrame.MyMethodoiWantouse()代码>
- 声明包含它们的对象的静态实例,例如
public class HFSim extends ApplicationTemplate { public static final AppFrame appFrame = new AppFrame(); ... } public class GUI extends JFrame { public GUI() { public void actionPerformed(ActionEvent e) { HFSim.appFrame.myMethodIWanttoUse(); } } }
- 将对象的实例传递给另一个实例:
public class GUI extends JFrame { private final HFSim.AppFrame appFrame; public GUI(HFSim.AppFrame appFrame) { this.appFrame = appFrame; } public void actionPerformed(ActionEvent e) { appFrame.myMethodIWanttoUse(); } }
- 它们是实用方法吗?(它们不需要处理对象的实例)
- 它们是否附着到对象的单个实例
- 您是否需要调用特定对象的方法而不仅仅是方法
- 声明它们
并调用它们,例如static
HFSim.AppFrame.MyMethodoiWantouse()代码>
- 声明包含它们的对象的静态实例,例如
public class HFSim extends ApplicationTemplate { public static final AppFrame appFrame = new AppFrame(); ... } public class GUI extends JFrame { public GUI() { public void actionPerformed(ActionEvent e) { HFSim.appFrame.myMethodIWanttoUse(); } } }
- 将对象的实例传递给另一个实例:
public class GUI extends JFrame { private final HFSim.AppFrame appFrame; public GUI(HFSim.AppFrame appFrame) { this.appFrame = appFrame; } public void actionPerformed(ActionEvent e) { appFrame.myMethodIWanttoUse(); } }
static
通常是GUI设计不佳的标志。使用static
通常是GUI设计不佳的标志。