2016-03-06 81 views
0

我是新来java编程。我的代码有问题,无论我尝试什么,我都会收到此错误。所以我有一个主类和一个Pair类(它有2个成员变量(private int a,private int b),Pair类有它的setter和getters。我一直试图创建一个Pair数组并初始化它,但是我不断收到此错误:异常线程 “main” 显示java.lang.NullPointerException在主错误:java.lang.NullPointerException

package com.company; 

import java.util.Scanner; 

public class Main { 

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    System.out.println("enter a puis b"); 
    int x=0; 
    int y=0; 

    Pair p []= new Pair[6]; 

    for (int i = 0; i < p.length; i++) { 
     x = sc.nextInt(); 
     y = sc.nextInt(); 
     p[i].setA(x); 
     p[i].setB(y); 
    } 
    for (int i = 0; i < p.length; i++) { 
     System.out.println(p[i]); 
    } 


} 
} 

继承人的Pair类:

public class Pair { 
private int a = 0; 
private int b = 0; 

public Pair() { 
    this.b = 0; 
    this.a = 0; 
} 

public int getA() { 
    return a; 
} 

public void setA(int x) { 
    a = x; 
} 

public int getB() { 
    return b; 
} 

我需要一些帮助,感谢您的时间:)

+2

你需要使用它之前到阵列中的每个元素初始化 - 'P [i] =新Pair();' – Filkolev

+0

thaaaank youu so muuch – programmer

回答

0

您并未初始化阵列中的每个成员,您需要使用:

p[0] = new Pair();等等......

你可以做到这一点你for循环中:

for (int i = 0; i < p.length; i++) { 
    p[i] = new Pair(); 
    ... // more code 
} 
+1

非常感谢你!我感谢帮助 – programmer

相关问题