Реализовать работу программы через сканнер и интерфейс с заполнением данных - JAVA

Всем коллегам, привет!

У меня есть следующая рабочая программа: есть один интерфейс с одним методом, который реализует две разные реализации метода через отдельные классы

package src.java.com.hacker.maxim.task1;

public class Human {
    String name;
    int age;
    double height;
    double weight;
    String skills;

    Human() {
    }

    Human(String name, int age, double height, double weight, String skills) {
        this.name = name;
        this.age = age;
        this.height = height;
        this.weight = weight;
        this.skills = skills;
    }

    Human(String name, int age) {
        this.name = name;
        this.age = age;
    }

    Human(double height, double weight) {
        this.height = height;
        this.weight = weight;
    }

    public String toString() {
        return "Возврат пяти полей: " + this.name + " " + this.age + " " + this.height + " " + this.weight + " " + this.skills;

    }
}
package src.java.com.hacker.maxim.task1;

import java.util.Scanner;

class HumanDemo {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        System.out.print("Напиши любое целое число на своей клавиатуре, а затем клавишу ENTER: ");
        int n = in.nextInt();
        in.close();

        System.out.println("Ты нажал цифру: " + n);
        System.out.println();

        System.out.println("Реализация интерфейсов: ");
        System.out.println();

        System.out.println("Реализация 1-ого интерфейса: ");
        MyInterface q1 = new MyClassArrayImpl();
        q1.get(n);

        System.out.println();

        System.out.println("Реализация 2-ого интерфейса: ");
        MyInterface q2 = new MyClassArrayListImpl();
        q2.get(n);


    }

}
package src.java.com.hacker.maxim.task1;

class MyClassArrayImpl implements MyInterface {

    @Override
    public void get(int x) {
        Human[] a = new Human[x];
        for (int i = 0; i < x; i++) {
            a[i] = new Human();
            System.out.println(a[i]);
        }
    }
}
package src.java.com.hacker.maxim.task1;

import java.util.ArrayList;

class MyClassArrayListImpl implements MyInterface {

    @Override
    public void get(int x) {

        ArrayList<Human> a1 = new ArrayList<Human>();
        for (int i = 0; i < x; i++) {

            a1.add(new Human());
        }

        for (var item : a1) {
            System.out.println(item);
        }
    }
}
package src.java.com.hacker.maxim.task1;

public interface MyInterface {

    void get(int n);
}

Нужно доделать её по следующим пунктам и я в настоящий момент затрудняюсь это сделать. Сможете, пожалуйста, помочь мне в решении или подсказать, как это начать делать

  1. В имплиментациях реализовать логику заполнения данными людей через сканнер
  2. Оставить чтение количества людей с клавиатуры, но добавить выбор реализации. Если введено не ARRAY и не LIST, выбрасывать исключение
  3. В методе main должна быть только одна переменная типа MyInterface

Заранее каждому ответившему спасибо!


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