Wywolanie funkcji ze skanera

Wywolanie funkcji ze skanera
B4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
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.

Kopiuj
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 :))

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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:

Kopiuj
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ć:

Kopiuj
przedstawCzlonka(people.get(name));

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.