如何将输出传递给另一个Java类?

  • 本文关键字:另一个 Java 输出 java
  • 更新时间 :
  • 英文 :


我是Java的新手,我想将一些输出传递到Java中当前类的外部。首先,我要求用户输入一些数字并存储为字符串。然后把它们转换成整数。我要做的是把这些值转化成一些方法。这是我的代码。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main extends JFrame {
JTextField x = new JTextField("X",5);
JTextField y = new JTextField("Y",5);
JTextField z = new JTextField("Z",5);
JButton chk = new JButton("Check");
public Main(){
JPanel newPanel = new JPanel();
newPanel.add(x);
newPanel.add(y);
newPanel.add(z);
newPanel.add(chk);
chk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//These are the values I want to pass
int xi = Integer.parseInt(x.getText());
int yi = Integer.parseInt(y.getText());
int zi = Integer.parseInt(z.getText());
System.out.printf("you data is %dn",xi);
System.out.printf("Your data is %dn",yi);
System.out.printf("you data is %d",zi);
}
});
add(newPanel);
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[]args) {
new Main().setVisible(true);
}
}

如您所见,我想将这些输出(即xi, yi和zi)传递到另一个类。像下面…

int result = xi+yi+zi;
System.out.println(result);

我该怎么做呢?如何将这些数据传递到另一个类?由于

创建一个类和一个方法。将你的代码,也就是你想要执行的任何操作放入该方法中,通过将方法设置为void或任何其他返回类型。

例如,在你的程序中,你想打印xi, yi和zi的和

public class MyClass {
public void sum(int xi, int yi, int zi) {
System.out.println(xi+yi+zi);
}

//  or

public int sum1(int xi, int yi, int zi) {
return xi+yi+zi;
}

}

创建该类的对象并调用该方法。根据你的代码,你可以这样做

@Override
public void actionPerformed(ActionEvent e) {
//storing the values in the ""global"" variables
xi = Integer.parseInt(x.getText());
yi = Integer.parseInt(y.getText());
zi = Integer.parseInt(z.getText());
MyClass myClass = new MyClass();
myClass.sum(xi, yi, zi);

//      or

int result = myClass.sum1(xi, yi, zi);
System.out.println(result);
}

如何在main中创建3个局部变量,您将能够在整个函数中使用?正如我所看到的,你声明的变量只能在事件函数中使用。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main extends JFrame {
JTextField x = new JTextField("X",5);
JTextField y = new JTextField("Y",5);
JTextField z = new JTextField("Z",5);
int xi,yi,zi; //new variables to use later on
JButton chk = new JButton("Check");
public Main(){
JPanel newPanel = new JPanel();
newPanel.add(x);
newPanel.add(y);
newPanel.add(z);
newPanel.add(chk);
chk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//storing the values in the ""global"" variables
xi = Integer.parseInt(x.getText());
yi = Integer.parseInt(y.getText());
zi = Integer.parseInt(z.getText());
System.out.printf("you data is %dn",xi);
System.out.printf("Your data is %dn",yi);
System.out.printf("you data is %d",zi);
}
});
add(newPanel);
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[]args) {
new Main().setVisible(true);
}
}

如果你以后想使用它们,比如当你按下另一个按钮时,你就可以这样做了。

希望这是你想要的…:)

有很多方法可以做到这一点,这完全取决于用例。如果你只有三个变量,那么你可以在方法参数中传递它们。

。我有我的其他类。

class OtherClass {
static void doSomething(int x, int y, int z) {
//do something
}
}

可以使用构造函数将实例变量初始化为OtherClass,即

class OtherClass {
int a;
int b;
int c;

OtherClass(int x, int y, int z) {
this.a = x;
this.b = y;
this.c = z;
}
}
//calling
OtherClass o = new OtherClass(1,2,3);

您可以在Main类中添加一个方法,该方法返回一个包含上述数字的数组。

public int[] func(){
int[] arr = new int[3];
for(...) //Input the numbers into the array (ideally you would have the Jtext fields in an array you can loop over.
return arr;

希望对你有所帮助

最新更新