diff --git a/Programmierung2/src/GUIAnwendungen/StudentManagementSystem/VerwalteStudent.java b/Programmierung2/src/GUIAnwendungen/StudentManagementSystem/VerwalteStudent.java index 5a60755..b5cb06a 100644 --- a/Programmierung2/src/GUIAnwendungen/StudentManagementSystem/VerwalteStudent.java +++ b/Programmierung2/src/GUIAnwendungen/StudentManagementSystem/VerwalteStudent.java @@ -10,15 +10,28 @@ public class VerwalteStudent { private ArrayList allStudents; public VerwalteStudent() { this.view = new Student_login(); - view.getInsertStudent().addActionListener(e -> login()); + view.getInsertStudent().addActionListener(e -> insert()); view.getLoescheStudent().addActionListener(e -> loeschen()); view.getSucheStudent().addActionListener(e -> showUser()); + view.getUpdateStudent().addActionListener(e -> update()); + view.getZeigeAlleStudent().addActionListener(e -> showAll()); allStudents = new ArrayList<>(); } + public void showAll() { + if (allStudents.size() == 0) + view.showErrore("Keine Student sind im System!"); + + else { + for (Student als:allStudents ) { + String[] array = {als.getId()+"",als.getName(),als.getVorname(),als.getGeburtstag(),als.getGeschlecht(),als.getTele(),als.getEmail(),als.getAdresse()}; + view.getModel().addRow(array); + } + } + + } - public void login() { - + public void insert() { String idText = view.getEingabeId().getText(); int id = Integer.parseInt(idText); String name = view.getEingabeName().getText(); @@ -32,35 +45,53 @@ public class VerwalteStudent { student = new Student(name, vorname, geschlecht, email, teleN, Adresse, geburtstag, id); allStudents.add(student); view.showInfo(student.toString()); - -// String[] array = {student.getId()+"",student.getAdresse(),student.getEmail(),student.getGeburtstag(),student.getGeschlecht(),student.getName(),student.getTele()}; -// view.getModel().addRow(array); - - restAlleInputs(); - + } + + public void update() { + String idText = view.getEingabeId().getText(); + int id = Integer.parseInt(idText); + student = findStudent(id); + if (student == null) { + view.showErrore("Stundent ist nicht im System!"); + return; + } + String name = view.getEingabeName().getText(); + String vorname = view.getEingabeVorname().getText(); + String geburtstag = view.getEingabeGeburtstag().getText(); + String geschlecht = view.getEingabeGeschlecht().getSelectedItem().toString(); + String teleN = view.getEingabeTeleN().getText(); + String email = view.getEingabeEmail().getText(); + String Adresse = view.getEingabeAdresse().getText(); + + if (!name.isEmpty()) + student.setName(name); + else if(!vorname.isEmpty()) + student.setVorname(vorname); + else if(!geburtstag.isEmpty()) + student.setGeburtstag(geburtstag); + else if(!geschlecht.isEmpty()) + student.setGeschlecht(geschlecht); + else if(!teleN.isEmpty()) + student.setTele(teleN); + else if(!email.isEmpty()) + student.setEmail(email); + else if(!Adresse.isEmpty()) + student.setAdresse(Adresse); + + view.showInfo("Student erfolgreich aktulisiert"); + restAlleInputs(); + } public void loeschen() { - String idText = view.getEingabeIdZuLoeschen().getText(); int id = Integer.parseInt(idText); student = findStudent(id); if (student != null) { allStudents.remove(student); view.showInfo("Student wurde erfolgreich gelöscht"); - } - - - - } - - private Student findStudent(int id) { - for (Student s : allStudents) - if (s.getId() == id) - return s; - - return null; + } } public void showUser() { @@ -76,7 +107,18 @@ public class VerwalteStudent { } - public void restAlleInputs() { + + + + private Student findStudent(int id) { + for (Student s : allStudents) + if (s.getId() == id) + return s; + + return null; + } + + private void restAlleInputs() { view.setEingabeName("");; view.setEingabeTeleN(""); view.setEingabeAdresse(""); diff --git a/Programmierung2/src/VorlesungsFolien/Verebung/DynamischeBindung.java b/Programmierung2/src/VorlesungsFolien/Verebung/DynamischeBindung.java new file mode 100644 index 0000000..ae270b7 --- /dev/null +++ b/Programmierung2/src/VorlesungsFolien/Verebung/DynamischeBindung.java @@ -0,0 +1,57 @@ +package VorlesungsFolien.Verebung; + +public class DynamischeBindung { + + public static void main(String[] args) { + Parent kind1 = new Kind("Obai",22); + System.out.println(kind1.print()); + } + +} + +class Parent{ + private String name; + private int alter; + private String adresse; + + public Parent(String name, int alter) { + this.name = name; + this.alter = alter; + } + + public Parent(String name) { + this.name = name; + } + + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + + public int getAlter() { + return alter; + } + + public void setAlter(int alter) { + this.alter = alter; + } + + public String print() { + return "Name: " + name + " Alter: " + alter; + } +} + +class Kind extends Parent{ + + public Kind(String name, int alter) { + super(name, alter); + System.out.println("Kind klasse"); + } +} diff --git a/Programmierung2/src/VorlesungsFolien/Verebung/Firma.java b/Programmierung2/src/VorlesungsFolien/Verebung/Firma.java new file mode 100644 index 0000000..3fbbd2c --- /dev/null +++ b/Programmierung2/src/VorlesungsFolien/Verebung/Firma.java @@ -0,0 +1,97 @@ +package VorlesungsFolien.Verebung; + +import java.util.ArrayList; + +public class Firma { + private ArrayList mas = new ArrayList<>(); + + public static void main(String[] args) { + Mitarbeiter mi = new Mitarbeiter("Müller", "27.10.1972"); + Manager ma = new Manager("Stromberg", "01.02.1970", "Finanzen"); + + Firma hal = new Firma(); + + hal.mitarbeiterEinstellen(mi); + hal.mitarbeiterEinstellen(ma); + + Mitarbeiter mi2 = new Mitarbeiter("Mayer", "12.12.1999"); + hal.mitarbeiterEinstellen(mi2); + + // ma = mi; // geht nicht! + + mi = ma; + System.out.println("Polymorphismus"); + System.out.println(mi.getGehalt()); + System.out.println(ma.getAbteilung()); + // System.out.println(mi.getAbteilung()); // geht nicht, wg. statischem Typ Mitarbeiter + + if (mi instanceof Manager) + System.out.println( ((Manager)mi).getAbteilung() ); + + ((Manager)mi2).getAbteilung(); + } + + private void mitarbeiterEinstellen(Mitarbeiter m) { + mas.add(m); + } + + private void gehaltsErhöhung() { + for (Mitarbeiter m : mas) { + double erhöhung = 0.02; + + // System.out.println(m instanceof String); // das geht NICHT, muss zur Vererbungshierachie passen + + if (m instanceof Manager) + erhöhung = 0.12; +// else if (m instanceof Geschäftsführer) +// erhöhung = 0.2; + + m.setGehalt(m.getGehalt() * (1 + erhöhung)); + } + } +} + +class Mitarbeiter extends Object { + private String name; + private double gehalt; + private String geburtsdatum; + + public Mitarbeiter(String name, String geburtsdatum) { + this(name, 35000, geburtsdatum); + } + + public Mitarbeiter(String name, double gehalt, String geburtsdatum) { + this.name = name; + this.gehalt = gehalt; + this.geburtsdatum = geburtsdatum; + } + + public String getDetails() { + return name; + } + + public double getGehalt() { + return gehalt; + } + + public void setGehalt(double gehalt) { + this.gehalt = gehalt; + } +} + +class Manager extends Mitarbeiter { + private String abteilung; + + public Manager(String name, String geburtsdatum, String abteilung) { + super(name, 65000, geburtsdatum); // das MUSS zuerst gemacht werden! + this.abteilung = abteilung; + } + + public String getDetails() { + return super.getDetails() + " " + abteilung; + } + + public String getAbteilung() { + return abteilung; + } +} diff --git a/Programmierung2/src/VorlesungsFolien/Verebung/Main.java b/Programmierung2/src/VorlesungsFolien/Verebung/Main.java deleted file mode 100644 index d1fb414..0000000 --- a/Programmierung2/src/VorlesungsFolien/Verebung/Main.java +++ /dev/null @@ -1,42 +0,0 @@ -package VorlesungsFolien.Verebung; - -public class Main { - public static void main(String[] args) { - - Mitarbeiter ai = new Manager("Herr Muller" , "01.02.2011"); - System.out.println(ai.getDetails()); - } -} - -class Mitarbeiter extends Object { - private String name; - private double gehalt; - private String geburtsdatum; - - public Mitarbeiter(String name, String geburtsdatum) { - this(name, 35000, geburtsdatum); - } - - public Mitarbeiter(String name, double gehalt, String geburtsdatum) { - this.name = name; - this.gehalt = gehalt; - this.geburtsdatum = geburtsdatum; - } - - public String getDetails() { - return name; - } -} - -class Manager extends Mitarbeiter { - private String abteilung; - - public Manager(String name, String geburtsdatum) { - super(name, 65000, geburtsdatum); // das MUSS gemacht werden! - } - - @Override - public String getDetails() { - return super.getDetails() + " " + abteilung; - } -} diff --git a/Programmierung2/src/VorlesungsFolien/Verebung/Sealed-Klassen.pdf b/Programmierung2/src/VorlesungsFolien/Verebung/Sealed-Klassen.pdf new file mode 100644 index 0000000..f5fbcc3 Binary files /dev/null and b/Programmierung2/src/VorlesungsFolien/Verebung/Sealed-Klassen.pdf differ diff --git a/Programmierung2/src/VorlesungsFolien/Verebung/StatischeMethode.java b/Programmierung2/src/VorlesungsFolien/Verebung/StatischeMethode.java new file mode 100644 index 0000000..12d1ccb --- /dev/null +++ b/Programmierung2/src/VorlesungsFolien/Verebung/StatischeMethode.java @@ -0,0 +1,30 @@ +package VorlesungsFolien.Verebung; + +public class StatischeMethode { + // Statische Methoden können nicht überschrieben werden! + + public static void main(String[] args) { + + Vater test = new Sohn(); + + test.printHi(); // Hi Vater + + } + +} + +class Vater { + + public static void printHi() { + + System.out.println("Hi Vater"); + } +} + +class Sohn extends Vater { + + public static void printHi() { + + System.out.println("Hi Son"); + } +}