Wywolanie funkcji ze skanera

0

Cześć wszystkim, mam pewien problem.
Zaczynam uczyć się javy i robie program który bedzie wypisywał imie wiek zawód itd... i chcialem dodac opcję, że te informacje będą się wyświetlały po wpisaniu imienia Czlonka rodziny do skanera. Bez skanera wszystko działa. Nie wiem jak to zrobić prawidłowo z ifem. Wklejam kawałek kodu (Skaner jest zaimportowany, nie bede wklejal wszystkich linijek bo jest ich za duzo.

public class TestFiltr{
    public static void main(String [] arg) {
        Czlonek c1 = new Czlonek();
        Bolek bolek = new Bolek();
        Lolek lolek = new Lolek();
        Krzychu krzychu = new Krzychu();
        Anka anka = new Anka();
        
        Scanner scan = new Scanner(System.in);
        System.out.println("Podaj członka rodziny");
    przedstawCzlonka(bolek);
    przedstawCzlonka(lolek);
    przedstawCzlonka(krzychu);
    przedstawCzlonka(anka);
    }
    static void przedstawCzlonka(Czlonek c1) {
        c1.przedstaw();
        System.out.println("----------------------");
    }
    
}

Dzięki z góry za pomoc :))

4

Nie da się tego zrobić tak jak teraz to masz. Zresztą w ogóle ten kod jest bez sensu, bo robisz tam jakieś dziwne dziedziczenie, podczas gdy pewnie chcesz mieć OBIEKTY danej klasy a nie NOWE KLASY. Wyrzuć ten kod i napisz od nowa, ten się do niczego nie nadaje. Powinno to wyglądać raczej w stylu:

class Person{
// cośtam
}
public static void main(String [] arg) {
    Map<String, Person> people = new HashMap<>();
    people.put("Bolek", new Person("Bolek"));
    //
}

I teraz możesz scannerem wczytać linię, a następnie zrobić:

przedstawCzlonka(people.get(name));

Nie trzeba żadnego ifa nawet, bo mapa to za ciebie załatwi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1