CodeGym
Aktion
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
  • 285Aufrufe
  • 3Kommentare

i got a few questions to this task

Frage zur Aufgabe Währungen
Java Core,  Level 4,  Lektion 8
In der Diskussion


Erweitere die Fähigkeiten des Programms, Währungen zu manipulieren.

1. Erstelle das double-Feld amount in der abstrakten Klasse Money.
2. Erstelle einen öffentlichen Getter für das Feld amount (public double getAmount()), so dass du von außerhalb der Money-Klasse darauf zugreifen kannst.
3. Erstelle in einzelnen Dateien die Klassen Euro, Ruble und USD als Abkömmlinge der Money-Klasse.
4. Implementiere in den Klassen Euro, Ruble und USD die Methode getCurrencyName, die eine Abkürzung der Währungsbezeichnung zurückgibt (String) (EUR, RUB, USD).
5. Implementiere in den Klassen Euro, Ruble und USD einen öffentlichen (public) Konstruktor, der einen Parameter übernimmt und den Konstruktor der Basisklasse (super-Klasse) mit diesem Parameter aufruft.
6. Befülle die allMoney-Liste mit allen möglichen Währungsobjekten entsprechend den Aufgabenbedingungen und der Programmfunktionalität.

Anforderungen:
  • Die Money-Klasse muss ein privates double-Feld mit der Bezeichnung amount besitzen.
  • Die Money-Klasse muss einen öffentlichen (public) Konstruktor mit einem double-Parameter implementieren, der die Variable amount auf den übergebenen Parameter setzt.
  • Die Money-Klasse muss die Methode public getAmount implementieren, die den Wert des Feldes amount zurückgibt.
  • Die Klassen Euro, Ruble und USD müssen Abkömmlinge der Money-Klasse sein und sich in separaten Dateien befinden.
  • Die Klassen Euro, Ruble und USD müssen die Methode getCurrencyName implementieren.
  • Die Methode getCurrencyName muss die Abkürzung der entsprechenden Währung (Zeichenkette) zurückgeben.
  • Die Klassen Euro, Ruble und USD müssen einen öffentlichen (public) Konstruktor mit einem double-Parameter implementieren. Dieser Konstruktor muss den Wert des amount-Feldes der Money-Klasse setzen, indem der Konstruktor der Elternklasse mit demselben Parameter aufgerufen wird.
package de.codegym.task.task14.task1417; import java.util.ArrayList; import java.util.List; /* Währungen */ public class Solution { public static void main(String[] args) { Person paul = new Person("Paul"); //<----(3) and also here? for (Money money : paul.getAllMoney()) { // (4) <-- so why should i do it like that then? System.out.println(paul.name + " hat eine Notfallreserve von " + money.getAmount() + " " + money.getCurrencyName());//<<right now it doesnt find symbol getCurrencyName } } static class Person { public String name; private List<Money> allMoney; Person(String name) { //<---- (2) then i need to initialize it here no? this.name = name; this.allMoney = new ArrayList<Money>(); //<--- (1) if i add a list to the constructor //schreib hier deinen Code allMoney.add(new Euro()); allMoney.add(new Ruble()); allMoney.add(new USD()); } public List<Money> getAllMoney() { return allMoney; } } abstract class Money { private double amount; public double getAmount(){ return amount; } } class Euro extends Money { public Euro(double amount){ super.amount = amount; } public String getCurrencyName(){ return "EUR"; } } class Ruble extends Money { public Ruble(double amount){ super.amount = amount; } public String getCurrencyName(){ return "RUB"; } } class USD extends Money { public USD(double amount){ super.amount = amount; } public String getCurrencyName(){ return "USD"; } } }
+1
Kommentare (3)
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Thomas
Level 32 , Bayreuth, Germany
4 Juni 2020, 19:59
2. The constructor takes one parameter name and initializes the Person class field name. 1. Furthermore the constructor initializes the List allMoney and adds some values to it. No, you don't need to have a parameter for that. 3. Instantiating a new object of the class Person with 'Paul' as argument for the constructor. 4. A foreach loop. The collection is a method call that returns a list.
+2
hidden #10625598
Level 23
5 Juni 2020, 05:25
ja jetzt wenn ich das so anschaue macht das sinn, nur was muss ich machen damit das ganze funktioniert? momentan findet er das symbol für + money.getCurrencyName()) nicht, aber warum?
0
Thomas
Level 32 , Bayreuth, Germany
5 Juni 2020, 06:04
Weil du in der foreach Schleife Money Objekte bekommst und du in der Money Klasse keine getCurrencyName() Methode definiert hast. Das Symbol getCurrencyName ist also unbekannt.
+2
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.