Guten Tag
ich versuche gerade HashMap mir wieder selber verständlicher zu machen. Dazu habe ich folgende aufgabenstellung.
a),b) sind meiner meinung nach richtig. nur bei aufgabenstellung c) bin ich mir nicht sicher ob das stimmt was ich dort schreibe. ich würde auch noch gerne wissen warum ich schreiben muss (HashMap<Integer, Artikel>). Wieso reicht für "Integer" kein "int".
Müssen abgeleitete Methoden immer den selben Sichtbarkeitstatus haben wie die Oberklassenmethoden?
Danke schonmal im Vorraus
Geldbeträge brauchen nicht gerundet zu werden.
a) Schreiben Sie für eine Kassen-Software eine Klasse Artikel, die als Attribute eine ganzzahlige Artikelnummer, den Nettopreis in Cent und einen beschreibenden String hat.
Fügen Sie einen Konstruktor hinzu, der die Attribute mit als Parameter übergebenen Werten belegt.
Fügen Sie die Methode getPreis hinzu. Diese gibt den Nettopreis in Cent für diesen Artikel zurück, es sei denn die boolean-Konstante Aktionen.MINUS_ZWANZIG hat den Wert true. In diesem Fall wird der um 20% reduzierte Cent-Betrag zurückgegeben. (Die Klasse Aktionen muss nicht definiert werden.)
Fügen Sie eine Methode getMwstBetrag hinzu. Diese gibt den Mehrwertsteuerbetrag für diesen Artikel in Cent zurück. Der gewöhnliche Mehrwertsteuersatz ist 19%.
b) In den folgenden Aufgaben können Sie davon ausgehen, dass für jedes Attribut von Artikel Getter und Setter existieren. Schreiben Sie eine von Artikel abgeleitete Klasse Tiernahrung, die die ererbten Methoden getPreis und getMwstBetrag wie folgt modifiziert: Der Wert von Aktionen.MINUS_ZWANZIG hat keinen Einfluss auf getPreis, der Mehrwertsteuersatz ist hier 7%.
c) Schreiben Sie eine main-Methode, die eine HashMap namens lager anlegt. Diese soll so parametrisiert werden, dass sie den Zugriff auf einen Artikel über dessen Artikelnummer erlaubt. Erzeugen Sie einen „Hundekuchen“ mit Artikelnummer 4711, Nettopreis 200 Cent, und fügen Sie ihn in lager ein. Ermitteln Sie mit Hilfe von lager den Preis des Artikels mit der Artikelnummer 12345 und geben Sie diesen aus.
ich versuche gerade HashMap mir wieder selber verständlicher zu machen. Dazu habe ich folgende aufgabenstellung.
a),b) sind meiner meinung nach richtig. nur bei aufgabenstellung c) bin ich mir nicht sicher ob das stimmt was ich dort schreibe. ich würde auch noch gerne wissen warum ich schreiben muss (HashMap<Integer, Artikel>). Wieso reicht für "Integer" kein "int".
Müssen abgeleitete Methoden immer den selben Sichtbarkeitstatus haben wie die Oberklassenmethoden?
Danke schonmal im Vorraus
Geldbeträge brauchen nicht gerundet zu werden.
a) Schreiben Sie für eine Kassen-Software eine Klasse Artikel, die als Attribute eine ganzzahlige Artikelnummer, den Nettopreis in Cent und einen beschreibenden String hat.
Fügen Sie einen Konstruktor hinzu, der die Attribute mit als Parameter übergebenen Werten belegt.
Fügen Sie die Methode getPreis hinzu. Diese gibt den Nettopreis in Cent für diesen Artikel zurück, es sei denn die boolean-Konstante Aktionen.MINUS_ZWANZIG hat den Wert true. In diesem Fall wird der um 20% reduzierte Cent-Betrag zurückgegeben. (Die Klasse Aktionen muss nicht definiert werden.)
Fügen Sie eine Methode getMwstBetrag hinzu. Diese gibt den Mehrwertsteuerbetrag für diesen Artikel in Cent zurück. Der gewöhnliche Mehrwertsteuersatz ist 19%.
b) In den folgenden Aufgaben können Sie davon ausgehen, dass für jedes Attribut von Artikel Getter und Setter existieren. Schreiben Sie eine von Artikel abgeleitete Klasse Tiernahrung, die die ererbten Methoden getPreis und getMwstBetrag wie folgt modifiziert: Der Wert von Aktionen.MINUS_ZWANZIG hat keinen Einfluss auf getPreis, der Mehrwertsteuersatz ist hier 7%.
c) Schreiben Sie eine main-Methode, die eine HashMap namens lager anlegt. Diese soll so parametrisiert werden, dass sie den Zugriff auf einen Artikel über dessen Artikelnummer erlaubt. Erzeugen Sie einen „Hundekuchen“ mit Artikelnummer 4711, Nettopreis 200 Cent, und fügen Sie ihn in lager ein. Ermitteln Sie mit Hilfe von lager den Preis des Artikels mit der Artikelnummer 12345 und geben Sie diesen aus.
Java:
package Comparable_üben;
import java.util.HashMap;
public class Artikel {
int artikelnummer = 0;
int nettopreis = 0;
String name="";
Artikel(int artikelnummer, int nettopreis, String name){
this.artikelnummer = artikelnummer;
this.nettopreis = nettopreis;
this.name = name;
}
public int getPreis(){
if(Aktionen.MINUS_ZWANIG == true){
return ( nettopreis *80)/100;
}
return nettopreis;
}
public int getMwstBetrag(){
return(nettopreis * 19)/100;
}
}
class Tiernahrung extends Artikel{
Tiernahrung(int artikelnummer, int nettopreis, String name) {
super(artikelnummer, nettopreis, name);
}
public int getPreis(){
return nettopreis;
}
public int getMwstBetrag(){
return (nettopreis * 7)/100;
}
public static void main(String[] args) {
Artikel a;
int n;
HashMap<Integer,Artikel> lager = new HashMap();
Artikel hundekuchen = new Artikel (4711,200,"Hundekuchen");
lager.put(4711, hundekuchen);
a = lager.get(12345);
n = a.getPreis();
}
}