2017-03-22 9 views
-2

***スレッド "メイン" java.lang.ArrayIndexOutOfBoundsExceptionの例外:0 ticketing.Ticketing.main(Ticketing.java:102)で印刷する個人Passanger でセッター/ゲッターとencapusulation JavaIndexoutbounds

***

多くint = 0;

    DataPenumpangPesawat name []; 
        name = new DataPenumpangPesawat [many]; 
        DataPenumpangPesawat address []; 
        address = new DataPenumpangPesawat [many]; 
        DataPenumpangPesawat sex []; 
        Gender = new DataPenumpangPesawat [many]; 
        DataPenumpangPesawat ktp []; 
        ktp = new DataPenumpangPesawat [many]; 


        System.out.print ("Input Data Many Passenger ="); 
        lot = scan.nextInt(); 

        // Array Request User Data Input Entering Aircraft 
        for (int i = 0; i <lot; i ++) { 
         System.out.print ("\ nData to-" + (i + 1) + "\ n"); 
         scan.nextLine(); 
         System.out.print ("Passenger Name ="); 
         // I have a problem in here 
         name [i] = new DataPenumpangPesawat(); 
         String name2 = scan.nextLine(); 
         name [i] .setNama (name2); 
         System.out.print ("Address ="); 
         address [i] = new DataPenumpangPesawat(); 
         String Address = scan.nextLine(); 
         Address [i] .setAlamat (Address); 
         System.out.print ("Gender (1 = Male/2 = Female) ="); 
         sex [i] = new DataPenumpangPesawat(); 
         scan.nextInt gender = int(); 
         sex [i] .setJenKel (gender); 
         System.out.print ("NIK KTP (NPM) ="); 
         ktp [i] = new DataPenumpangPesawat(); 
         int KTPP = scan.nextInt(); 
         ktp [i] .setNik (KTPP); 

        } 

        for (int i = 0; i <lot; i ++) { 
         System.out.print ("\ n \ n +++ +++ TICKET PRINT \ n"); 
         System.out.print ("Print Tickets to-" + (i + 1) + "\ n"); 
         System.out.print ("================= \ n"); 
         // Print Name Aircraft 
         if (pil2 == 1) { 
          System.out.print ("Garuda Indonesia plane = \ n"); 
         } Else { 
          System.out.print ("Aircraft = Batik Air \ n"); 
         } 
         // Print Class Aircraft 
         if (pil3 == 1) { 
          System.out.print ("Class = Executive \ n"); 
         } Else { 
          System.out.print ("Class = Economy \ n"); 
         } 
         // Print Destination City Passenger 
         if (pil4 == 1) { 
          System.out.print ("City of Interest = Yogyakarta \ n"); 
         } Else if (pil4 == 2) { 
          System.out.print ("City of Interest = Lombok \ n"); 
         } Else { 
          System.out.print ("City of Interest = Jayapura \ n"); 
         } 
         // Print Departure Date 
         System.out.print ("Jam Departure =" + date + "-" + Moon + "-" + year + "\ n"); 

         // Print Jam and Jam Arrive Departures 
         if (piljam == 1) { 
          System.out.print ("Jam Departure = 09:30 AM \ n"); 
          System.out.print ("Clock Arrive = 10:40 AM \ n"); 
         } Else if (piljam == 2) { 
          System.out.print ("Jam Departure = 11:50 AM \ n"); 
          System.out.print ("Clock Arrive = 13:20 AM \ n"); 
         } Else { 
          System.out.print ("Jam Departure = 3:15 PM \ n"); 
          System.out.print ("Clock Arrive = 5:40 PM \ n"); 
         } 
         // Print Personal Data Passengers 
         String nama1 = name [i] .get`Nama(); 
         System.out.println ("Name =" + nama1); 
         String address1 = address [i] .getAlamat(); 
         System.out.println ("Address =" + address1); 
         int gender1 = sex [i] .getJenKel(); 
         System.out.println ("Gender =" + address1); 
         System.out.print ("NIK =" + ktp [i] + "\ n"); 

入力ユーザーからカプセル化したい場合はどうすればよいですか。 Java

+4

可能な重複どのように私はそれを防ぐのですか?](http://stackoverflow.com/questions/5554734/what-c​​auses-a-java-lang-arrayindexoutofboundsexcepそれを防止する方法) – azurefrog

答えて

0

あなたが表示するコードには、多くの不一致があります。次に、より良いヘルプを得るために、最小、完全、および検証可能な例を提供してください。ここでは、作成するためのガイドラインをご確認いただけます:https://stackoverflow.com/help/mcve

また、javaで配列や変数を調べることをお勧めします。

このように実行するようにコードを修正しました(私が行っていることがすべてわからないため、あなたと異なる場合があります)。ここで

は、あなたの変更されたコードです:

import java.io.IOException; 
import java.util.Scanner; 

public class Example { 

    public static void main(String[] args) throws IOException { 

     Scanner scan = new Scanner(System.in); 
     int many = 10; 

     /** 
     * I fix this variables and initialize them to run your program 
     */ 
     DataPenumpangPesawat name[] = new DataPenumpangPesawat[many]; 
     DataPenumpangPesawat address[] = new DataPenumpangPesawat[many]; 
     DataPenumpangPesawat sex[] = new DataPenumpangPesawat[many]; 
     DataPenumpangPesawat[] Gender = new DataPenumpangPesawat[many]; // This variable is never used 
     DataPenumpangPesawat ktp[]; 
     ktp = new DataPenumpangPesawat[many]; 

     System.out.print("Input Data Many Passenger ="); 
     int lot = scan.nextInt(); 

     // Array Request User Data Input Entering Aircraft 
     for (int i = 0; i < lot; i++) { 
      System.out.print("\n Data to-" + (i + 1) + "\n"); 
      scan.nextLine(); 
      System.out.print("Passenger Name ="); 
      // I have a problem in here 
      name[i] = new DataPenumpangPesawat(); 
      String name2 = scan.nextLine(); 
      name[i].setNama(name2); 
      System.out.print("Address ="); 
      address[i] = new DataPenumpangPesawat(); 
      String Address = scan.nextLine(); 
      address[i].setAlamat(Address); 
      System.out.print("Gender (1 = Male/2 = Female) ="); 
      sex[i] = new DataPenumpangPesawat(); 
      // scan.nextInt gender = int(); 
      // sex[i].setJenKel (gender); 
      System.out.print("NIK KTP (NPM) ="); 
      ktp[i] = new DataPenumpangPesawat(); 
      int KTPP = scan.nextInt(); 
      ktp[i].setNik(KTPP); 

     } 

     for (int i = 0; i < lot; i++) { 
      System.out.print("\n \n +++ +++ TICKET PRINT \n"); 
      System.out.print("Print Tickets to-" + (i + 1) + "\n"); 
      System.out.print("================= \n"); 
      /** 
      * I initialize this variables with 1 because I don't know where they comes! You must change the initialization for real values 
      */ 
      int pil2 = 1; 
      int pil3 = 1; 
      int pil4 = 1; 
      int piljam = 1; 
      if (pil4 == 1) { 
       // Print Name Aircraft 
       if (pil2 == 1) { 
        System.out.print("Garuda Indonesia plane = \n"); 
       } else { 
        System.out.print("Aircraft = Batik Air \n"); 
       } 
       // Print Class Aircraft 
       if (pil3 == 1) { 
        System.out.print("Class = Executive \n"); 
       } else { 
        System.out.print("Class = Economy \n"); 
       } 
       // Print Destination City Passenger 
       System.out.print("City of Interest = Yogyakarta \n"); 
      } else if (pil4 == 2) { 
       System.out.print("City of Interest = Lombok \n"); 
      } else { 
       System.out.print("City of Interest = Jayapura \n"); 
      } 
      // Print Departure Date 
      // System.out.print ("Jam Departure =" + date + "-" + Moon + "-" + year + "\ n"); I commented this line because I don't know where the 
      // variables date and year are. 
      System.out.print("Jam Departure = \n"); 

      // Print Jam and Jam Arrive Departures 
      if (piljam == 1) { 
       System.out.print("Jam Departure = 09:30 AM \n"); 
       System.out.print("Clock Arrive = 10:40 AM \n"); 
      } else if (piljam == 2) { 
       System.out.print("Jam Departure = 11:50 AM \n"); 
       System.out.print("Clock Arrive = 13:20 AM \n"); 
      } else { 
       System.out.print("Jam Departure = 3:15 PM \n"); 
       System.out.print("Clock Arrive = 5:40 PM \n"); 
      } 
      // Print Personal Data Passengers 
      String nama1 = name[i].getNama(); 
      System.out.println("Name =" + nama1); 
      String address1 = address[i].getAlamat(); 
      System.out.println("Address =" + address1); 
      int gender1 = sex[i].getJenKel(); 
      System.out.println("Gender =" + address1); 
      System.out.print("NIK =" + ktp[i] + "\n"); 
     } 
    } 
} 

そして、このクラス:

public class DataPenumpangPesawat { 

    private String nama; 
    private String alamat; 
    private int kTPP; 
    private int jenKel; 
    private int nik; 

    public int getNik() { 
     return nik; 
    } 

    public void setNik(int nik) { 
     this.nik = nik; 
    } 

    public String getNama() { 
     return nama; 
    } 

    public void setNama(String nama) { 
     this.nama = nama; 
    } 

    public String getAlamat() { 
     return alamat; 
    } 

    public void setAlamat(String alamat) { 
     this.alamat = alamat; 
    } 

    public int getkTPP() { 
     return kTPP; 
    } 

    public void setkTPP(int kTPP) { 
     this.kTPP = kTPP; 
    } 

    public int getJenKel() { 
     return jenKel; 
    } 

    public void setJenKel(int jenKel) { 
     this.jenKel = jenKel; 
    } 

} 

出力は次のとおりです。java.lang.ArrayIndexOutOfBoundsExceptionを引き起こし何[の

Input Data Many Passenger =2 

Data to-1 
Passenger Name =andres 
Address =mexico 
Gender (1 = Male/2 = Female) =NIK KTP (NPM) =1 

Data to-2 
Passenger Name =andy 
Address =mex 
Gender (1 = Male/2 = Female) =NIK KTP (NPM) =1 


+++ +++ TICKET PRINT 
Print Tickets to-1 
================= 
Garuda Indonesia plane = 
Class = Executive 
City of Interest = Yogyakarta 
Jam Departure = 
Jam Departure = 09:30 AM 
Clock Arrive = 10:40 AM 
Name =andres 
Address =mexico 
Gender =mexico 
NIK [email protected] 


+++ +++ TICKET PRINT 
Print Tickets to-2 
================= 
Garuda Indonesia plane = 
Class = Executive 
City of Interest = Yogyakarta 
Jam Departure = 
Jam Departure = 09:30 AM 
Clock Arrive = 10:40 AM 
Name =andy 
Address =mex 
Gender =mex 
NIK [email protected] 
関連する問題