Einführung
in die objektorientierte Programmierung
Hauptklausur 17 Aufg 1
class BluRayMedium{
String name;
BluRayMedium(String name){
this.name=name;
}
}
class BluRayPlayer{
void einlegen(BluRayMedium medium){
System.out.println("Film '"+medium.name+"' eingelegt.");
}
}
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;
TonSystem(int kanaele){
this.kanaele= kanaele;
System.out.println("Tonsystem mit "+kanaele+" Kanälen erzeugt.");
}
void erwarteKanäle(int anz) throws Exception{
if (kanaele!=anz) {
throw new Exception();
} // end of if
}
}
class TvGerät{
BluRayPlayer bluRayPlayer;
TonSystem tonSystem ;
TvGerät(BluRayPlayer bluRayPlayer,TonSystem tonSystem){
this.bluRayPlayer= bluRayPlayer;
this.tonSystem= tonSystem;
}
}
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;
Möbelstück möbel = einGegenstand.lagerort();
Kiste spieleKiste = schach.lagerort();
Regal bücherRegal = herrDerRinge.lagerort();
System.out.println(einGegenstand.lagerort);
//System.out.println(bücherRegal);
/* [1] */
}
}
class Regal extends Möbelstück { }
class Möbelstück { }
class Kiste extends Möbelstück { }
class Gegenstand<T extends Möbelstück>{
T lagerort;
Gegenstand(T m){
this.lagerort=m;
}
T lagerort(){
return lagerort;
}
}
class Buch extends Gegenstand<Regal>{
Buch(Regal r){
super(r);
}
}
class Brettspiel extends Gegenstand<Kiste>{
Brettspiel(Kiste k){
super(k);
}
}
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+1);
} // end of for
for (String s: zahlen) {
System.out.println(s);
} // end of for
}
}
public class ArrayDemo2 {
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+1);
zahlen[i][1]= Integer.toHexString(i+1);
} // end of for
for (String[] s: zahlen) {
System.out.println(s[0]+ " : "+ s[1]);
} // end of for
}
}
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() {
int ord= this.ordinal();
if (SaisonMonat.values().length==ord+1) {
return SaisonMonat.values()[0];
} // end of if
return SaisonMonat.values()[ord+1];
}
SaisonMonat vorherigerSaisonMonat() {
int ord= this.ordinal();
if (ord==0) {
return SaisonMonat.values()[SaisonMonat.values().length-1];
} // end of if
return SaisonMonat.values()[ord-1];
}
}
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
}
}
Nachklausur 17 Aufg 1
class Feld{
static public void main(String[] args){
String[] strfeld = new String[2];
strfeld[0]="zzzzz";
Object[] objfeld = strfeld; // Zeile 2
System.out.println(objfeld[0]);
objfeld[0] = new Object(); // Zeile 3
strfeld=null;
String[] strfeld2 = new String[2];
//strfeld2= objfeld;
System.out.println(strfeld);
}
}
Nachklausur 17 Aufg 5
import java.awt.*;
import java.awt.event.*;
class Fenster extends Frame{
public static void main(String[] args){
Fenster f= new Fenster();
f.setSize(400,300);
f.setVisible(true);
Label l=new Label("Ein Text");
f.add(l);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}