我是编程和Java的新手,并尝试编写一个程序,它将两个数组作为输入并报告它们的总和.我想通过创建一个类来实现这一点,该类将两个数组作为构造函数输入,然后创建一个将它们添加到一起的方法,以及一个打印出这个新的sum数组的方法.
这是我的班级:
public class test1 {
int [] a;
int [] b;
int [] final23;
public test1 (int x [], int y [])
{
int [] a = x;
int [] b = y;
}
public int [] sum(int [] x, int[] y)
{
int [] a = x;
int [] b = y;
for (int i = 0; i < Math.min(x.length, y.length); i++)
{
final23 [0]=x[0] + y[0] ;
}
return final23;
}
public void print()
{
for (int i = 0; i < final23.length; i++)
{
System.out.println(final23[0]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的主要课程:
public class main1 {
public static void main(String[] args)
{
int l[] = {4,7,2};
int k[] = {4,6,2};
test1 X = new test1(k,l);
X.sum(k,l);
X.print();
}
}
Run Code Online (Sandbox Code Playgroud)
我在运行时遇到错误:
在main1main(main1.java:8)
的test2.sum(test2.java:17)中的线程"main"java.lang.NullPointerException 中的异常
我想我真正想要的是我的sum方法将test1对象作为输入.但是,我不知道该怎么做.
你的变量final23永远不会被初始化.在java中,您必须在使用之前初始化数组.要么你在声明期间这样做(就像你用k和l做的那样),要么你必须在以后用新的做arrayType[arraySize];
以下是可以声明/初始化数组的方式.
int[] iArray = {1, 2, 3}; //Declaration, Initialization, set values
int[] iArray; //Declaration
iArray = new int[3]; //Initialization
iArray[0] = 1; //Set value
int[] iArray; //Declaration
iArray = new Array[3]{1, 2, 3}; // Initialization and set values
Run Code Online (Sandbox Code Playgroud)
您当然可以将最后两个样本放在与声明相同的行上.
试试这个(清理过的)代码:
public class test1 {
int[] final23;
public int[] sum(int[] x, int[] y) {
final23 = new int[Math.min(x.length, y.length)];
for (int i = 0; i < final23.length; i++) {
final23[i] = x[i] + y[i];
}
return final23;
}
public void print() {
for (int aFinal23 : final23) {
System.out.println(aFinal23);
}
}
public static void main(String[] args) {
int l[] = {4, 7, 2};
int k[] = {4, 6, 2};
test1 x = new test1();
x.sum(k, l);
x.print();
}
}
Run Code Online (Sandbox Code Playgroud)
资源:
| 归档时间: |
|
| 查看次数: |
297 次 |
| 最近记录: |