Задать вопрос
@ashot_powershot

Почему не могу записать объект в массив классов?

Создал массив классов и пытаюсь туда записать объекты, но вылезает такая ошибка: Exception in thread "main" java.lang.NullPointerException: Cannot assign field "code" because "h[i]" is null
at Main.main(Main.java:22). Что значит и как исправить?
1 класс обрезал т.к. по знакам все не влезает.
import java.util.Scanner;
public class Main {
    public static void main(String[] args)
    {
        int b=-1;
        int i=0,o=0,p=0;
        Scanner scanner = new Scanner((System.in));
        зарпутевки[] h = new зарпутевки[10];
        санатории[] k = new санатории[10];
        оздоровительные[] l = new оздоровительные[10];
        System.out.println("1 - Зарубежные путевки\n2 - Санатории\n3 - Детские оздоровительные\n4 - Вывод всех путевок\n0 - Выход");
        b=scanner.nextInt();
        switch (b)
        {
            case 0:
            {
                break;
            }
            case 1:
            {
                System.out.println("Введите код путевки");
                h[i].code=scanner.nextInt();
                System.out.println("Введите фамилию клиента");
                h[i].фамилия=scanner.toString();
                System.out.println("Введите название пансионата");
                h[i].название=scanner.toString();
                System.out.println("Введите номер");
                h[i].number=scanner.nextInt();
                System.out.println("Введите вид жилья");
                h[i].виджилья=scanner.toString();
                System.out.println("Введите дату заезда");
                h[i].date1=scanner.nextInt();
                System.out.println("Введите дату выезда");
                h[i].date2=scanner.nextInt();
                System.out.println("Введите количество человек");
                h[i].quantity=scanner.nextInt();
                System.out.println("Введите цену");
                h[i].price=scanner.nextInt();
                System.out.println("Введите номер загранпаспорта");
                h[i].загпаспорт = scanner.nextInt();
                System.out.println("Введите номер страховки");
                h[i].страховка = scanner.nextInt();
                i++;
                b=scanner.nextInt();
            }
            case 2:
            {
                System.out.println("Введите код путевки");
                k[o].code=scanner.nextInt();
                System.out.println("Введите фамилию клиента");
                k[o].фамилия=scanner.toString();
                System.out.println("Введите название пансионата");
                k[o].название=scanner.toString();
                System.out.println("Введите номер");
                k[o].number=scanner.nextInt();
                System.out.println("Введите вид жилья");
                k[o].виджилья=scanner.toString();
                System.out.println("Введите дату заезда");
                k[o].date1=scanner.nextInt();
                System.out.println("Введите дату выезда");
                k[o].date2=scanner.nextInt();
                System.out.println("Введите количество человек");
                k[o].quantity=scanner.nextInt();
                System.out.println("Введите цену");
                k[o].price=scanner.nextInt();
                System.out.println("Введите номер медицинского полиса");
                k[o].медполис = scanner.nextInt();
                System.out.println("Введите номер диагноза");
                k[o].диагноз = scanner.toString();
                System.out.println("Введите направление");
                k[o].направление = scanner.toString();
                o++;
                b=scanner.nextInt();
            }
            case 3:
            {
                System.out.println("Введите код путевки");
                l[p].code=scanner.nextInt();
                System.out.println("Введите фамилию клиента");
                l[p].фамилия=scanner.toString();
                System.out.println("Введите название пансионата");
                l[p].название=scanner.toString();
                System.out.println("Введите номер");
                l[p].number=scanner.nextInt();
                System.out.println("Введите вид жилья");
                l[p].виджилья=scanner.toString();
                System.out.println("Введите дату заезда");
                l[p].date1=scanner.nextInt();
                System.out.println("Введите дату выезда");
                l[p].date2=scanner.nextInt();
                System.out.println("Введите количество человек");
                l[p].quantity=scanner.nextInt();
                System.out.println("Введите цену");
                l[p].price=scanner.nextInt();
                System.out.println("Введите номер медицинского полиса");
                l[p].age = scanner.nextInt();
                System.out.println("Введите номер диагноза");
                l[p].свидорож = scanner.nextInt();
                System.out.println("Введите направление");
                l[p].пол = scanner.toString();
                p++;
                b=scanner.nextInt();
            }
            case 4:
            {
                if(i!=0)
                {
                    for(int m=0;m<i;m++)
                    {
                        h[m].toString();
                    }
                }
                if(o!=0)
                {
                    for(int n=0;n<o;n++)
                    {
                        k[n].toString();
                    }
                }
                if(p!=0)
                {
                    for(int c=0;c<p;c++)
                    {
                        l[c].toString();
                    }
                }
                b=scanner.nextInt();
            }
        }
    }
}
class путевки
{
    int code, number, quantity, date1, date2, price;
    String фамилия, название, виджилья;
    public путевки()
    {
    }
    public путевки(int code, String фамилия, String  название, int number, String виджилья)
    {
        this.code = code;
        this.фамилия = фамилия;
        this.название = название;
        this.number = number;
        this.виджилья = виджилья;
    }
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getФамилия() {
        return фамилия;
    }
    public void setфамилия(String фамилия) {
        this.фамилия = фамилия;
    }
    public String getназвание() {
        return название;
    }
    public void setназвание(String название) {
        this.название = название;
    }
    public int getnumber() {
        return number;
    }
    public void setnumber(int number) {
        this.number = number;
    }
    public String getвиджилья() {
        return виджилья;
    }
    public void setвиджилья(String виджилья) {
        this.виджилья = виджилья;
    }
    public int getDate1() {
        return date1;
    }
    public void setDate1(int date1) {
        this.date1 = date1;
    }
    public int getDate2() {
        return date2;
    }
    public void setDate2(int date2) {
        this.date1 = date2;
    }
    public int getquantity() {
        return quantity;
    }
    public void setquantity(int quantity) {
        this.quantity = quantity;
    }
    public int getprice() {
        return price;
    }
    public void price(int price) {
        this.price = price;
    }
    public String toString()
    {
        return "Код путевки: " + code + "\nФамилия клиента: " + фамилия + "\nНазвание пансионата: "+название+"\nНомер: "+number+"\nВид жилья: "+виджилья+"\nДата заезда: "+date1+"\nДата выезда: "+date2+"\nКоличество человек: "+quantity+"\nЦена: "+price;
    }

}
class зарпутевки extends путевки
{
    int загпаспорт, страховка;
    public int getзагпаспорт() {
        return загпаспорт;
    }
    public void setзагпаспорт(int загпаспорт) {
        this.загпаспорт = загпаспорт;
    }
    public int getстраховка() {
        return страховка;
    }
    public void setзстраховка(int зстраховка) {
        this.страховка = страховка;
    }
    public String toString()
    {
        return "Код путевки: " + code + "\nФамилия клиента: " + фамилия + "\nНазвание пансионата: "+название+"\nНомер: "+number+"\nВид жилья: "+виджилья+"\nДата заезда: "+date1+"\nДата выезда: "+date2+"\nКоличество человек: "+quantity+"\nЦена: "+price+"\nНомер загран паспорта: "+загпаспорт+"\nНомер страховки: "+страховка;
    }
}
class санатории extends путевки
{
    int медполис;
    String диагноз, направление;
    public int getмедполис() {
        return медполис;
    }
    public void setмедполис(int медполис) {
        this.медполис = медполис;
    }
    public String getдиагноз() {
        return диагноз;
    }
    public void setдиагноз(String диагноз) {
        this.диагноз = диагноз;
    }
    public String getнаправление() {
        return направление;
    }
    public void setнаправление(String направление) {
        this.направление = направление;
    }
    public String toString()
    {
        return "Код путевки: " + code + "\nФамилия клиента: " + фамилия + "\nНазвание пансионата: "+название+"\nНомер: "+number+"\nВид жилья: "+виджилья+"\nДата заезда: "+date1+"\nДата выезда: "+date2+"\nКоличество человек: "+quantity+"\nЦена: "+price+"\nНомер медицинского полиса: "+медполис+"\nДиагноз: "+диагноз+"\nНаправление: "+направление;
    }
}
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
libalex
@libalex
Backend / Android Developer (Java, Kotlin)
Вы создаёте массивы размером по 10 элементов, но не заполняете их объектами.
Там лежат по 10 null-ов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы