2016-03-06 3 views
0

Я новичок в программировании на Java. У меня проблема с моим кодом, я продолжаю получать эту ошибку независимо от того, что я пытаюсь. поэтому у меня есть основной класс и класс Pair (у которого есть 2 члена переменных (private int a, private int b), у класса Pair есть его сеттеры и getters. Я пытался создать массив Pair и инициализировать его, но i постоянно получаю эту ошибку: исключение в потоке "главный" java.lang.NullPointerExceptionошибка в main: 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]); 
    } 


} 
} 

Heres класс 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

Вы должны инициализировать каждый элемент массива перед использованием - 'р [я] = новый 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