Brauche Hilfe für Onlineshop Aufgabe für OOP Grundlagen

Status
Nicht offen für weitere Antworten.

Nighthawk2k7

Mitglied
Hallo ich hab hier eine aufgabe aus dem Studium einer Probeklausur.
Ich hab da mal eine Frage wie ihr das realisieren würdet, denn igrnedwie komm ich damit noch nicht so ganz klar. ich versteh die theorie der Objektorientierten Programmierung, allerdings hapert es noch an der Umsetzung in java, da ich in der Ausbildung nur Delphi gelernt hab.
in der Aufgabe geht es um folgendes:

Für einen Onlineshop sei folgendes Pflichtenheft gegeben:
1 Jeder Warenkorb hat eine fortlaufende Nummer.
2 Der erste Warenkorb erhält die nummer 1
3 Die Nummer eines Warenkorbs kann abgefragt, aber nicht geändert werden.
4 Eine Ware hat eine Bezeichnung und einen Preis
5 Beim neuanlegen einer Ware wird der preis und die bezeichnung gespeichert.
6 Die Bezeichnung einer Ware kann abgefragt, aber nicht geändert werden.
7 Der preis einer Ware kann abgefragt und geändert werden.
8 Ein Warenkorb kann eine Ware hinzugefügt werden.
9 Ein warenkorb kann bis zu 25 Waren hinzugefügt werden.
10Für einen Warenkorb kann der gesamtwert der enthalten Waren berechnet werden

man soll auch aufs Geheimnisprinzip achten, das es eingehlten wird.

Ich hab mir jetzt folgende Überlegungen gemacht:
Für die ersten beiden Punkte:
mein methode:
Code:
int anzahl;
	anzahl=Integer.parseInt(args[0]);
	Warenkorb[] warenkoerbe = new Warenkorb[anzahl];
	for (int i=0;i<warenkoerbe.length;i++)
	    warenkoerbe[i] = new Warenkorb(i);

zu Punkt 3: wird doch eine getmethode verwendet, wegen geheimnisprinzip oder?
zu Punkt 4: Geh ich richtig der annahme das für jede Ware ebenfalls ein Objekt erzeugt werden sollte, das dann in dem Warenkorb liegt oder wäre es besser z.b.: in dem Warenkorb als ein Attribut ein Array zu benutzen, das einer ware entspricht, bei jedem Element bis 25(Punkt 9)?

Eine ware sollte aber schon ein Objekt sein, da die Bezeichnung abgefrgat aber nicht geändert werden soll, während beim preis beides möglich sein soll.
Nur wie kann ich denn dann Ein Objekt Ware in das Objekt Warenkorb packen? Muss dann das objekt Warenkorb ein objekt Ware erstellen, das heißt das der Kontruktor des Warenkorbs den der Waren aufruft?

Bin für anregungen offen und danke schonmal für eure Zeit und hilfe.
 
S

SlaterB

Gast
> Für die ersten beiden Punkte:
was soll denn anzahl sein, wo ist von einem Array von Warenkorb die Rede?

die Nummer ist eine Exemplarvariable im Warenkorb,
die Nummer ist fortlaufend, also muss man den aktuellen Stand speichern, z.B. in einer statischen Variablen in der Klasse,

falls du bei jedem Programmstart diese forlaufende Nummer neu setzen möchtest, dann ist das Einlesen der Zahl gar nicht dumm,
aber sowas muss man doch kommenieren (und steht nicht in der Aufgabe)

damit die Nummer eindeutig ist sollte sie auf keinen Fall im Konstruktor mit übergeben werden,
stattdessen wählt der Konstruktor selber eine neue Nummer
(statische Variable +1)

3.) jo
4.) auf jeden Fall gibts Waren-Objekte, 25-er Array ist ne gute Idee,
aber wieder intern in Warenkorb drinnen, von außen weiß man davon nix

> Nur wie kann ich denn dann Ein Objekt Ware in das Objekt Warenkorb packen?

ganz einfach:
Ware x = ..;
Warenkorb y = ..;
y.addWare(x);

> Muss dann das objekt Warenkorb ein objekt Ware erstellen,
> das heißt das der Kontruktor des Warenkorbs den der Waren aufruft?

erstens: Warenkorb soll ein vorhandene Ware aufnehmen, keine neue erstellen?
und wenn überhaupt, dann würde das doch nicht im Konstruktor von Warenkorb passieren,
der wird doch nur bei der Erstellung des Warenkorbs verwendet,
nicht später wenn du Waren einfügst
 

Nighthawk2k7

Mitglied
Danke schonmal für deine Hilfe. Das waren nur so ein paar ideen meinerseits mit dem Array etc. Mir ist die theorie schon klar, allerdings hapert es noch an der umsetzung, damit das grobe auch ein Bild darstellt und alles sinn macht. Mal in Metaphern gesprochen. ;-)
Das mit dem add.ware werde ich mal ausprobieren, ich denke damit komm ich schonmal weiter. Wenn ich noch mal eine frage hab meld ich mich, aber erstmal weiter probieren, will ja auch was lernen.
 
T

TgSchueler

Gast
Generell würde ich erst einmal ein Klassendiagramm von der Aufgabe machen.

Übrigens:
Geheimnisprinzip, heißt, dass die Attribute und die nur Objektintern benutzten Methoden nicht public sein dürfen.
Deswegen brauchst du, wie du es schon gesagt hast, die set() und get() Methoden.(Dort wo halt steht kann abgefragt aber nicht geändert werden muss die set() Methode natürlich fehlen).

Geh ich richtig der annahme das für jede Ware ebenfalls ein Objekt erzeugt werden sollte, das dann in dem Warenkorb liegt oder wäre es besser z.b.: in dem Warenkorb als ein Attribut ein Array zu benutzen, das einer ware entspricht, bei jedem Element bis 25

Also das eine schließt das andere nicht aus, was bedeutet, es soll sich nicht ausschließen.
D.h du hast ein Attribut vom typ Ware[] in der Klasse Warenkorb.

Aber wie gesagt, mit einem Klassendiagramm wird so etwas offensichtlich.

Mal so nebenbei:

Wir auf dem normalen TG müssen, OOA nie auf dem Blatt programmieren, höchstens Algorithmen.
Müsst ihr das Zeug wirklich runtercoden???
Hat doch eigentlich wenig mit dem Ingineurswesen zu tun.


Denn wenn ihr auch nur Entwickeln müsst, dann brauchst du dir über Methoden Interne abläufe nicht viele Gedanken machen, und kannst die Sache erst mal logisch betrachten d.h.

Eine Ware hat:
-eine Bezeichnung:Zeichenkette
-einen Preis:KommaZahl

Ein Warenkorb
-hat eine nummer(fortlaufend als Name bietet sich ID oder index an)
-hat Waren also Ware[] (wie man dann intern bei einer hinzugefügten ware ein Arrayfeld hinzufügt, ist dann ne andere Sache aber: tmp[]=new Ware[ware.length+1];fülle alle ware felder in die Temp felder; füge ins letzte tmp feld den neuen Array wert. Oder du fügst gleich ein Attribut Array mit 25 Feldern hinzu:natürlich eleganter wenns schon so verlangt ist)
+hat eine Methode die gesamt Preis ausrechnet(natürlich nur neben den set und get Methoden

Ein Onlineshop hat:
-mehrere Warenkörbe[](muss unbedingt als Attribut stehen,damit das Schoppingsystem überhaupt ne Referenz zu den Warenkorben hat.)

Also das reicht erst mal für das Klassendiagramm, und das dann umzusetzen ist dann nur noch Algorithmusarbeit und Routine.


Freundliche grüße von einem zukünftigen IT-Student
 
S

SlaterB

Gast
ganz schön viel Mühe,
aber nach einem Monat auf die Frage eines quasi-anonymen Einmal-Besuchers? ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Brauche für meinen Java-Code dringend Hilfe Softwareentwicklung 4
C Datenbankn und Anwendung - brauche Tipps Softwareentwicklung 5
N Hilfe bei Chromedriver Softwareentwicklung 1
T Hilfe - Wie wird man zum Profi Softwareentwicklung 14
Thallius Hilfe bei SDS Document Softwareentwicklung 1
H [Java]Regex Hilfe Softwareentwicklung 3
M C# aufgabe hilfe Softwareentwicklung 3
Jay_030 Hudson: Hilfe bei Sonar-Integration Softwareentwicklung 4
W HILFE.>Kassendiagramm Softwareentwicklung 11
A Hilfe benötigt! Schulprojekt: Quiz Softwareentwicklung 2
I Object mit Hilfe eines Class-Objectes instanzieren Softwareentwicklung 3
F HTML Hilfe Softwareentwicklung 4
G Bitte Hilfe für mySQL in einem Query Softwareentwicklung 7
C Datumsberechnung Mit Hilfe von 2 Werten Softwareentwicklung 4
S Hilfe für anfänger Softwareentwicklung 7
M Plugins entwickeln für ein CMS welches unter der GPL V3 steht Softwareentwicklung 1
I Datenbankschema für Versionierung der Tabellen Softwareentwicklung 9
R Datenstruktur für einen rätselhaften Namen Softwareentwicklung 10
Rahim Post Conditions für InsertAt und remove Softwareentwicklung 1
P Thema für meine Projektarbeit die etwas mit Webautomatisierung zu tuen haben soll? Softwareentwicklung 1
H Entwurfsmuster für den Client der Rest API Softwareentwicklung 0
D Welche Technologien für App und web? Softwareentwicklung 3
Thallius oAuth2 und ClientCredentials für API sinnvoll? Softwareentwicklung 3
S Welche Programmiersprache für eine 3D-Software? Softwareentwicklung 6
N Technologie Grundlagen für eine "App" Softwareentwicklung 12
OnDemand Welches Tool für Planung Softwareentwicklung 2
B Sprache für 3D Physics Engine? Softwareentwicklung 3
K Maßnahmen für Softwarequalität Softwareentwicklung 2
N Graphenalgorithmen: Best Practice für Knoten-/Kanten-Attribute Softwareentwicklung 5
Z Analysemuster - Welches nehme ich für diese Problem? Softwareentwicklung 0
L Softwareentwicklung für Embedded Systems Softwareentwicklung 1
T Gibt es eine Software die Texte für Skype automartisch (automassage) sendet ? Softwareentwicklung 4
R Online-Plattform für Essensbestellungen mit der momentanen Bestellverfolgung Softwareentwicklung 1
S Suche: (Versionierungs)Tool für Klassenaustausch mit Kollegen, die auch an dem Projekt arbeiten Softwareentwicklung 5
R UML-Diagramm für mehrere JFrames Softwareentwicklung 0
S Algorithmus für perfekte Kombination Softwareentwicklung 2
U Individualsoftware - eine Gefahr für Kunden oder die günstigere Alternative? Softwareentwicklung 7
J Grafiken für eigene Apps ? Softwareentwicklung 2
V [Klassendesgin] Verhalten von Subklassen für Aufgabenteilung benutzen. Softwareentwicklung 2
KranzKrone Architektur für einfaches Gui Programm Softwareentwicklung 6
R freie Engine für IOS, Android, Blackberry Softwareentwicklung 11
T SMART für USB Sticks? Softwareentwicklung 9
BinaryLogic Software für Projektplanung und -Entwicklung Softwareentwicklung 19
A MVC & getter für GUI Komponenten Softwareentwicklung 5
S Abstractes/Schnittstellen für Objekte Softwareentwicklung 8
fastjack Welches Tool für Agile Softwareentwicklung? Softwareentwicklung 6
C Wiki für ein Uni - High Level Design Softwareentwicklung 5
S Design Pattern für zwei abhängige Klassen Softwareentwicklung 8
Mike90 Lizenz für eigene software Softwareentwicklung 9
V Welche Programmisprache für den Desktop? Softwareentwicklung 17
V Zeitplanung für JUnit-Tests? Softwareentwicklung 9
Jay_030 Checkstyle: Lösungsvorschläge für Design for Extension Softwareentwicklung 7
B Allgemeine Fragen für eigenes Projekt Softwareentwicklung 4
P Sensibilität für Codequalität fördern Softwareentwicklung 17
B Empfehlung für Datenbankschulung? Softwareentwicklung 2
D Beispiele für Patterns Softwareentwicklung 3
K Aufwandsabschätzung für User Stories Softwareentwicklung 8
Torres SDK für automatische Bildkorrektur Softwareentwicklung 3
martin82 Tool für IT-Requests Softwareentwicklung 5
Z Welche Software für Web Anwendungen/Spiel Softwareentwicklung 3
Quaxli Suche Tutorial für Jasper Report - speziell iReport Softwareentwicklung 8
Outsourcer Webservertechnologie für Objekterkennung Softwareentwicklung 7
Landei SSH für VMware GSX mit Windows? Softwareentwicklung 2
ARadauer jetzt wirds zeit für Delphi Softwareentwicklung 6
X JavaScript Plugin für Eclipse Softwareentwicklung 3
sparrow Welche Lizenz für ein offenes Programm Softwareentwicklung 2
ARadauer Code Konvention für Datenbanken Softwareentwicklung 5
G Suche Programm für Masken Design für Pflichtenheft Softwareentwicklung 5
S Wie weiter gehen und tutorial für MVC Softwareentwicklung 20
G Pattern für Datenbank Anwendung Softwareentwicklung 22
m@nu Anti-Spam-System für Blog bauen Softwareentwicklung 3
B Was ist besser für Grafiken? Java oder C#? Softwareentwicklung 9
N Für und Wieder von Java und .NET (primär C#) | Performance Softwareentwicklung 6
G 1 Benutzeroberfläche für 3 einzelne Programme! Softwareentwicklung 9
D Programme für UML Softwareentwicklung 3
A Was ist die richtige Lizenz für mich? Softwareentwicklung 2
R Tool für Anforderungsermittlung, Bugtracking und Test Softwareentwicklung 4
V Antwort bewerten (Nur etwas für Experten!) Softwareentwicklung 15
D cheat für ein spiel fixen Softwareentwicklung 19
F IDE für VB Softwareentwicklung 4
K Design Pattern für einen simple Rechenmaschine Softwareentwicklung 18
S Beispiel für MVC gesucht Softwareentwicklung 53
F Kleines Programm für Windows Softwareentwicklung 2
K Buch oder Online-Tutorium für Programmentwicklung (Anfänge) Softwareentwicklung 5
J Beispiel für Besuchermuster Softwareentwicklung 6
M Übersetzer für Programmhilfe gesucht Softwareentwicklung 2
M Disclaimer für eigene Programme? Softwareentwicklung 3
U Geeignete Plattform für Projekt (JSP, PHP, Java-Anwendung) Softwareentwicklung 7
S Open Source Software für UML Softwareentwicklung 8
R Ein Thread für eine Methode Softwareentwicklung 2
I regualar expression für Konstruktoren Softwareentwicklung 4
B Wo bekommt man fertige Java-Programme (z.B. für Lsg LGS) Softwareentwicklung 3

Ähnliche Java Themen

Neue Themen


Oben