CodeGym
CodeGym University
Lernen
Kurs
Aufgaben
Umfragen & Quizze
Spiele
Hilfe
Zeitplan für einen Tritt in den Hintern
Community
Benutzer
Forum
Chat
Artikel
Erfolgsstorys
Aktivität
Rezensionen
Abonnements
Helles Design
Frage
  • Rezensionen
  • Über uns
Start
Jetzt lernen
Jetzt lernen
  • Alle Fragen
hidden #10625598
Level 23
  • 04.06.2020
  • 386Aufrufe
  • 4Kommentare

hey wie hole ich die elemente richtig aus der liste heraus?

Frage zur Aufgabe Hausmeister-Service
Java Core,  Level 4,  Lektion 8
In der Diskussion


1. Implementiere die Methode cleanAllApartments.
Für jedes Objekt in apartments:
2. Rufe für Einzimmerwohnungen (OneRoomApt) die Methode clean1Room auf.
d.h. wenn ein OneRoomApt-Objekt übergeben wird, dann rufe seine Methode clean1Room auf.
3. Rufe für Zweizimmerwohnungen (TwoRoomApt) die Methode clean2Rooms auf.
d.h. wenn ein TwoRoomApt-Objekt übergeben wird, dann rufe seine Methode clean2Rooms auf.
4. Rufe für Dreizimmerwohnungen (ThreeRoomApt) die Methode clean3Rooms auf.
d.h. wenn ein ThreeRoomApt-Objekt übergeben wird, dann rufe seine Methode clean3Rooms auf.

Anforderungen:
  • Die Methode cleanAllApartments muss eine Liste von Wohnungen als Parameter entgegennehmen.
  • Für alle Einzmmerwohnungen (OneRoomApt) in der Liste muss die Methode cleanAllApartments die Methode clean1Room aufrufen.
  • Für alle Zweizimmerwohnungen (TwoRoomApt) in der Liste muss die Methode cleanAllApartments die Methode clean2Rooms aufrufen.
  • Für alle Dreizimmerwohnungen (ThreeRoomApt) in der Liste muss die Methode cleanAllApartments die Methode clean3Rooms aufrufen.
  • Die Klassen OneRoomApt, TwoRoomApt und ThreeRoomApt müssen das Apartment-Interface unterstützen (implementieren).
package de.codegym.task.task14.task1415; import java.util.*; import java.util.List; /* Hausmeister-Service */ public class Solution { public static void main(String[] args) { List<Apartment> apartments = new ArrayList<>(); apartments.add(new OneRoomApt()); apartments.add(new TwoRoomApt()); apartments.add(new ThreeRoomApt()); cleanAllApartments(apartments); } public static void cleanAllApartments(List<Apartment> apartments) { Iterator<Apartment> it = apartments.iterator(); while(it.hasNext()){ if(it.next() instanceof OneRoomApt){ ((OneRoomApt)apartments).clean1Room(); } else if(it.next() instanceof TwoRoomApt){ ((TwoRoomApt)apartments).clean2Rooms(); } else if(it.next() instanceof ThreeRoomApt){ ((ThreeRoomApt)apartments).clean3Rooms(); } } } static interface Apartment { } static class OneRoomApt implements Apartment { void clean1Room() { System.out.println("1 Zimmer wurde gereinigt"); } } static class TwoRoomApt implements Apartment { void clean2Rooms() { System.out.println("2 Zimmer wurden gereinigt"); } } static class ThreeRoomApt implements Apartment { void clean3Rooms() { System.out.println("3 Zimmer wurden gereinigt"); } } }
0
Kommentare (4)
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Claudia Theiling
Level 18 , Lüneburg, Germany
4 September 2020, 13:33
Hallo Claudio, du kannst es auch so machen: for (int i = 0; i < apartments.size(); i++) { if (apartments.get(i) instanceof OneRoomApt){ ((OneRoomApt)apartments.get(i)).clean1Room(); } ....... Ist zwar nicht so schön, wie das von Thomas, aber laufen tut es trotzdem.
0
Thomas
Level 31 , Bayreuth, Germany
4 Juni 2020, 19:48
appartments ist die List. Die kannst du nicht in OneRoomApt etc. casten. it.next() enthält etwas vom Typ Apartment. Das wirst Du meinen. Du könntest also eine Referenzvariable vom Typ Apartment erstellen und einen Verweis auf it.next() darin speichern. Diese Referenz dann in OneRoomApt usw. casten und die jeweilige Methode anwenden. Einfacher wäre es, eine foreach Schleife zu nehmen. Iteratoren, wie ich es schon mal gesagt habe, sind opportun, wenn man in der Schleife löschen will (und die Scheife dann nicht gleich verläßt).
0
hidden #10625598
Level 23
5 Juni 2020, 05:38
ja ich hab deine antwort gesehen, nur bekomme ich da irgend einen error wegen einer klammer? for (Appartment a : appartments) { if (a instance of OneRoomApt()){ ((OneRoomApt) a).clean1Room(); } } .....java:23: error: ')' expected if (a instance of OneRoomApt()){
0
Thomas
Level 31 , Bayreuth, Germany
5 Juni 2020, 05:58
instanceof (zusammen)
0
Lernen
  • Registrierung
  • Java-Kurs
  • Hilfe zu Aufgaben
  • Preise
  • Spieleprojekte
  • Java Syntax
Community
  • Benutzer
  • Artikel
  • Forum
  • Chat
  • Erfolgsstorys
  • Aktivität
  • Affiliate Program
Unternehmen
  • Über uns
  • Kontakt
  • Rezensionen
  • Medien
  • CodeGym im Bildungsbereich
  • FAQ
  • Support
CodeGym CodeGym ist ein Java-Tutorial zum Lernen von Java von Grund auf. Dieser Kurs ist perfekt dafür geeignet, Java von Beginn an zu meistern. Er enthält über 1200 Aufgaben mit Sofortüberprüfung und grundlegende Theorie zu den Java-Grundlagen. Damit auch du bei deinem Kurs erfolgreich bist, haben wir eine ganze Reihe motivierender Inhalte: Quizfragen, Programmierprojekte, Inhalte zu effizientem Lernen und zum Berufseinstieg als Java-Entwickler.
Folgen
Sprache der Oberfläche
Programmierer werden gemacht, nicht geboren © 2023 CodeGym
MastercardVisa
Programmierer werden gemacht, nicht geboren © 2023 CodeGym
This website uses cookies to provide you with personalized service. By using this website, you agree to our use of cookies. If you require more details, please read our Terms and Policy.