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);
}
}