我在java中有一个方法类。基本上这个类接收一个整数数组,添加数字&也减去它们,返回总和和减法。我将变量声明在顶部(不是在特定方法中)。当减法和加法完成时,它们被分配给它们各自的变量(当然是自动),但是当方法完成它的工作时,值被删除,所以当我调用减法/加法的方法时,结果是一个0.
据我所知,值不应为空,因为它们不是在方法内部初始化,而是在所有方法之外,因此范围不应该结束。有什么帮助吗?
//方法类
package chap3;
import javax.swing.JOptionPane;
/**
*
* @author jtech
*/
public class SimpleArithmeticMethods
{
int sum;
int subtraction;
public void sum_Difference(int[] nums)
{
int[] inpNums = nums;
sum = inpNums[0] + inpNums[1];
subtraction = inpNums[1] - inpNums[0];
}
public void getSum()
{
JOptionPane.showMessageDialog(null,"The sum is: "+sum, "Result.", JOptionPane.INFORMATION_MESSAGE);
}
public void getDifference()
{
JOptionPane.showMessageDialog(null,"The difference is: "+subtraction, "Result.", JOptionPane.INFORMATION_MESSAGE);
}
}
我运行的课程
package chap3;
import javax.swing.JOptionPane;
/**
*
* @author jtech
*/
public class SimpleArithmetic
{
public static void main(String[] args)
{
String[] strInptNums = new String[2];
int[] inptNums = new int[2];
SimpleArithmeticMethods obtainSum = new SimpleArithmeticMethods();
SimpleArithmeticMethods obtainDifference = new SimpleArithmeticMethods();
SimpleArithmeticMethods workSum_Difference = new SimpleArithmeticMethods();
for (int counter = 0; counter <= 1; counter++)
{
strInptNums[counter] = JOptionPane.showInputDialog(null, "Input a number, smallest first", "Input Data.", JOptionPane.QUESTION_MESSAGE);
inptNums[counter] = Integer.parseInt(strInptNums[counter]);
}
workSum_Difference.sum_Difference(inptNums);
obtainSum.getDifference();
obtainDifference.getDifference();
}
}
答案 0 :(得分:1)
您在一个对象上调用sum_Difference()
方法,并使用另一个对象显示结果。
这就像在瓶子中存储消息,然后查看消息是否在另一个瓶子中。使用相同的对象来调用所有三种方法。