Реализовать работу программы через сканнер и интерфейс с заполнением данных - 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);
}
Нужно доделать её по следующим пунктам и я в настоящий момент затрудняюсь это сделать. Сможете, пожалуйста, помочь мне в решении или подсказать, как это начать делать
- В имплиментациях реализовать логику заполнения данными людей через сканнер
- Оставить чтение количества людей с клавиатуры, но добавить выбор реализации. Если введено не ARRAY и не LIST, выбрасывать исключение
- В методе main должна быть только одна переменная типа MyInterface
Заранее каждому ответившему спасибо!