Einführung in die objektorientierte Programmierung

Hauptklausur 17 Aufg 1

public class HeimkinoDemo {
public static void main(String[] args) {
TonSystem m = new TonSystem(2);
BluRayPlayer t = new BluRayPlayer();
TvGerät c = new TvGerät(t, m);
c.bluRayPlayer.einlegen(new BluRayMedium("Star Wars"));
try {
c.tonSystem.erwarteKanäle(6);
System.out.println("Surround-Sound-Tonsystem.");
} catch (Exception e) {
System.out.println("Kein Surround-Sound Tonsystem.");
}
try {
c.tonSystem.erwarteKanäle(2);
System.out.println("Stereo-Tonsystem.");
} catch (Exception e) {
System.out.println("Kein Stereo-Tonsystem.");
}
}
} class TonSystem{
int kanaele=0;

TonSystem(int kan){
kanaele=kan;
System.out.println("Tonsystem mit "+kanaele+" Kanälen erzeugt.");
}

public void erwarteKanäle(int kan) throws Exception{
if (kan != kanaele) {
throw new Exception();
} // end of if
}
} class BluRayMedium{
String name="";
BluRayMedium(String n){
name=n;
System.out.println("Film "+name+" eingelegt.");
}
} class BluRayPlayer{
BluRayMedium bluRayMedium;
public void einlegen(BluRayMedium brp){
bluRayMedium=brp;
}
} class TvGeraet{

} class TvGerät{
TonSystem tonSystem;
BluRayPlayer bluRayPlayer ;
TvGerät(BluRayPlayer brp, TonSystem ts){
tonSystem=ts;
bluRayPlayer=brp;
}
}

 

Hauptklausur 17 Aufg 2

public class Wohnzimmer {
public static void main(String[] args) {
Kiste kiste = new Kiste();
Regal regal = new Regal();
Brettspiel schach = new Brettspiel(kiste);
Buch herrDerRinge = new Buch(regal);
Gegenstand<?> einGegenstand = schach;
Moebelstueck moebel = einGegenstand.lagerort();
Kiste spieleKiste = schach.lagerort();
Regal buecherRegal = herrDerRinge.lagerort();
/* [1] */
}
}
class Moebelstueck { 
}
class Kiste extends Moebelstueck { 
}
class Regal extends Moebelstueck { 
}
class Gegenstand<T extends Moebelstueck> { 
T lagerort;

T lagerort(){
return lagerort;
}

Gegenstand(T ort){
lagerort=ort;
}
}
class Brettspiel extends Gegenstand<Kiste> { 
Brettspiel(Kiste k){
super(k);
}
}
class Buch extends Gegenstand<Regal>  { 
Buch(Regal k){
super(k);
}
}

Hauptklausur 17 Aufg 2 Teil2 unfertig

public class Wohnzimmer {
public static void main(String[] args) {
Kiste kiste = new Kiste();
Regal regal = new Regal();
Brettspiel schach = new Brettspiel(kiste);
Buch herrDerRinge = new Buch(regal);
Gegenstand<?> einGegenstand = schach;
Moebelstueck moebel = einGegenstand.lagerort();
Kiste spieleKiste = schach.lagerort();
Regal buecherRegal = herrDerRinge.lagerort();

Kiste andereKiste = new Kiste();
Brettspiel dame = new Brettspiel(andereKiste);
schach.tauschePlatz(dame);
Regal anderesRegal = new Regal();
Buch harryPotter = new Buch(anderesRegal);
herrDerRinge.tauschePlatz(harryPotter);
}
} class Gegenstand<T extends Moebelstueck> {
T lagerort;

T lagerort(){
return lagerort;
}

Gegenstand(T ort){
lagerort=ort;
}

void tauschePlatz(Gegenstand g){
T ort=this.lagerort;
this.lagerort= g.lagerort();
g.lagerort=ort;
}
}
 
class Moebelstueck { 
}
class Brettspiel extends Gegenstand<Kiste> { 
Brettspiel(Kiste k){
super(k);
}
} class Buch extends Gegenstand<Regal> {
Buch(Regal k){
super(k);
}
}
class Kiste extends Moebelstueck { 
}
class Regal extends Moebelstueck { 
}
 
 

Hauptklausur 17 Aufg 5

public class ArrayDemo {
   public static void main(String[] args) {
   int max = Integer.parseInt(args[0]);
   String[] zahlen = new String[max];
 for (int i=0; i<max; i++)
   zahlen[i]= Integer.toHexString(i);
 
 int i=0;
   while (i<max){
   System.out.println(zahlen[i]);
   i++;
   }
   }
   }


Hauptklausur 17 Aufg 5 Teil2

public class ArrayDemo {
public static void main(String[] args) {
int max = Integer.parseInt(args[0]);
String[][] zahlen = new String[max][2];

for (int i=0; i<max; i++){
zahlen[i][0]= Integer.toBinaryString(i);
zahlen[i][1]= Integer.toHexString(i);
}



int i=0;
while (i<max){
System.out.println(zahlen[i][0]+" : "+zahlen[i][1]);
i++;
}
}
}

Hauptklausur 17 Aufg 6

public class EineNeueKlasse {
String tier = "Pinguin";
public static void main(String[] args) {
new EineNeueKlasse("Biene").m(42L);
}
EineNeueKlasse(String tier) {
System.out.println(this.tier);
}
void m(Number n){
System.out.println("Esel");
new WeitereInnereKlasse().methode(new SubInnereKlasse("Giraffe"));
}
void m(Long l) {
System.out.println("Löwe");
new WeitereInnereKlasse().methode(new SubInnereKlasse("Giraffe"));
}
class InnereKlasse {
String tier = "Elefant";
InnereKlasse(String tier) {
System.out.println(this.tier);
}
void n(WeitereInnereKlasse weitereInnere) {
System.out.println("Hund");
}
void n(EineNeueKlasse eineNeue) {
System.out.println("Hamster");
}
}
class SubInnereKlasse extends InnereKlasse{
String tier = "Adler";
public SubInnereKlasse(String tier) {
super("Hase");
System.out.println(tier);
}
}
static class WeitereInnereKlasse {
{
System.out.println("Bär");
/* [2] */
}
void methode(InnereKlasse innereKlasse) {
innereKlasse.n(this);
}
}
static void andereMethode() {
/* [1] */
}
} Ausgabe Pinguin Löwe Bär Elefant Giraffe Hund
Begründung

Main methode


Aufruf new EineNeueKlasse("Biene").m(42L);


Konstuktor wird aufgerufen und Attribut tier ausgegeben

Pinguin

Dann wird die Methode m(42L) ausgeführt


void m(Long l) {

System.out.println("Löwe");

new WeitereInnereKlasse().methode(new SubInnereKlasse("Giraffe"));

}


Ausgabe von Löwe

Löwe

Dann neue WeitereInnereKlasse


Der Initialisierungsblock macht Ausgabe

Bär

Dann Aufruf von methode(new SubInnereKlasse("Giraffe"));


Es wird neue SubInnereKlasse erzeugt


Im Konstruktor wird die Superklasse mit Parameter Hase aufgerufen


Es wird im Konstruktor von InnereKlasse das Attribut tier ausgegeben

Elefant

Dann wird in SubInnereKlasse im Konstruktor der Parameter ausgegeben

Giraffe

Dann wird n in InnereKlasse ausgeführt. Da this vom Typ WeitereInnereKlasse ist, wird oid n(WeitereInnereKlasse weitereInnere) { System.out.println("Hund"); } ausgeführt

Hund



Hauptklausur 17 Aufg 7

enum SaisonMonat{
MAI,JUNI,JULI,AUGUST,SEPTEMBER ;

boolean istNach(SaisonMonat monat){
return (this.ordinal()< monat.ordinal());
};

boolean istVor(SaisonMonat monat){
return (this.ordinal()> monat.ordinal());
};

SaisonMonat naechsterSaisonmonat(){
SaisonMonat ret;
switch (this) {
case MAI :
ret= JUNI;
break;
case JUNI:
ret= JULI;
break;
case JULI:
ret= AUGUST;
break;
case AUGUST:
ret= SEPTEMBER;
break;
default:
ret=MAI;
} // end of switch
return ret;
};

SaisonMonat vorherigerSaisonmonat(){
SaisonMonat ret;
switch (this) {
case MAI :
ret= SEPTEMBER;
break;
case JUNI:
ret= MAI;
break;
case JULI:
ret= JUNI;
break;
case AUGUST:
ret= JULI;
break;
default:
ret=AUGUST;
} // end of switch
return ret;
};
} public class FreibadSaisonDemo {
public static void main(String[] args) {
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.MAI)); // false
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.JUNI)); // false
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.JULI)); // false
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.AUGUST)); // true
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.SEPTEMBER)); // true
System.out.println(SaisonMonat.JULI.istNach(SaisonMonat.JUNI)); // true
System.out.println(SaisonMonat.JULI.istNach(SaisonMonat.JULI)); // false
System.out.println(SaisonMonat.JULI.istNach(SaisonMonat.AUGUST)); // false
System.out.println(SaisonMonat.JULI.naechsterSaisonmonat()); // FreibadSaison.AUGUST
System.out.println(SaisonMonat.JULI.vorherigerSaisonmonat()); // FreibadSaison.JUNI
System.out.println(SaisonMonat.SEPTEMBER.naechsterSaisonmonat()); // FreibadSaison.MAI
System.out.println(SaisonMonat.MAI.vorherigerSaisonmonat()); // FreibadSaison.SEPTEMBER
}
}

Hauptklausur 17 Aufg 7 Teil 2 mit APRIL und OKTOBER

enum SaisonMonat{
    APRIL,MAI,JUNI,JULI,AUGUST,SEPTEMBER,OKTOBER ;
    
    boolean istNach(SaisonMonat monat){
    return (this.ordinal()> monat.ordinal());
    };
    
    boolean istVor(SaisonMonat monat){
    return (this.ordinal()< monat.ordinal());
    };
    
    SaisonMonat naechsterSaisonmonat(){
    SaisonMonat ret=SaisonMonat.values()[0];
    for (SaisonMonat m:SaisonMonat.values()) {
    if (this.ordinal()+1==m.ordinal())
    ret=m;
    }
    return ret; 
    };
    
    SaisonMonat vorherigerSaisonmonat(){
    SaisonMonat[] feld= SaisonMonat.values();
    SaisonMonat ret=feld[feld.length-1];
    for (SaisonMonat m:SaisonMonat.values()) {
    if (this.ordinal()-1==m.ordinal())
    ret=m;
    }
    return ret;
    };
    }


 public class FreibadSaisonDemo {
public static void main(String[] args) {
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.MAI)); // false
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.JUNI)); // false
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.JULI)); // false
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.AUGUST)); // true
System.out.println(SaisonMonat.JULI.istVor(SaisonMonat.SEPTEMBER)); // true
System.out.println(SaisonMonat.JULI.istNach(SaisonMonat.JUNI)); // true
System.out.println(SaisonMonat.JULI.istNach(SaisonMonat.JULI)); // false
System.out.println(SaisonMonat.JULI.istNach(SaisonMonat.AUGUST)); // false
System.out.println(SaisonMonat.JULI.naechsterSaisonmonat()); // FreibadSaison.AUGUST
System.out.println(SaisonMonat.JULI.vorherigerSaisonmonat()); // FreibadSaison.JUNI
System.out.println(SaisonMonat.SEPTEMBER.naechsterSaisonmonat()); // FreibadSaison.OKTOBER
System.out.println(SaisonMonat.MAI.vorherigerSaisonmonat()); // FreibadSaison.APRIL
System.out.println(SaisonMonat.OKTOBER.naechsterSaisonmonat()); // FreibadSaison.APRIL
System.out.println(SaisonMonat.APRIL.vorherigerSaisonmonat()); // FreibadSaison.OKTOBER

}
}


Nachklausur 17 Aufg 1

class Felder{
   
 public static void main(String[] args){
 String[][] personen= new String[5][2];
 personen[0][0]="Jack";
 personen[0][1]="Black";
 
 String[] strfeld = new String[2];
 Object[] objfeld = strfeld; // korrekt
 objfeld[0] = new Object(); // Zeile 3
 int strl = strfeld[0].length(); // Zeile 4
 }
 }

Nachklausur 17 Aufg 4

public class StimmgerätTest {
public static void main(String[] args) {
KonzertGitarre g= new KonzertGitarre();
Stimmgerät stg= new Stimmgerät();
boolean gest=false;
gest= stg.gestimmt(g);
System.out.println(gest);

} // Ende main
} // Ende StimmgerätTest interface Stimmbar{
int sollTon();
int istTon();
}
class Stimmgerät<T extends Stimmbar>{

public boolean gestimmt(T ton){
return (ton.sollTon()==ton.istTon());
}

}
class KonzertGitarre implements Stimmbar{
public int sollTon(){
return 440;
};
public int istTon(){
return 440;
};
}

Nachklausur 17 Aufg 5

import java.awt.*;
   import java.awt.event.*;
class Fenster  {
   static public void main(String[] args){
   Frame w= new Frame("Fenster");
   w.setSize(400,300);
   w.setVisible(true);
   Label l= new Label("Ein Text");
   w.add(l);
   
   w.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
   System.exit( 0 );
   }
   });
   
   }
   }

Nachklausur 17 Aufg 5 mit Button

 
import java.awt.*;
   import java.awt.event.*;
class FensterButton  {
   static public void main(String[] args){
   Frame w= new Frame("Fenster");
   w.setSize(400,300);
   w.setLayout(new FlowLayout());
   
   Label l= new Label("Ein Text");
   w.add(l);
   
   w.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
   System.exit( 0 );
   }
   });
   
   Button b = new Button("Quit") ;
   w.add(b);
   
   w.setVisible(true);
   
   b.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
   System.exit( 0 );
   }
   });
   
   }
   }
 

Nachklausur 17 Aufg 6

public class AcmeDemo {
public static void main(String[] args) {
Firma firma = new Firma("ACME", 3);
Mitarbeiter sylvester = new Mitarbeiter("Sylvester");
Mitarbeiter tweety = new Mitarbeiter("Tweety");
Artikel artikel = new Artikel(1234);
artikel.entwickeltVon(tweety);
artikel.montiertVon(sylvester);
firma.artikelHinzu(0, artikel);
}
} class Firma{
String name;
Artikel[] artikel;

public Firma(String n, int anz){
name=n;
artikel = new Artikel[anz];
}

public void artikelHinzu(int nr, Artikel a){
artikel[nr]=a;
}
} class Mitarbeiter{
String name;

Mitarbeiter(String n){
name=n;
}
} class Artikel{
int artikelNr;
Mitarbeiter entwickeltVon;
Mitarbeiter montiertVon;

Artikel(int nr){
artikelNr=nr;
}

public void entwickeltVon(Mitarbeiter m){
entwickeltVon=m;
}

public void montiertVon(Mitarbeiter m){
montiertVon=m;
}
}

Nachklausur 17 Aufg 8 Teil 3