2014-09-26 1 views
0

학교 자바 프로그램에 문제가있어서 저에게 손을 줄 수 있습니까? 프로그램에서는 제목과 같은 책 정보, 각 책의 가격 정보를 제공해야합니다. 이제 객체 배열을 만들고 각 객체는 각 옵션에 대해 private 변수를 가져야합니다 (setter 메쏘드로 설정하고 getter 메쏘드로 선언). 문제는 어디에서 실수인지 모르지만 프로그램에서 출력되는 마지막 변수는 가격뿐입니다. 다른 것들은 모두 null입니다. 제발 도와 주실 수 있습니까? 주요 :개체의 Java 배열이 null 인 것으로 보입니다

class Esercizio2 
{ 
    public static void main(String[] args) 
    { 
     // Objects 
     ConsoleReader2 keyboard = new ConsoleReader2(System.in); 
     // Init 
     int n = 0; // book number 
     // temp variables 
     String title; 
     String writer; 
     String house; 
     String price; 
     // Calc 
     System.out.println("How many books you wanna analyze?"); 
     do 
     { 
      n = keyboard.readInt(); 
      if (n <= 0) 
      { 
       System.out.print("You've inserted a negative or 0 number, you have to input a positive number, try again ===> "); 
      } 
     } 
     while (n <= 0); 
     // array of the books 
     Libri2[] info = new Libri2[n]; 
     // through arrays 
     for (int i = 0, j = 1; i < info.length; i++, j++) 
     { 
      // input title 
      System.out.print("Input the title for book number " + j + " ===> "); 
      title = keyboard.readLine(); 
      info[i] = new Libri2(); 
      info[i].setTitle(title); 
      // input writer 
      System.out.print("Input the writer for book number " + j + " ===> "); 
      writer = keyboard.readLine(); 
      info[i] = new Libri2(); 
      info[i].setWriter(writer); 
      // input house 
      System.out.print("Input the house for book number " + j + " ===> "); 
      house = keyboard.readLine(); 
      info[i] = new Libri2(); 
      info[i].setHouse(house); 
      // input price 
      System.out.print("Input the price for book number " + j + " ===> "); 
      price = keyboard.readLine(); 
      info[i] = new Libri2(); 
      info[i].setPrice(price); 
     } 
     // Declaration 
     for (int i = 0, j = 1; i < info.length; i++, j++) 
     { 
      System.out.print("The title of book number " + j + " is ===> " + info[i].getTitle() + "\n"); 
      System.out.println("His features are:\n" + info[i].getWriter() + "\n" + info[i].getHouse() + "\n" + info[i].getPrice()); 
     } 
    } 
} 

ConsoleReader2 내가 스캐너 대신 사용하는 클래스이지만 같은 일이다 readline과 입력 문자열을위한 방법이다. 세터와 게터 방법과 클래스 : 만 가격 오브젝트의 배열을 떠나

public class Libri2 
{ 
    // attributs: 
    private String title; 
    private String writer; 
    private String house; 
    private String price; 
    // methods: (setter e getter) 
    // give title 
    public String getTitle() 
    { 
     return this.title; 
    } 
    // set title 
    public void setTitle(String m) 
    { 
     this.title = m; 
    } 
    // give writer 
    public String getWriter() 
    { 
     return this.writer; 
    } 
    // set writer 
    public void setWriter(String m) 
    { 
     this.writer = m; 
    } 
    // give house 
    public String getHouse() 
    { 
     return this.house; 
    } 
    // set house 
    public void setHouse(String m) 
    { 
     this.house = m; 
    } 
    // give price 
    public String getPrice() 
    { 
     return this.price; 
    } 
    // set price 
    public void setPrice(String m) 
    { 
     this.price = m; 
    } 
} 

답변

4
당신은 다시 현재 요소 당신이 속성을 설정 때마다 재설정하고

, 라

info[i] = new Libri2(); 

.

관련 문제