online Shop
parent
f29ef016d8
commit
33a17b38f8
|
@ -9,12 +9,12 @@ import java.awt.event.ActionListener;
|
||||||
|
|
||||||
public class ButtonBeispiel {
|
public class ButtonBeispiel {
|
||||||
|
|
||||||
static JFrame frame = new JFrame("JButton demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
|
static JFrame frame = new JFrame("JButton demo");
|
||||||
static JButton plus_button = new JButton("+1"); // plus_button إسمه Button هنا أنشأنا
|
static JButton plus_button = new JButton("+1");
|
||||||
static JButton minus_button = new JButton("-1"); // minus_button إسمه Button هنا أنشأنا
|
static JButton minus_button = new JButton("-1");
|
||||||
static JLabel label = new JLabel("0"); // label إسمه Label هنا أنشأنا
|
static JLabel label = new JLabel("0");
|
||||||
|
|
||||||
static int counter = 0; // سنستخدم هذه المتغير كعداد
|
static int counter = 0;
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
@ -24,6 +24,13 @@ public class ButtonBeispiel {
|
||||||
label.setText("" + (++counter)); // plus_button عند النقر على الـ label واحداً ثم توضع كنص للـ counter ستزيد قيمة المتغير
|
label.setText("" + (++counter)); // plus_button عند النقر على الـ label واحداً ثم توضع كنص للـ counter ستزيد قيمة المتغير
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
plus_button.addActionListener(e -> label.setText("" + (++counter)));
|
||||||
|
plus_button.addActionListener(e -> new Test());
|
||||||
|
plus_button.addActionListener(e -> test());
|
||||||
|
|
||||||
|
plus_button.addActionListener(e -> new ButtonBeispiel().new InnereKalsse());
|
||||||
|
|
||||||
|
|
||||||
minus_button.addActionListener(new ActionListener() { // minus_button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر
|
minus_button.addActionListener(new ActionListener() { // minus_button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر
|
||||||
@Override
|
@Override
|
||||||
|
@ -42,5 +49,33 @@ public class ButtonBeispiel {
|
||||||
frame.setVisible(true); // هنا جعلنا النافذة مرئية
|
frame.setVisible(true); // هنا جعلنا النافذة مرئية
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void test() {
|
||||||
|
|
||||||
|
class Test{
|
||||||
|
|
||||||
|
Test(){
|
||||||
|
System.out.println("Lokale Klasse");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new Test();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class InnereKalsse{
|
||||||
|
InnereKalsse(){
|
||||||
|
System.out.println("Hallo InnereKalsse");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class Test{
|
||||||
|
|
||||||
|
Test(){
|
||||||
|
System.out.println("Hallo Test");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
package Lambda;
|
||||||
|
|
||||||
|
public class FunctionalInterfaceTest {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
berechneFunktion f = (a,b) -> a+b;
|
||||||
|
|
||||||
|
System.out.println(f.berechne(12, 12));
|
||||||
|
|
||||||
|
SwissKnife d = name -> System.out.println("obai");;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
interface berechneFunktion{
|
||||||
|
|
||||||
|
int berechne(int a , int b);
|
||||||
|
}
|
||||||
|
|
||||||
|
@FunctionalInterface
|
||||||
|
interface SwissKnife {
|
||||||
|
|
||||||
|
default int compare(int i1, int i2) {
|
||||||
|
return i1 - i2;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void run() {
|
||||||
|
System.out.println("Running !");
|
||||||
|
}
|
||||||
|
|
||||||
|
void welcomify(String name);
|
||||||
|
}
|
|
@ -1,5 +1,4 @@
|
||||||
package OnlineShop.Main;
|
package OnlineShop.Main;
|
||||||
|
|
||||||
import OnlineShop.UI.TUI;
|
import OnlineShop.UI.TUI;
|
||||||
import OnlineShop.domain.ExceptionsKlassen.*;
|
import OnlineShop.domain.ExceptionsKlassen.*;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ public class TUI {
|
||||||
private void startProgramm() throws Exception {
|
private void startProgramm() throws Exception {
|
||||||
System.out.println("<< Willkommen in meinem Online Shop >>");
|
System.out.println("<< Willkommen in meinem Online Shop >>");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
if (kaufhalle.produkteLaden()) {
|
if (kaufhalle.produkteLadenImSystem()) {
|
||||||
System.out.println("Meine aktuelle Produkte: ");
|
System.out.println("Meine aktuelle Produkte: ");
|
||||||
|
|
||||||
for (String p : kaufhalle.zeigeProdukte())
|
for (String p : kaufhalle.zeigeProdukte())
|
||||||
|
@ -34,124 +34,119 @@ public class TUI {
|
||||||
while (programmAktive) {
|
while (programmAktive) {
|
||||||
System.out.println("Wählen Sie bitte ein Option aus: ");
|
System.out.println("Wählen Sie bitte ein Option aus: ");
|
||||||
System.out.println("1. Produkte auswählen");
|
System.out.println("1. Produkte auswählen");
|
||||||
System.out.println("2. Alle Produkte im Warenkorb anzeigen");
|
|
||||||
System.out.println("3. Einkauf Beenden!");
|
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
optionAuswahl = eingabe.nextLine();
|
optionAuswahl = eingabe.nextLine();
|
||||||
|
|
||||||
switch (optionAuswahl) {
|
switch (optionAuswahl) {
|
||||||
case "1":
|
case "1":
|
||||||
ProdukteAuwählenUI();
|
WarenkorbEditieren();
|
||||||
break;
|
|
||||||
|
|
||||||
case "2":
|
|
||||||
System.out.println("Anzahl Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
|
||||||
try {
|
|
||||||
for (String p : kaufhalle.zeigeAlleProdukteImWarenkorb())
|
|
||||||
System.out.println(p);
|
|
||||||
|
|
||||||
System.out.println("Möchten Sie die ausgewählte Produkte bestellen Ja/Nein");
|
|
||||||
System.out.print(">");
|
|
||||||
String bestellung = eingabe.nextLine();
|
|
||||||
if (bestellung.equalsIgnoreCase("ja")) {
|
|
||||||
System.out.println("Geben Sie bitte Ihren Name ein:");
|
|
||||||
System.out.print(">");
|
|
||||||
String name = eingabe.nextLine();
|
|
||||||
System.out.println("Geben Sie bitte Ihren Anschrift ein:");
|
|
||||||
System.out.print(">");
|
|
||||||
String anschrift = eingabe.nextLine();
|
|
||||||
try {
|
|
||||||
kaufhalle.getKundenDaten(name, anschrift);
|
|
||||||
System.out.println(kaufhalle.sendBestellung());
|
|
||||||
System.out.println("Betrag bitte eingeben: ");
|
|
||||||
System.out.print(">");
|
|
||||||
double betrag = eingabe.nextDouble();
|
|
||||||
if (kaufhalle.getBetrag(betrag))
|
|
||||||
kaufhalle.speichereBestellung();
|
|
||||||
|
|
||||||
|
|
||||||
} catch (LeereEingabeException e) {
|
|
||||||
System.out.println(e.getMessage());
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
shwoOptions();
|
|
||||||
|
|
||||||
} catch (KeineProdukteImWarenkorb e) {
|
|
||||||
System.out.println(e.getMessage());
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ProdukteAuwählenUI() throws Exception {
|
private void WarenkorbEditieren() throws Exception {
|
||||||
boolean einkaufAktive = true;
|
boolean einkaufAktive = true;
|
||||||
String weiterEinkaufen;
|
String weiterEinkaufen;
|
||||||
int menge;
|
|
||||||
while (einkaufAktive) {
|
while (einkaufAktive) {
|
||||||
System.out.println("Wählen Sie bitte ein Option aus: ");
|
|
||||||
System.out.println("1. Prpdukte auswählen und zu Ihrem Warenkorb senden");
|
System.out.println("1. Prpdukte auswählen und zu Ihrem Warenkorb senden");
|
||||||
System.out.println("2. Prpdukte aus dem Warenkorb löschen");
|
|
||||||
System.out.println("3. Zurück zum Hauptmenu");
|
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
optionAuswahl = eingabe.nextLine();
|
optionAuswahl = eingabe.nextLine();
|
||||||
switch (optionAuswahl) {
|
|
||||||
case "1":
|
switch(optionAuswahl) {
|
||||||
while (true) {
|
case "1":
|
||||||
System.out.print("Name der Produkt: > ");
|
while (true) {
|
||||||
String produktName = eingabe.nextLine();
|
System.out.print("Name der Produkt: > ");
|
||||||
|
String produktName = eingabe.nextLine();
|
||||||
System.out.print("Menge > ");
|
System.out.print("Menge > ");
|
||||||
menge = eingabe.nextInt();
|
int menge = eingabe.nextInt();
|
||||||
try {
|
try {
|
||||||
kaufhalle.addProduktZuWarenkorb(produktName,menge);
|
kaufhalle.addProduktZuWarenkorb(produktName,menge);
|
||||||
for (String p : kaufhalle.zeigeProdukte())
|
} catch (ProduktNichtGefundenException e) {
|
||||||
System.out.println(p);
|
System.out.println(e.getMessage());
|
||||||
} catch (ProduktNichtGefundenException e) {
|
}
|
||||||
System.out.println(e.getMessage());
|
|
||||||
|
System.out.println("Weitere Produkte auswählen Ja/Nein");
|
||||||
|
System.out.print(">");
|
||||||
|
weiterEinkaufen = eingabe.nextLine();
|
||||||
|
if (weiterEinkaufen.equalsIgnoreCase("ja"))
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
System.out.println(
|
|
||||||
"Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
|
||||||
System.out.println("Weitere Produkte auswählen Ja/Nein");
|
|
||||||
System.out.print(">");
|
|
||||||
weiterEinkaufen = eingabe.nextLine();
|
|
||||||
if (weiterEinkaufen.equalsIgnoreCase("ja"))
|
|
||||||
continue;
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "2":
|
|
||||||
while (true) {
|
|
||||||
System.out.print("Name der Produkt: > ");
|
|
||||||
String produktName = eingabe.nextLine();
|
|
||||||
if (kaufhalle.loescheProduktausWarenkorb(produktName) == true) {
|
|
||||||
System.out.println("Produkt erfolgreich gelöscht");
|
|
||||||
System.out.println(
|
|
||||||
"Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
|
||||||
} else
|
|
||||||
System.out.println("Produkt ist nicht in Ihrem Warenkorb");
|
|
||||||
|
|
||||||
System.out.println("Weiter Produkte aus dem Wrenkorb löschen Ja/Nein");
|
|
||||||
System.out.print(">");
|
|
||||||
String weitereProdukteLoeschen = eingabe.nextLine();
|
|
||||||
if (weitereProdukteLoeschen.equalsIgnoreCase("ja"))
|
|
||||||
continue;
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "3":
|
|
||||||
System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
|
||||||
shwoOptions();
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// private void ProdukteAuwählenUI() throws Exception {
|
||||||
|
// boolean einkaufAktive = true;
|
||||||
|
// String weiterEinkaufen;
|
||||||
|
// int menge;
|
||||||
|
// while (einkaufAktive) {
|
||||||
|
// System.out.println("Wählen Sie bitte ein Option aus: ");
|
||||||
|
// System.out.println("1. Prpdukte auswählen und zu Ihrem Warenkorb senden");
|
||||||
|
// System.out.println("2. Prpdukte aus dem Warenkorb löschen");
|
||||||
|
// System.out.println("3. Zurück zum Hauptmenu");
|
||||||
|
// System.out.print("> ");
|
||||||
|
// optionAuswahl = eingabe.nextLine();
|
||||||
|
// switch (optionAuswahl) {
|
||||||
|
// case "1":
|
||||||
|
// while (true) {
|
||||||
|
// System.out.print("Name der Produkt: > ");
|
||||||
|
// String produktName = eingabe.nextLine();
|
||||||
|
//
|
||||||
|
// System.out.print("Menge > ");
|
||||||
|
// menge = eingabe.nextInt();
|
||||||
|
// try {
|
||||||
|
// kaufhalle.addProduktZuWarenkorb(produktName,menge);
|
||||||
|
// for (String p : kaufhalle.zeigeProdukte())
|
||||||
|
// System.out.println(p);
|
||||||
|
// } catch (ProduktNichtGefundenException e) {
|
||||||
|
// System.out.println(e.getMessage());
|
||||||
|
// }
|
||||||
|
// System.out.println(
|
||||||
|
// "Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||||
|
// System.out.println("Weitere Produkte auswählen Ja/Nein");
|
||||||
|
// System.out.print(">");
|
||||||
|
// weiterEinkaufen = eingabe.nextLine();
|
||||||
|
// if (weiterEinkaufen.equalsIgnoreCase("ja"))
|
||||||
|
// continue;
|
||||||
|
// else
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
//
|
||||||
|
// case "2":
|
||||||
|
// while (true) {
|
||||||
|
// System.out.print("Name der Produkt: > ");
|
||||||
|
// String produktName = eingabe.nextLine();
|
||||||
|
//// if (kaufhalle.loescheProduktausWarenkorb(produktName) == true) {
|
||||||
|
//// System.out.println("Produkt erfolgreich gelöscht");
|
||||||
|
//// System.out.println(
|
||||||
|
//// "Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||||
|
//// } else
|
||||||
|
//// System.out.println("Produkt ist nicht in Ihrem Warenkorb");
|
||||||
|
//
|
||||||
|
// System.out.println("Weiter Produkte aus dem Wrenkorb löschen Ja/Nein");
|
||||||
|
// System.out.print(">");
|
||||||
|
// String weitereProdukteLoeschen = eingabe.nextLine();
|
||||||
|
// if (weitereProdukteLoeschen.equalsIgnoreCase("ja"))
|
||||||
|
// continue;
|
||||||
|
// else
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
//
|
||||||
|
// case "3":
|
||||||
|
// System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||||
|
// shwoOptions();
|
||||||
|
// break;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,47 +1,48 @@
|
||||||
package OnlineShop.domain;
|
package OnlineShop.domain;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.util.Date;
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Bestellung {
|
public class Bestellung {
|
||||||
|
|
||||||
private double kosten;
|
private double kosten;
|
||||||
|
private String formattedkosten;
|
||||||
|
private String kundeName;
|
||||||
private int gewicht;
|
private int gewicht;
|
||||||
private double versandKosten;
|
private double versandKosten;
|
||||||
private ArrayList<Produkt> tempProdukt;
|
private ArrayList<WarenkorbMenge> tempProdukt;
|
||||||
private LocalDate date;
|
private Date date;
|
||||||
|
|
||||||
public void gesamtKosten(ArrayList<Produkt> produkts) {
|
public Bestellung(ArrayList<WarenkorbMenge> produkts, String kundeName) {
|
||||||
tempProdukt = produkts;
|
this.tempProdukt = produkts;
|
||||||
|
this.kundeName = kundeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getKosten() {
|
public double getKosten() {
|
||||||
kosten = 0;
|
for (WarenkorbMenge p : tempProdukt) {
|
||||||
|
kosten += p.getProdukt().getPreis();
|
||||||
for (Produkt p : tempProdukt)
|
kosten *= p.getMenge();
|
||||||
kosten += p.getPreis();
|
}
|
||||||
|
formattedkosten = String.format("%.2f", kosten);
|
||||||
String formatted = String.format("%.2f", kosten);
|
formattedkosten = formattedkosten.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
||||||
formatted = formatted.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
|
||||||
double formattedDouble = Double.parseDouble(formatted);
|
return Double.parseDouble(formattedkosten);
|
||||||
|
|
||||||
return formattedDouble;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getGewicht() {
|
public int getGewicht() {
|
||||||
gewicht = 0;
|
gewicht = 0;
|
||||||
for (Produkt p : tempProdukt)
|
for (WarenkorbMenge p : tempProdukt) {
|
||||||
gewicht += p.getGewicht();
|
gewicht += p.getProdukt().getGewicht();
|
||||||
|
gewicht *= p.getMenge();
|
||||||
|
}
|
||||||
|
|
||||||
return gewicht;
|
return gewicht;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getVersandKosten() {
|
public double getVersandKosten() {
|
||||||
getGewicht();
|
getGewicht();
|
||||||
versandKosten = 0;
|
|
||||||
double gewichtInKg = gewicht / 1000.0;
|
double gewichtInKg = gewicht / 1000.0;
|
||||||
System.out.println("GeWicht: " + gewichtInKg);
|
System.out.println("gewichtInKg: " + gewichtInKg);
|
||||||
|
|
||||||
if (gewichtInKg < 1)
|
if (gewichtInKg < 1)
|
||||||
versandKosten += 5;
|
versandKosten += 5;
|
||||||
|
@ -54,30 +55,26 @@ public class Bestellung {
|
||||||
|
|
||||||
return versandKosten;
|
return versandKosten;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getGesamtKosten() {
|
public double getGesamtKosten() {
|
||||||
double gesmatKosten = kosten + versandKosten;
|
double gesmatKosten = kosten + versandKosten;
|
||||||
String formatted = String.format("%.2f", gesmatKosten);
|
String formatted = String.format("%.2f", gesmatKosten);
|
||||||
formatted = formatted.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
formatted = formatted.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
||||||
double formattedDouble = Double.parseDouble(formatted);
|
return Double.parseDouble(formatted);
|
||||||
|
|
||||||
return formattedDouble;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalDate getDate() {
|
public Date getDate() {
|
||||||
return date;
|
return date;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDate(LocalDate date) {
|
public void setDate(Date date) {
|
||||||
this.date = date;
|
this.date = date;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "kosten=" + kosten + ", gewicht=" + gewicht + ", versandKosten=" + versandKosten
|
return "Kunde= " + kundeName + ", kosten=" + formattedkosten + ", versandKosten=" + versandKosten + ", date="
|
||||||
+ ", tempProdukt=" + tempProdukt + ", date=" + date;
|
+ date;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,10 @@ import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
import org.junit.jupiter.api.*;
|
import org.junit.jupiter.api.*;
|
||||||
import OnlineShop.domain.*;
|
import OnlineShop.domain.*;
|
||||||
import OnlineShop.domain.ExceptionsKlassen.*;
|
|
||||||
|
|
||||||
class JTest {
|
class JTest {
|
||||||
Kaufhalle kaufhalle;
|
Kaufhalle kaufhalle;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setUp() throws Exception {
|
void setUp() throws Exception {
|
||||||
kaufhalle = new Kaufhalle();
|
kaufhalle = new Kaufhalle();
|
||||||
|
@ -15,17 +15,22 @@ class JTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test() throws Exception {
|
void test() throws Exception {
|
||||||
|
kaufhalle.produkteLadenImSystem();
|
||||||
|
kaufhalle.addProduktZuWarenkorb("hut", 10);
|
||||||
|
|
||||||
kaufhalle.produkteLaden();
|
kaufhalle.addProduktZuWarenkorb("hut", 5);
|
||||||
kaufhalle.addProduktZuWarenkorb("Hut",5);
|
kaufhalle.printTest();
|
||||||
kaufhalle.addProduktZuWarenkorb("Dosenwurst",6);
|
|
||||||
kaufhalle.addProduktZuWarenkorb("Hut",5);
|
|
||||||
|
|
||||||
for (String p : kaufhalle.zeigeAlleProdukteImWarenkorb())
|
|
||||||
System.out.println(p);
|
|
||||||
|
|
||||||
|
|
||||||
|
kaufhalle.loginKunde("Obai", "Mannheim");
|
||||||
|
kaufhalle.bestellen();
|
||||||
|
kaufhalle.speichereBestellung();
|
||||||
|
|
||||||
|
kaufhalle.addProduktZuWarenkorb("hut", 5);
|
||||||
|
kaufhalle.printTest();
|
||||||
|
kaufhalle.loginKunde("Omar", "Mannheim");
|
||||||
|
kaufhalle.bestellen();
|
||||||
|
kaufhalle.speichereBestellung();
|
||||||
|
kaufhalle.printbestellung();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,121 +1,116 @@
|
||||||
package OnlineShop.domain;
|
package OnlineShop.domain;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import OnlineShop.domain.ExceptionsKlassen.*;
|
import OnlineShop.domain.ExceptionsKlassen.*;
|
||||||
|
|
||||||
public class Kaufhalle {
|
public class Kaufhalle {
|
||||||
private ArrayList<Produkt> produkte;
|
private ArrayList<Produkt> produkte;
|
||||||
private ArrayList<Bestellung> Bestellungen;
|
private ArrayList<Bestellung> bestellungen;
|
||||||
private Kunde kunde;
|
private Kunde kunde;
|
||||||
private Bestellung aktuellBestelung;
|
private Bestellung akteulleBestellung;
|
||||||
|
|
||||||
public Kaufhalle() throws FileNotFoundException {
|
public Kaufhalle() throws FileNotFoundException {
|
||||||
this.produkte = new ArrayList<>();
|
this.produkte = new ArrayList<>();
|
||||||
this.kunde = new Kunde();
|
this.kunde = new Kunde();
|
||||||
this.Bestellungen = new ArrayList<>();
|
this.bestellungen = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean produkteLaden() throws FileNotFoundException {
|
public boolean produkteLadenImSystem() throws FileNotFoundException {
|
||||||
Scanner sc = new Scanner(new File(
|
return produkteLaden.produkteLaden(produkte);
|
||||||
"C:\\Users\\obaya\\git\\Programmierung2\\Programmierung2\\src\\OnlineShop\\domain\\produkte.csv"));
|
|
||||||
|
|
||||||
int cnt = 0;
|
|
||||||
while (sc.hasNextLine()) {
|
|
||||||
String produkt = sc.nextLine();
|
|
||||||
|
|
||||||
if (produkt.startsWith("Name"))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
String[] spalten = produkt.split(";");
|
|
||||||
spalten[2] = spalten[2].replaceAll(",", ".");
|
|
||||||
spalten[3] = spalten[3].substring(0, spalten[3].indexOf(","));
|
|
||||||
spalten[4] = spalten[4].substring(0, spalten[4].indexOf(","));
|
|
||||||
|
|
||||||
produkte.add(new Produkt(spalten[0], spalten[1], Float.parseFloat(spalten[2]), Integer.parseInt(spalten[3]),
|
|
||||||
Integer.parseInt(spalten[4])));
|
|
||||||
cnt++;
|
|
||||||
}
|
|
||||||
|
|
||||||
sc.close();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean addProduktZuWarenkorb(String Produktname, int menge) throws ProduktNichtGefundenException,Exception {
|
public boolean addProduktZuWarenkorb(String Produktname, int menge)
|
||||||
|
throws ProduktNichtGefundenException, Exception {
|
||||||
Produkt neueProdukt = findeProduktImKaufhalle(Produktname);
|
Produkt neueProdukt = findeProduktImKaufhalle(Produktname);
|
||||||
if (neueProdukt == null)
|
if (neueProdukt == null)
|
||||||
throw new ProduktNichtGefundenException("Produkt ist nicht Verfügbar!");
|
throw new ProduktNichtGefundenException("Produkt ist nicht Verfügbar!");
|
||||||
|
|
||||||
if (menge > neueProdukt.getBestand())
|
|
||||||
throw new Exception ("Errore");
|
|
||||||
|
|
||||||
for (int i = 0; i < menge; i++)
|
|
||||||
kunde.getWarenKorb().addProdukt(neueProdukt);
|
|
||||||
|
|
||||||
neueProdukt.setBestand(menge);
|
if (menge > neueProdukt.getBestand())
|
||||||
|
throw new Exception("Wir haben nicht genug Produktmenge im Lager!");
|
||||||
|
|
||||||
|
WarenkorbMenge wp = kunde.getWarenKorb().findWarenkorbMenge(Produktname);
|
||||||
|
if (wp != null)
|
||||||
|
wp.setMenge(wp.getMenge() + menge);
|
||||||
|
|
||||||
|
else {
|
||||||
|
WarenkorbMenge neueWarenkorbMenge = new WarenkorbMenge();
|
||||||
|
neueWarenkorbMenge.addProdukt(neueProdukt, menge);
|
||||||
|
kunde.getWarenKorb().addProdukt(neueWarenkorbMenge);
|
||||||
|
}
|
||||||
|
|
||||||
|
neueProdukt.setBestand(neueProdukt.getBestand() - menge);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean loescheProduktausWarenkorb(String Produktname) {
|
public boolean mengeaendern(String Produktname, int menge) throws ProduktNichtGefundenException {
|
||||||
return kunde.getWarenKorb().loescheprodukt(Produktname);
|
WarenkorbMenge akteulleProdukt = kunde.getWarenKorb().findWarenkorbMenge(Produktname);
|
||||||
|
|
||||||
|
if (akteulleProdukt == null)
|
||||||
|
throw new ProduktNichtGefundenException("Sie haben das Produkt nicht in Ihrem Warenkorb");
|
||||||
|
|
||||||
|
if (menge > akteulleProdukt.getProdukt().getBestand())
|
||||||
|
throw new ProduktNichtGefundenException("Wir haben nicht genug Produktmenge im Lager!");
|
||||||
|
|
||||||
|
akteulleProdukt.setMenge(menge);
|
||||||
|
akteulleProdukt.getProdukt().setBestand(akteulleProdukt.getProdukt().getBestand() - menge);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean loescheProdukt(String Produktname) throws ProduktNichtGefundenException {
|
||||||
|
WarenkorbMenge produktToBERemoved = kunde.getWarenKorb().findWarenkorbMenge(Produktname);
|
||||||
|
|
||||||
|
if (produktToBERemoved == null)
|
||||||
|
throw new ProduktNichtGefundenException("Sie haben das Produkt nicht in Ihrem Warenkorb");
|
||||||
|
|
||||||
|
return kunde.getWarenKorb().getProdukte().remove(produktToBERemoved);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean bestellen() throws ProduktNichtGefundenException {
|
||||||
|
if (kunde.getWarenKorb().getProdukte().size() == 0)
|
||||||
|
throw new ProduktNichtGefundenException("Sie haben das Produkt nicht in Ihrem Warenkorb");
|
||||||
|
|
||||||
|
akteulleBestellung = new Bestellung(kunde.getWarenKorb().getProdukte(), kunde.getName());
|
||||||
|
akteulleBestellung.getKosten();
|
||||||
|
akteulleBestellung.getVersandKosten();
|
||||||
|
kunde.getWarenKorb().getProdukte().clear();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean speichereBestellung() {
|
||||||
|
this.akteulleBestellung.setDate(new Date());
|
||||||
|
bestellungen.add(akteulleBestellung);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean loginKunde(String name, String anschrift) throws LeereEingabeException {
|
||||||
|
|
||||||
|
if (name.isEmpty() || anschrift.isEmpty())
|
||||||
|
throw new LeereEingabeException("Sie müssen Name sowie anschrift eingeben");
|
||||||
|
|
||||||
|
kunde.setName(name);
|
||||||
|
kunde.setAnschrift(anschrift);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Produkt findeProduktImKaufhalle(String Produktname) {
|
||||||
|
|
||||||
|
for (Produkt p : produkte)
|
||||||
|
if (p.getName().equalsIgnoreCase(Produktname))
|
||||||
|
return p;
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<String> zeigeProdukte() {
|
public ArrayList<String> zeigeProdukte() {
|
||||||
ArrayList<String> allProdukte = new ArrayList<>();
|
ArrayList<String> allProdukte = new ArrayList<>();
|
||||||
int index = 1;
|
int index = 1;
|
||||||
for (Produkt p : produkte)
|
for (Produkt p : produkte)
|
||||||
allProdukte.add(index++ + ".Produkt: " + p.print());
|
allProdukte.add(index++ + ".Produkt: " + p.toString());
|
||||||
|
|
||||||
return allProdukte;
|
return allProdukte;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Produkt findeProduktImKaufhalle(String name) {
|
|
||||||
|
|
||||||
for (Produkt p : produkte)
|
|
||||||
if (p.getName().equalsIgnoreCase(name))
|
|
||||||
return p;
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAnzahlDerAusgewählteProdukte() {
|
|
||||||
return kunde.getWarenKorb().getAnzahlProdkute();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArrayList<String> zeigeAlleProdukteImWarenkorb() throws KeineProdukteImWarenkorb {
|
|
||||||
return kunde.getWarenKorb().zeigeProdukteImWarenKorb();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String sendBestellung() {
|
|
||||||
aktuellBestelung = new Bestellung();
|
|
||||||
aktuellBestelung.gesamtKosten(kunde.getWarenKorb().getProdukte());
|
|
||||||
|
|
||||||
return "Produkts Kosten = " + aktuellBestelung.getKosten() + "\n" + "Versand Kosten = "
|
|
||||||
+ aktuellBestelung.getVersandKosten() + "\n" + "GesamtKosten(Produkts Ksoten + Versand Kosten) = "
|
|
||||||
+ aktuellBestelung.getGesamtKosten();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void getKundenDaten(String name, String anschrift) throws LeereEingabeException {
|
|
||||||
if (!name.isEmpty() && !name.isEmpty()) {
|
|
||||||
kunde.setName(name);
|
|
||||||
kunde.setAnschrift(anschrift);
|
|
||||||
return;
|
|
||||||
} else
|
|
||||||
throw new LeereEingabeException("Sie müssen Ihren Name sowie Ihren Anschrift eingeben");
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getBetrag(double betrag) {
|
|
||||||
System.out.println(aktuellBestelung.getGesamtKosten());
|
|
||||||
return betrag == aktuellBestelung.getGesamtKosten();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void speichereBestellung() {
|
|
||||||
aktuellBestelung.setDate(LocalDate.now());
|
|
||||||
Bestellungen.add(aktuellBestelung);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,19 @@
|
||||||
package OnlineShop.domain;
|
package OnlineShop.domain;
|
||||||
|
|
||||||
public class Kunde {
|
public class Kunde {
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
private String anschrift;
|
private String anschrift;
|
||||||
private Warenkorb warenKorb;
|
private Warenkorb warenKorb;
|
||||||
private double produktKosten;
|
|
||||||
;
|
|
||||||
|
|
||||||
public Kunde(String name, String anschrift) {
|
public Kunde(String name, String anschrift) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.anschrift = anschrift;
|
this.anschrift = anschrift;
|
||||||
this.produktKosten = 0.0;
|
|
||||||
this.warenKorb = new Warenkorb();
|
this.warenKorb = new Warenkorb();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Kunde() {
|
public Kunde() {
|
||||||
this(null,null);
|
this(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
@ -38,13 +35,4 @@ public class Kunde {
|
||||||
public Warenkorb getWarenKorb() {
|
public Warenkorb getWarenKorb() {
|
||||||
return warenKorb;
|
return warenKorb;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getProduktKosten() {
|
|
||||||
return produktKosten;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProduktKosten(double produktKosten) {
|
|
||||||
this.produktKosten = produktKosten;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ public class Produkt {
|
||||||
private double preis;
|
private double preis;
|
||||||
private int gewicht;
|
private int gewicht;
|
||||||
private int bestand;
|
private int bestand;
|
||||||
|
|
||||||
public Produkt(String name, String beschreibung, double preis, int gewicht, int bestand) {
|
public Produkt(String name, String beschreibung, double preis, int gewicht, int bestand) {
|
||||||
|
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
@ -35,20 +35,15 @@ public class Produkt {
|
||||||
public int getBestand() {
|
public int getBestand() {
|
||||||
return bestand;
|
return bestand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBestand(int bestand) {
|
public void setBestand(int bestand) {
|
||||||
this.bestand -= bestand;
|
this.bestand = bestand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String print() {
|
public String toString() {
|
||||||
return String.format("name=%s, beschreibung=%s, preis=%.2f, gewicht=%d, bestand=%d",
|
return String.format("name=%s, beschreibung=%s, preis=%.2f, gewicht=%d, bestand=%d", name, beschreibung, preis,
|
||||||
name, beschreibung, preis, gewicht, bestand);
|
gewicht, bestand);
|
||||||
}
|
|
||||||
|
|
||||||
public String printImWarenkorb() {
|
|
||||||
return String.format("name=%s, beschreibung=%s, preis=%.2f, gewicht=%d",
|
|
||||||
name, beschreibung, preis, gewicht);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -5,75 +5,27 @@ import java.util.ArrayList;
|
||||||
import OnlineShop.domain.ExceptionsKlassen.KeineProdukteImWarenkorb;
|
import OnlineShop.domain.ExceptionsKlassen.KeineProdukteImWarenkorb;
|
||||||
|
|
||||||
public class Warenkorb {
|
public class Warenkorb {
|
||||||
private ArrayList<Produkt> produkte;
|
private ArrayList<WarenkorbMenge> produkte;
|
||||||
private int anzahlProdkute;
|
|
||||||
|
|
||||||
Warenkorb() {
|
Warenkorb() {
|
||||||
produkte = new ArrayList<>();
|
this.produkte = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean addProdukt(Produkt neueProdukt) {
|
public boolean addProdukt(WarenkorbMenge neueWarenkorbMenge) {
|
||||||
produkte.add(neueProdukt);
|
produkte.add(neueWarenkorbMenge);
|
||||||
anzahlProdkute++;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean loescheprodukt(String name) {
|
public ArrayList<WarenkorbMenge> getProdukte() {
|
||||||
Produkt produktZuLoeschen = findeProduktImWarenkorb(name);
|
|
||||||
if (produktZuLoeschen == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
produkte.remove(produktZuLoeschen);
|
|
||||||
anzahlProdkute--;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Produkt findeProduktImWarenkorb(String name) {
|
|
||||||
|
|
||||||
for (Produkt p : produkte)
|
|
||||||
if (p.getName().equalsIgnoreCase(name))
|
|
||||||
return p;
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArrayList<String> zeigeProdukteImWarenKorb() throws KeineProdukteImWarenkorb {
|
|
||||||
if (produkte.size() == 0)
|
|
||||||
throw new KeineProdukteImWarenkorb("Momentan haben Sie Keine Produkte in Ihrem Warenkorb");
|
|
||||||
|
|
||||||
ArrayList<String> allProdukte = new ArrayList<>();
|
|
||||||
ArrayList<Produkt> merker = new ArrayList<>();
|
|
||||||
int anzahl = 0;
|
|
||||||
int index = 1;
|
|
||||||
boolean istGespeichert = false;
|
|
||||||
for (int i = 0; i < produkte.size(); i++) {
|
|
||||||
anzahl = 0;
|
|
||||||
istGespeichert = false;
|
|
||||||
for (int j = 0; j < merker.size(); j++)
|
|
||||||
if (produkte.get(i).equals(merker.get(j))) {
|
|
||||||
istGespeichert = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!istGespeichert) {
|
|
||||||
merker.add(produkte.get(i));
|
|
||||||
for (int h = 0; h < produkte.size(); h++)
|
|
||||||
if (produkte.get(i) == produkte.get(h))
|
|
||||||
anzahl++;
|
|
||||||
|
|
||||||
allProdukte.add(index++ + ".Produkt: " + produkte.get(i).print() + ". ((Anzahl: " + anzahl + "))");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return allProdukte;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAnzahlProdkute() {
|
|
||||||
return anzahlProdkute;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArrayList<Produkt> getProdukte() {
|
|
||||||
return produkte;
|
return produkte;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WarenkorbMenge findWarenkorbMenge(String name) {
|
||||||
|
|
||||||
|
for (WarenkorbMenge wp : produkte)
|
||||||
|
if (wp.getProdukt().getName().equalsIgnoreCase(name))
|
||||||
|
return wp;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
package OnlineShop.domain;
|
||||||
|
|
||||||
|
public class WarenkorbMenge {
|
||||||
|
private Produkt produkt;
|
||||||
|
private int menge;
|
||||||
|
|
||||||
|
public void addProdukt(Produkt p, int menge) {
|
||||||
|
|
||||||
|
this.produkt = p;
|
||||||
|
this.menge = menge;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Produkt getProdukt() {
|
||||||
|
return produkt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProdukt(Produkt produkt) {
|
||||||
|
this.produkt = produkt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMenge() {
|
||||||
|
return menge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMenge(int menge) {
|
||||||
|
this.menge = menge;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return produkt.toString() + ", menge=" + menge;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package OnlineShop.domain;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class produkteLaden {
|
||||||
|
|
||||||
|
public static boolean produkteLaden(ArrayList<Produkt> produkte) throws FileNotFoundException {
|
||||||
|
Scanner sc = new Scanner(new File(
|
||||||
|
"C:\\Users\\obaya\\git\\Programmierung2\\Programmierung2\\src\\OnlineShop\\domain\\produkte.csv"));
|
||||||
|
|
||||||
|
int cnt = 0;
|
||||||
|
while (sc.hasNextLine()) {
|
||||||
|
String produkt = sc.nextLine();
|
||||||
|
|
||||||
|
if (produkt.startsWith("Name"))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
String[] spalten = produkt.split(";");
|
||||||
|
spalten[2] = spalten[2].replaceAll(",", ".");
|
||||||
|
spalten[3] = spalten[3].substring(0, spalten[3].indexOf(","));
|
||||||
|
spalten[4] = spalten[4].substring(0, spalten[4].indexOf(","));
|
||||||
|
|
||||||
|
produkte.add(new Produkt(spalten[0], spalten[1], Float.parseFloat(spalten[2]), Integer.parseInt(spalten[3]),
|
||||||
|
Integer.parseInt(spalten[4])));
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
Name;Beschreibung;Preis;Gewicht;Bestand
|
|
||||||
Gieskanne;Premium Gärtner-Gieskanne;3,99;250,00;17,00
|
|
||||||
Hut;Perfekt für die Hutablage;21,98;120,00;123,00
|
|
||||||
Dosenwurst;LWWRSCHT: das Pfälzer Original, nur kurz im Angebot;3,99;200,00;7,00
|
|
||||||
Gartenschlauch;10 m, dehnbar bis auf die doppelte Länge;18,99;1300,00;23,00
|
|
||||||
Schraubenset;100 zufällig ausgewählte Schrauben;2,99;287,00;99,00
|
|
||||||
Akkuschrauber;Mit extra großem Drehmoment;25,00;900,00;13,00
|
|
|
|
@ -41,17 +41,18 @@ public class Firma {
|
||||||
|
|
||||||
//ma = mi; nein, weil nicht jeder mitarbeiter ein manager ist!
|
//ma = mi; nein, weil nicht jeder mitarbeiter ein manager ist!
|
||||||
|
|
||||||
Mitarbeiter mitarbeiter = new Mitarbeiter("Müller", "27.10.1972");
|
|
||||||
Manager manager = new Manager("Stromberg", "01.02.1970", "Finanzen");
|
|
||||||
|
|
||||||
|
|
||||||
Firma firma = new Firma();
|
Firma firma = new Firma();
|
||||||
|
Mitarbeiter mitarbeiter2 = new Mitarbeiter("Mayer", "12.12.1999");
|
||||||
|
Mitarbeiter mitarbeiter = new Mitarbeiter("Müller", "27.10.1972");
|
||||||
|
Manager manager = new Manager("Stromberg", "01.02.1970", "Finanzen");
|
||||||
firma.mitarbeiterEinstellen(mitarbeiter);
|
firma.mitarbeiterEinstellen(mitarbeiter);
|
||||||
firma.mitarbeiterEinstellen(manager);
|
firma.mitarbeiterEinstellen(manager);
|
||||||
|
|
||||||
Mitarbeiter mitarbeiter2 = new Mitarbeiter("Mayer", "12.12.1999");
|
|
||||||
firma.mitarbeiterEinstellen(mitarbeiter);
|
firma.mitarbeiterEinstellen(mitarbeiter2);
|
||||||
|
|
||||||
/* geht nicht! Warum?
|
/* geht nicht! Warum?
|
||||||
* weil nicht jeder mitarbeiter ein manager ist!
|
* weil nicht jeder mitarbeiter ein manager ist!
|
||||||
|
@ -61,17 +62,22 @@ public class Firma {
|
||||||
|
|
||||||
|
|
||||||
//weil jeder manager ist ein mitarbeiter
|
//weil jeder manager ist ein mitarbeiter
|
||||||
mitarbeiter = manager;// Ja geht:
|
// mitarbeiter = manager;// Ja geht:
|
||||||
System.out.println("Polymorphismus");
|
System.out.println("Polymorphismus");
|
||||||
System.out.println(mitarbeiter.getGehalt());
|
System.out.println(mitarbeiter.getGehalt());
|
||||||
System.out.println(manager.getAbteilung());
|
System.out.println(manager.getAbteilung());
|
||||||
// System.out.println(mitarbeiter.getAbteilung()); // geht nicht, wg. statischem Typ Mitarbeiter
|
// System.out.println(mitarbeiter.getAbteilung()); // geht nicht, wg. statischem Typ Mitarbeiter
|
||||||
|
|
||||||
if (mitarbeiter instanceof Manager)
|
|
||||||
System.out.println( ((Manager)mitarbeiter).getAbteilung() );
|
System.out.println("Geht ");
|
||||||
|
|
||||||
|
Manager me = ((Manager)mitarbeiter);
|
||||||
|
|
||||||
|
// mitarbeiter2 = manager;// Ja geht:
|
||||||
|
Manager md =((Manager)mitarbeiter2);
|
||||||
|
|
||||||
// ClassCastException zur laufzeit, weil ich if (mitarbeiter instanceof Manager) verwenden soll
|
// ClassCastException zur laufzeit, weil ich if (mitarbeiter instanceof Manager) verwenden soll
|
||||||
((Manager)mitarbeiter2).getAbteilung();
|
|
||||||
|
|
||||||
// WICHTIG:
|
// WICHTIG:
|
||||||
//instanceof prüft, ob die klasse manager die klasse mitarbeiter erbt
|
//instanceof prüft, ob die klasse manager die klasse mitarbeiter erbt
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,50 @@
|
||||||
|
package oop.Interface;
|
||||||
|
|
||||||
|
interface A {
|
||||||
|
|
||||||
|
void myMethod();
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
|
||||||
|
public void myMethod() {
|
||||||
|
System.out.println("My Method");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* - Die Klasse C erbt von B und implementiert A. Da B bereits eine Implementierung für myMethod() hat,
|
||||||
|
* übernimmt C diese Implementierung automatisch. Die Methode myMethod() muss daher in C nicht erneut implementiert werden,
|
||||||
|
* weil sie über die Vererbung von B zur Verfügung gestellt wird.
|
||||||
|
*/
|
||||||
|
class C extends B implements A {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
interface X
|
||||||
|
{
|
||||||
|
void methodX();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* - Interface methods must be implemented as public. Because,
|
||||||
|
* interface methods are public by default
|
||||||
|
* and you should not reduce the visibility of any methods while overriding.
|
||||||
|
*/
|
||||||
|
class Y implements X
|
||||||
|
{
|
||||||
|
public void methodX()
|
||||||
|
{
|
||||||
|
System.out.println("Method X");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class MainClass {
|
||||||
|
|
||||||
|
public static void main(String[] args){
|
||||||
|
A a = new C();
|
||||||
|
|
||||||
|
a.myMethod();
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,5 +26,13 @@ public class Polymorphism {
|
||||||
* • aber anderes Verhalten
|
* • aber anderes Verhalten
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Überladung vs. Überschreibung:
|
||||||
|
*
|
||||||
|
* - Bei Methodenüberladung wählt der Compiler die Methode basierend auf dem besten passenden Parameter-Typ zur Kompilierzeit.
|
||||||
|
* - Bei Methodenüberschreibung entscheidet der Compiler basierend auf der Laufzeit-Instanz,
|
||||||
|
* welche Methode aufgerufen wird. Das bezieht sich jedoch nur auf Methoden mit exakt der gleichen Signatur.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue