Телефонный справочник, Добавить и Удалить данные в массив Java

Я новичек, Задача такая написать телефонный справочник, в котором есть три функции найти, добавить, удалить. Мне нужно создать массив в котором будут данные справочника, и работать с ним. Я не могу понять как мне добавить данные человека из " saveContact" в массив? И удалить из массива ? Застрял на этом.

import java.util.List;                                                                                                                                 
import java.util.Scanner;                                                                                                                              
public class CompInfoHighway extends Main{                                                                                                             
    public CompInfoHighway(String kategory, String surname, String name1, String patronymic, String location, String email, String number) {           
        super(kategory, surname, name1, patronymic, location, email, number);                                                                          
    }                                                                                                                                                  

    public static void fail(){                                                                                                                         
        CompInfoHighway[] list = new CompInfoHighway[25];                                                                                              
        list[0] = new CompInfoHighway("Универ", "Иван","Иванов","Иванович","Сатпаева 22 А","[email protected]", "87751111111");           
        list[1] = new CompInfoHighway("Работа", "Сергеев","Сергей","Аскарович","Назарбаева 115","[email protected]","87059963255");         
        list[2] = new CompInfoHighway("Танцы","Димов","Дима","Димович","Казыбек би 22/1","[email protected]","87756591232");            
        list[3] = new CompInfoHighway("Медицина","Евгеньев", "Евгений,"Евгенивич","Муратбаева 114/120","[email protected]","87778578367");     
        list[4] = new CompInfoHighway("Медицина","Владимиров","Владимир","Владимерович","Темирязева 56","[email protected]","87776549874");                 
        list[5] = new CompInfoHighway("Танцы","Петров","Петр","Петрович","Абая 110","[email protected]","87054896523");                                                                                                                                                                                             
    }                                                                                                                                                  

    public static void main(String[] args) { displayMenu();}                                                                                           

    public static void saveContact(String kategory, String surname, String name, String patronymic, String location, String email, String number){     
        System.out.println("Контакт сохранен:"+ kategory+" "+surname+" "+name+" "+patronymic+" "+location+" "+email+" "+number);                       
    }                                                                                                                                                  
    public static void findNumber(String Name){                                                                                                        
        System.out.println("");                                                                                                                        
    }                                                                                                                                                  
    public static void displayMenu(){                                                                                                                  
        Scanner in = new Scanner(System.in);                                                                                                           
        System.out.println("Что вы хотите сделать?");                                                                                                  
        System.out.println("1. Сохранить контакт");                                                                               
        System.out.println("2. Найти контакт");    
        System.out.println("3. Удалить контакт");


        int choice = in.nextInt(); //выберете что хотите сделать                                                                                       
        in.nextLine();                                                                                                                                 
        switch(choice){                                                                                                                                
            case 1:                                                                                                                                    
                System.out.println("Введите категорию человека которого хотите добавить:");                                                            
                System.out.println("Пример: Семья,Универ,Работа,Медицина,Танцы. Можете добавить свою категорию");                                      
                String kategory = in.nextLine();                                                                                                       
                System.out.print("Введите фамилию человека которого хотите добавить:");                                                                
                String surname = in.nextLine();                                                                                                        
                System.out.println("Введите имя человека которого хотите добавить:");                                                                  
                String name = in.nextLine();                                                                                                           
                System.out.println("Введите отчество человека которого хотите добавить:");                                                             
                String patronymic = in.nextLine();                                                                                                     
                System.out.println("Введите адрес человека которого хотите добавить:");                                                                
                String location = in.nextLine();                                                                                                       
                System.out.println("Введите почту человека которого хотите добавить:");                                                                
                String email = in.nextLine();                                                                                                          
                System.out.println("Введите номер человека которого хотите добавить:");                                                                
                String number = in.nextLine();                                                                                                         
                saveContact(kategory, surname, name, patronymic, location, email, number);                                                             

                break;                                                                                                                                 
            case 2:                                                                                                                                    
                System.out.println("Как зовут человека, номер которого вы хотите найти?");                                                             
                name = in.nextLine();                                                                                                                  
                        System.out.println();                                                                                                          
                break;     
            case 3:
                        System.out.println("Как зовут человека которого вы хотите удалить?");                                                                                        
            default:                                                                                                                                   
                break;                                                                                                                                 
        }                                                                                                                                              
    }                                                                                                                                                  
}

public class Main {
    private String kategory;
    private String surname;
    private String name1;
    private String patronymic;
    private String location;
    private String email;
    private String number;

    public Main(String kategory, String surname, String name1, String patronymic,
                String location, String email, String number) {
        this.kategory = kategory;
        this.surname = surname;
        this.name1 = name1;
        this.patronymic = patronymic;
        this.location = location;
        this.email = email;
        this.number = number;
    }
    public String getKategory(){return kategory;}
    public void setKategory(String kategory){this.kategory = kategory;}

    public String getSurname() {
        return surname;
    }
    public void setSurname(String surname) {
        this.surname = surname;
    }

    public String getName() {
        return name1;
    }
    public void setName(String name) {
        this.name1 = name;
    }

    public String getPatronymic() {
        return patronymic;
    }
    public void setPatronymic(String patronymic) {
        this.patronymic = patronymic;
    }

    public String getLocation() {
        return location;
    }
    public void setLocation(String location) {
        this.location = location;
    }

    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }

    public String getNumber() {
        return number;
    }
    public void setNumber(String number) { this.number = number;
    }

    // чтобы информация отображалась в PhoneNumber
    public void showFullName() {
        System.out.println(surname + " " +  name1 + " " + patronymic);
    }
}


Ответы (2 шт):

Автор решения: santavital

метод вызывается у экземпляра класса в виде object.saveContact()
учитывая что мы в данный момент находимся внутри метода класса,
т.е. только что сделали вызов object.displayMenu() для ссылки на object. внутри метода класса используется this.

this.saveContact( ... )

→ Ссылка
Автор решения: NullPointerException

В комментариях в написал что добавил. Всё же лучше использовать динамические массивы, к примеру ArrayList. Почитай про массивы и область видимости, удачи.

 import java.util.Scanner;

 public class CompInfoHighway extends Main {
public CompInfoHighway(String kategory, String surname, String name1, String patronymic, String location, String email, String number) {
    super(kategory, surname, name1, patronymic, location, email, number);
}

static CompInfoHighway[] list = new CompInfoHighway[25]; //выносим массив за границы метода fail, чтобы увеличить его область видимости, чтобы он был доступен в методе saveContact
static int idContact = 6; //индекс следующего элемента массива, он равен 6 так как добавлено в fail медоте 6 элементов с (0 по 5)

public static void fail() {
    //убрали отсюда массив list
    list[0] = new CompInfoHighway("Универ", "Иван", "Иванов", "Иванович", "Сатпаева 22 А", "[email protected]", "87751111111");
    list[1] = new CompInfoHighway("Работа", "Сергеев", "Сергей", "Аскарович", "Назарбаева 115", "[email protected]", "87059963255");
    list[2] = new CompInfoHighway("Танцы", "Димов", "Дима", "Димович", "Казыбек би 22/1", "[email protected]", "87756591232");
    list[3] = new CompInfoHighway("Медицина", "Евгеньев", "Евгений", "Евгенивич", "Муратбаева 114/120", "[email protected]", "87778578367");
    list[4] = new CompInfoHighway("Медицина", "Владимиров", "Владимир", "Владимерович", "Темирязева 56", "[email protected]", "87776549874");
    list[5] = new CompInfoHighway("Танцы", "Петров", "Петр", "Петрович", "Абая 110", "[email protected]", "87054896523");
}

public static void main(String[] args) {
    displayMenu();
}

public static void saveContact(String kategory, String surname, String name, String patronymic, String location, String email, String number) {
    System.out.println("Контакт сохранен:" + kategory + " " + surname + " " + name + " " + patronymic + " " + location + " " + email + " " + number);
    //добавляем ССЫЛКУ на объект в массив
    list[idContact] = new CompInfoHighway(kategory, surname, name, patronymic, location, email, number);
    idContact++;
}

public static void findNumber(String Name) {
    System.out.println("");
}

public static void displayMenu() {
    fail(); //вызвываем метод fail чтобы заполнить list
    Scanner in = new Scanner(System.in);
    System.out.println("Что вы хотите сделать?");
    System.out.println("1. Сохранить контакт");
    System.out.println("2. Найти контакт");
    System.out.println("3. Удалить контакт");


    int choice = in.nextInt(); //выберете что хотите сделать                                                                                       
    in.nextLine();
    switch (choice) {
        case 1:
            System.out.println("Введите категорию человека которого хотите добавить:");
            System.out.println("Пример: Семья,Универ,Работа,Медицина,Танцы. Можете добавить свою категорию");
            String kategory = in.nextLine();
            System.out.print("Введите фамилию человека которого хотите добавить:");
            String surname = in.nextLine();
            System.out.println("Введите имя человека которого хотите добавить:");
            String name = in.nextLine();
            System.out.println("Введите отчество человека которого хотите добавить:");
            String patronymic = in.nextLine();
            System.out.println("Введите адрес человека которого хотите добавить:");
            String location = in.nextLine();
            System.out.println("Введите почту человека которого хотите добавить:");
            String email = in.nextLine();
            System.out.println("Введите номер человека которого хотите добавить:");
            String number = in.nextLine();
            saveContact(kategory, surname, name, patronymic, location, email, number);

            break;
        case 2:
            System.out.println("Как зовут человека, номер которого вы хотите найти?");
            name = in.nextLine();
            System.out.println();
            break;
        case 3:
            System.out.println("Как зовут человека которого вы хотите удалить?");
        default:
            break;
    }
 //вывод всех контактов
 for (int i = 0; i < idContact; i++)
        list[i].showFullName();
}
}
→ Ссылка