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