DVG Einfache Klassen Einfache Klassen
DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname –int alter –float groesse –float gewicht Zusammenfassung unterschiedlicher Daten mit unterschiedlichen Typen sind mit bisherigen Methoden nicht realisierbar. –Primitive Datentypen enthalten nur ein Element –Felder enthalten nur Elemente des selben Typs
DVG Einfache Klassen 3 Klasse Person public class Person { public String nachname = ""; public String vorname = ""; public int alter = -1; public float groesse = -1.0f; public float gewicht = -1.0f; } public class TPerson { public static void main(String[]args) { Person p1 = new Person(); p1.nachname="Mustermann"; p1.vorname="Martin"; p1.alter=77; p1.groesse=1.82f; p1.gewicht=78.5f; } }
DVG Einfache Klassen 4 Die Initialisierung ist umständlich. Besser ist die Initialisierung bei der Definition. Dazu wird mindestens ein Konstruktor benötigt. Durch mehrere Konstruktoren können verschiedene Standardwertbelegungen definiert werden.
DVG Einfache Klassen 5 Klasse Person public class Person { public String nachname = ""; public String vorname = ""; public int alter = -1; public float groesse = -1.0f; public float gewicht = -1.0f; public Person(String nachname, String vorname, int alter, float groesse, float gewicht) { this.nachname=nachname; this.vorname=vorname; this.alter=alter; this.groesse=groesse; this.gewicht=gewicht; } public Person(){} } public class TPerson { public static void main(String[]args) { Person p1 = new Person("Mustermann","Martin",77,1.82f,78.5f); } }
DVG Einfache Klassen 6 Komplizierte Klassen können durch Zusammenfügung einfacher Klassen (Komposition) entstehen. public class Name { public String nachname = ""; public String vorname = ""; public Name (String nachname, String vorname) { this.nachname=nachname; this.vorname=vorname; } public Name(){} }
DVG Einfache Klassen 7 public class Person { Name name = new Name(); public int alter = -1; public float groesse = -1.0f; public float gewicht = -1.0f; public Person(String nachname, String vorname, int alter, float groesse, float gewicht) { name = new Name(nachname, vorname); this.alter=alter; this.groesse=groesse; this.gewicht=gewicht; } public Person(){} public Person(Name name, int alter, float groesse, float gewicht) { this.name=name; this.alter=alter; this.groesse=groesse; this.gewicht=gewicht; } }
DVG Einfache Klassen 8 public class TPerson { public static void main(String [] args) { Person p1 = new Person("Mustermann","Martin",77,1.82f,78.5f); Name n2 = new Name("Mustermann","Martin"); Person p2 = new Person(n2,77,1.82f,78.5f); Person p3 = new Person (new Name ("Mustermann","Martin"),77,1.82f,78.5f); Person p4 = new Person(); p4.name.nachname="Mustermann"; p4.name.vorname="Martin"; p4.alter=77; p4.groesse=1.82f; p4.gewicht=78.5f; } }
DVG Einfache Klassen 9 Neue Klassen können durch Ableitung aus anderen Klassen erzeugt werden. public class Student extends Person { public long matrikelnummer=0; public Student(String nachname, String vorname, int alter, float groesse, float gewicht, long matrikelnummer) { super(nachname, vorname, alter, groesse, gewicht); this. matrikelnummer=matrikelnummer; } public Student(){} public Student(Name name, int alter, float groesse, float gewicht, long matrikelnummer) { super(name, alter, groesse, gewicht); this. matrikelnummer=matrikelnummer; } }
DVG Einfache Klassen 10 public class TStudent { public static void main(String [] args) { Student p1 = new Student ("Mustermann","Martin",77,1.82f,78.5f,99); Name n2 = new Name("Mustermann","Martin"); Student p2 = new Student (n2,77,1.82f,78.5f,99); Student p3 = new Student (new Name ("Mustermann","Martin"),77,1.82f,78.5f,99); Student p4 = new Student (); p4.name.nachname="Mustermann"; p4.name.vorname="Martin"; p4.alter=77; p4.groesse=1.82f; p4.gewicht=78.5f; p4.matrikelnummer=99; } }
DVG Einfache Klassen 11 Klassen zur Definition von Konstanten und Methoden Klasse enthält ausschließlich Definitionen von Konstanten und Methoden. Es sollen keine Objekte von dieser Klasse erzeugt werden. Beispiel: Klasse Math public final class Math { private Math() {} public static final double E = ; public static final double PI = ; public static double sin(double a) { return StrictMath.sin(a); }....