Einführung in die objektorientierte Programmierung

Objekte erzeugen

class Person{
static int anzahl=0;
String vorname="";
String nachname="";
int tag;
int monat;
int jahr;

static public void main(String[] args){
System.out.println("Hallo");

// adam und Eva erzeugen
Person adam = new Person();
Person eva = new Person();

// Attribute anzeigen
System.out.println(adam.anzahl);
System.out.println(adam.vorname);

// Attribute ändern
adam.vorname= "Adam";
adam.nachname= "Mensch";

System.out.println(adam.vorname+" "+adam.nachname);

// Anzahl bei Adam inkrementieren
adam.anzahl++;

// Attribute ändern
eva.vorname= "Eva";
eva.nachname= "Mensch";

// anzahl ausgeben
System.out.println(eva.vorname+" "+ eva.anzahl);
System.out.println(adam.vorname+" "+ adam.anzahl);

}
}

Objekte erzeugen mit eigenen Methoden

class Person2{
static int anzahl=0;
String vorname="";
String nachname="";
int tag;
int monat;
int jahr;

// Initialisierung für jedes Objekt
{
System.out.println("Test");
anzahl++;
}

// Konstruktor mit Argumenten
Person2(String vorname, String nachname){
this.vorname = vorname; this.nachname=nachname;

}

// Konstruktor ohne Parameter
Person2(){

}

// Druckmethode
void drucken(){
System.out.println(this.anzahl);
System.out.println(this.vorname);
System.out.println(this.nachname);
}

static public void main(String[] args){
System.out.println("Hallo");

// Objekte erzeugen
Person2 adam = new Person2("Adam","Mensch");
adam.drucken();

Person2 eva = new Person2("Eva","Mensch");
eva.drucken();

Person2 abel = new Person2();
abel.drucken();

// Identifier drucken
System.out.println(adam);

System.out.println(eva);

eva=adam;

System.out.println(eva);

}
}

Objektidentität bei Zeichenketten

class Worte{
 static String wort1="Hallo";
   static String wort2="Hallo";
   
   static public void main(String[] args){
   
   System.out.println(Integer.toHexString(wort1.hashCode()));
   System.out.println(Integer.toHexString(wort2.hashCode()));
   
   wort2="Hal";
   
   System.out.println(wort2);
   
   wort2= wort2+"lo";
   
   System.out.println(wort2);
   
   if (wort1==wort2) System.out.println("gleich");
   else System.out.println("ungleich");
   
   }
}

Bruch (Aufgabe 2 HK 2012)

class Bruch{
 public final int zaehler;
   public final int nenner;
   
   // Konstruktor
   Bruch(int z, int n){
   zaehler=z;
   nenner=n;
   }
   
   // toString überschreiben
   public String toString(){
   return zaehler+"/"+nenner;
   }
   
   // multiplizieren
   public Bruch multiplizieren(Bruch faktor){
   return new Bruch(this.zaehler*faktor.zaehler,this.nenner*faktor.nenner) ;
   }
   
   static public void main(String args[]){
   // Bruch erzeugen
   Bruch b1 = new Bruch(1,2);
   // Bruch erzeugen
   Bruch b2 = new Bruch(3,4);
   // Neues Objekt als Multiplikation der ersten beiden Brüche
   Bruch b3 = b1.multiplizieren(b2);
   
   // Ergebnis ausgeben
   System.out.println(b3.toString());
   System.out.println(b3);
   
   }
}

Guthabenkarte (Aufgabe 1 HK 2012)

class Guthabenkarte {
private int guthaben = 0;

// Aufladen
public void aufladen(int betrag) {
guthaben = guthaben + betrag;
}

// abheben
public void abheben(int betrag) {
if (betrag > guthaben)
System.out.println("Nicht genuegend Guthaben!");
else {
System.out.println(betrag + " Euro abgehoben.");
guthaben = guthaben - betrag;
}
}

// Duplizieren erzeugt neues Objekt
public Guthabenkarte duplizieren(){
Guthabenkarte neueKarte = new Guthabenkarte();
neueKarte.aufladen(this.guthaben);
return neueKarte;
}

public static void main(String[] args) {
Guthabenkarte leereKarte = new Guthabenkarte();

// leereKarte wird dupliziert
Guthabenkarte tanjasKarte = leereKarte.duplizieren();

tanjasKarte.aufladen(10);

// tanjasKarte wird dupliziert
Guthabenkarte danielasKarte = tanjasKarte.duplizieren();

System.out.println("Dany "+danielasKarte.guthaben);

danielasKarte.abheben(5);

tanjasKarte.abheben(4);
tanjasKarte.abheben(7);
}
}