Hallöchen zusammen in die Runde!
Ich bin neu hier und habe dieses Forum per Zufalls-Google'lei gefunden und dachte mir, dass ich mich mal anmelde.
Zu mir: Ich habe vor drei Wochen angefangen, Java zu lernen und versuche mich quasi selbst per "Crash-Kurs" weiterzubilden. Mein Ziel ist es, bei einer ausgesuchten Firma eine Ausbildung zum Fachinformatiker - Anwendungsentwicklung zu beginnen und ich hoffe, dass ich mit diesem Tutorial mein Ziel erreiche und die Firma überzeuge kann.
Folgendes:
Ich bearbeite zur Zeit Übungsaufgaben des Java Tutorial interaktiv - Programmieren lernen mit Java und bin mittlerweile bei Kapitel 50 angekommen. Nun denn, ich habe mich an die Programmieraufgaben gewagt, die da besagen:
"Aufgabe 1 — Old Scotch
Erstellen Sie eine Klasse Artikel mit den Instanzvariablen artikelNr, bezeichnung, einkaufspreis und lagerzeit (Monate). Deklarieren Sie zwei Konstanten:
final double HANDELSSPANNE = 0.6 ; // 60 Prozent des Einkaufspreises
final double MWST = 0.19 ; // 19 Prozent
Erstellen Sie einen Konstruktor, der die Artikelobjekte initialisiert (alle Instanzvariablen).
Schreiben Sie eine öffentliche anzeigen() Methode, die die Artikelinformationen ausgibt und eine öffentliche Methode zum Berechnen des Verkaufspreises:
public int berechneVerkaufspreis()
Der Verkaufspreis ergibt sich aus der Summe von Einkaufspreis und Handelsspanne zuzüglich Mehrwertsteuer. Das Ergebnis wird auf eine ganze Zahl abgerundet.
Erzeugen Sie in der Klasse ArtikelTester zwei Artikelobjekte und testen Sie die Methoden.
Die Ausgabe des Programms sieht dann z.B. folgendermaßen aus:
Die zweite Aufgabe lautet:
"Aufgabe 2 — Sonderposten
Leiten Sie eine Klasse Sonderposten von der Klasse Artikel ab. Die Subklasse erweitert die Superklasse, um die Instanzvariable rabatt.
Erstellen Sie unter Verwendung des Konstruktors der Superklasse einen Konstruktor, der die Objekte der Subklasse initialisiert. Die Initialisierung der Instanzvariablen rabatt wird vom Konstruktor je nach Lagerzeit übernommen. Bei einer Lagerzeit größer 12 Monate wird ein Rabatt auf dem Verkaufspreis von 30 Prozent gewährt. Andernfalls beträgt der Rabatt 10 Prozent.
Schreiben Sie eine Methode anzeigen() für die Subklasse, die die anzeigen() Methode der Superklasse überschreibt.
Schreiben Sie eine Methode berechneVerkaufspreis(), die ebenfalls die Methode der Superklasse überschreibt.
Die Ausgabe des Programms sieht dann z.B. ungefähr wie folgt aus:
Meine Frage: An sich habe ich die Aufgaben verstanden und auch bearbeitet. Es hieß nur z.B. speziell in Aufgabe 1, dass ich 4 Instanzvariablen deklarieren soll. Bei mir sind es 7
.
Aufgabe 2 war auch relativ logisch, doch habe ich im Nachhinein mein Programm mal durchgeschaut und auf dem ersten Blick denke ich mir: "Hm, irgendwie unübersichtlich und wahrscheinlich ein ganz schlechter Stil, sodass andere vielleicht Probleme bekommen könnten, es nachzuvollziehen."
Kann ich mein Programm durch einfache Kniffe irgendwie... nun... vereinfachen?
Ich zeige Euch mal mein Programm:
Zur Erklärung:
Ich bin ein ganz blutiger (fast schon verblutender
) Anfänger und hoffe, dass ich Euch mit meinem Problemchen nicht langweile.
Vielen Dank schonmal im Voraus!
Liebe Grüße
Marcel
Ich bin neu hier und habe dieses Forum per Zufalls-Google'lei gefunden und dachte mir, dass ich mich mal anmelde.
Zu mir: Ich habe vor drei Wochen angefangen, Java zu lernen und versuche mich quasi selbst per "Crash-Kurs" weiterzubilden. Mein Ziel ist es, bei einer ausgesuchten Firma eine Ausbildung zum Fachinformatiker - Anwendungsentwicklung zu beginnen und ich hoffe, dass ich mit diesem Tutorial mein Ziel erreiche und die Firma überzeuge kann.
Folgendes:
Ich bearbeite zur Zeit Übungsaufgaben des Java Tutorial interaktiv - Programmieren lernen mit Java und bin mittlerweile bei Kapitel 50 angekommen. Nun denn, ich habe mich an die Programmieraufgaben gewagt, die da besagen:
"Aufgabe 1 — Old Scotch
Erstellen Sie eine Klasse Artikel mit den Instanzvariablen artikelNr, bezeichnung, einkaufspreis und lagerzeit (Monate). Deklarieren Sie zwei Konstanten:
final double HANDELSSPANNE = 0.6 ; // 60 Prozent des Einkaufspreises
final double MWST = 0.19 ; // 19 Prozent
Erstellen Sie einen Konstruktor, der die Artikelobjekte initialisiert (alle Instanzvariablen).
Schreiben Sie eine öffentliche anzeigen() Methode, die die Artikelinformationen ausgibt und eine öffentliche Methode zum Berechnen des Verkaufspreises:
public int berechneVerkaufspreis()
Der Verkaufspreis ergibt sich aus der Summe von Einkaufspreis und Handelsspanne zuzüglich Mehrwertsteuer. Das Ergebnis wird auf eine ganze Zahl abgerundet.
Erzeugen Sie in der Klasse ArtikelTester zwei Artikelobjekte und testen Sie die Methoden.
Die Ausgabe des Programms sieht dann z.B. folgendermaßen aus:
Code:
SC123-F "DUFFY MALT Whisky" EK: 10.0 VK: 19 Euro Lagerzeit: 3 Monate
SC347-A "GLEN MORANGIE MALT Whisky" EK: 55.0 VK: 104 Euro Lagerzeit: 15 Monate"[/SIZE]
Die zweite Aufgabe lautet:
"Aufgabe 2 — Sonderposten
Leiten Sie eine Klasse Sonderposten von der Klasse Artikel ab. Die Subklasse erweitert die Superklasse, um die Instanzvariable rabatt.
Erstellen Sie unter Verwendung des Konstruktors der Superklasse einen Konstruktor, der die Objekte der Subklasse initialisiert. Die Initialisierung der Instanzvariablen rabatt wird vom Konstruktor je nach Lagerzeit übernommen. Bei einer Lagerzeit größer 12 Monate wird ein Rabatt auf dem Verkaufspreis von 30 Prozent gewährt. Andernfalls beträgt der Rabatt 10 Prozent.
Schreiben Sie eine Methode anzeigen() für die Subklasse, die die anzeigen() Methode der Superklasse überschreibt.
Schreiben Sie eine Methode berechneVerkaufspreis(), die ebenfalls die Methode der Superklasse überschreibt.
Die Ausgabe des Programms sieht dann z.B. ungefähr wie folgt aus:
Code:
SC123-F "DUFFY MALT Whisky" EK: 10.0 VK: 19 Euro Lagerzeit: 3 Monate
Sonderposten:
SC123-F "DUFFY MALT Whisky" EK: 10.0 VK: 17 Euro Lagerzeit: 3 Monate
(VK <alt>: 19 Euro; Rabatt: 10%)
Sonderposten:
SC347-A "GLEN MORANGIE MALT Whiskey" EK: 55.0 VK: 72 Euro Lagerzeit: 15 Monate
(VK <alt>: 104 Euro; Rabatt: 30%)"[/SIZE]
Meine Frage: An sich habe ich die Aufgaben verstanden und auch bearbeitet. Es hieß nur z.B. speziell in Aufgabe 1, dass ich 4 Instanzvariablen deklarieren soll. Bei mir sind es 7
Aufgabe 2 war auch relativ logisch, doch habe ich im Nachhinein mein Programm mal durchgeschaut und auf dem ersten Blick denke ich mir: "Hm, irgendwie unübersichtlich und wahrscheinlich ein ganz schlechter Stil, sodass andere vielleicht Probleme bekommen könnten, es nachzuvollziehen."
Kann ich mein Programm durch einfache Kniffe irgendwie... nun... vereinfachen?
Ich zeige Euch mal mein Programm:
Java:
class Artikel //Superclass
{
double verkaufspreis;
String artikelNr;
String bezeichnung;
double einkaufspreis;
int lagerzeit;
final double HANDELSSPANNE = 0.6;
final double MWST = 0.19;
public Artikel(String art, String bez, double preis, int zeit)
{
artikelNr = art;
bezeichnung = bez;
einkaufspreis = preis;
lagerzeit = zeit;
}
public void anzeigen()
{
System.out.println(artikelNr + " " + bezeichnung + " EK: " + einkaufspreis + " VK: " + (int)verkaufspreis + " Lagerzeit: " + lagerzeit + " Monate");
}
public int berechneVerkaufspreis()
{
verkaufspreis = (einkaufspreis + (einkaufspreis * HANDELSSPANNE));
verkaufspreis = verkaufspreis + verkaufspreis * MWST;
return (int)verkaufspreis;
}
}
class Sonderposten extends Artikel //Subclass
{
int rabatt;
double rabattpreis;
public Sonderposten(String art, String bez, double preis, int zeit)
{
super(art, bez, preis, zeit);
if ( lagerzeit > 12 )
{
rabatt = 30;
}
if (lagerzeit <= 12)
{
rabatt = 10;
}
}
public void anzeigen()
{
System.out.println("\n++SONDERPOSTEN++");
System.out.println(artikelNr + " " + bezeichnung + " EK: " + einkaufspreis + " VK: " + (int)rabattpreis + " Lagerzeit: " + lagerzeit + " Monate");
System.out.println("(VK <alt>: " + (int)verkaufspreis + " Rabatt: " + rabatt + "%)");
}
public int berechneVerkaufspreis()
{
rabattpreis = super.berechneVerkaufspreis() - super.berechneVerkaufspreis() / 100.0 * rabatt;
return (int)rabattpreis;
}
}
public class ArtikelTester //Testclass
{
public static void main( String[] args )
{
Artikel artikelA = new Artikel("SC123-F", "DUFFY MALT Whisky", 10.0, 3);
Artikel artikelB = new Artikel("SC347-A", "GLEN MORANGIE MALT Whiksy", 55.0, 19);
artikelA.berechneVerkaufspreis();
artikelB.berechneVerkaufspreis();
artikelA.anzeigen();
artikelB.anzeigen();
Sonderposten sonderA = new Sonderposten("SC123-F", "DUFFY MALT Whisky", 10.0, 3);
Sonderposten sonderB = new Sonderposten("SC347-A", "GLEN MORANGIE MALT Whiksy", 55.0, 19);
sonderA.berechneVerkaufspreis();
sonderB.berechneVerkaufspreis();
sonderA.anzeigen();
sonderB.anzeigen();
}
}
Zur Erklärung:
Ich bin ein ganz blutiger (fast schon verblutender
Vielen Dank schonmal im Voraus!
Liebe Grüße
Marcel
Zuletzt bearbeitet: