21

Programmieren 20.1.05 - is.inf.uni-due.de

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programmieren 20.1.05 - is.inf.uni-due.de
Page 2: Programmieren 20.1.05 - is.inf.uni-due.de
Page 3: Programmieren 20.1.05 - is.inf.uni-due.de
Page 4: Programmieren 20.1.05 - is.inf.uni-due.de
Page 5: Programmieren 20.1.05 - is.inf.uni-due.de
Page 6: Programmieren 20.1.05 - is.inf.uni-due.de
Page 7: Programmieren 20.1.05 - is.inf.uni-due.de

import javax.sw

ing.*;im

port java.awt.*;

public class ListDisplay extends JP

anel {

java.util.Vector elem

ents;

public ListDisplay () { elem

ents = new java.util.V

ector();}

public void paintCom

ponent(Graphics g) {

int ypos = 10; for (int i=0; i<elem

ents.size(); i++) { g.draw

String(elem

ents.elementA

t(i).toString(), 10, ypos);

ypos += 10; } } public void add(O

bject o) {elements.add(o);}

}

Page 8: Programmieren 20.1.05 - is.inf.uni-due.de

import javax.sw

ing.JFrame;

public class DisplayTest {

public static void main(S

tring[] args) { JFram

e f = new JFram

e(); f.setS

ize(400,400);

ListDisplay ld = new

ListDisplay();

f.getContentP

ane().add(ld); f.setV

isible(true); for (int i=0; i<10; i++) { ld.add(i + "-tes E

lement");

try {Thread.sleep(1000);} catch (InterruptedE

xception e) {} f.repaint(); } }}

Page 9: Programmieren 20.1.05 - is.inf.uni-due.de
Page 10: Programmieren 20.1.05 - is.inf.uni-due.de
Page 11: Programmieren 20.1.05 - is.inf.uni-due.de

interface EinkaufslistenS

chnittstelle {

void fuegeHinzu(A

rtikel a);

Artikel gibA

rtikel();}public class TestE

inkauf {

public static void main(S

tring[] args) {

EinkaufslistenS

chnittstelle e; e = new

Einkaufsliste();

Artikel a = new

Artikel(1);

Artikel b = new

Artikel(2);

e.fuegeHinzu(a);

e.fuegeHinzu(b);

System

.out.println(e.gibArtikel().num

mer);

System

.out.println(e.gibArtikel());

}}

Page 12: Programmieren 20.1.05 - is.inf.uni-due.de

public class Einkaufsliste im

plements E

inkaufslistenSchnittstelle {

private java.util.Vector sam

mlung = new

java.util.Vector();

public void fuegeHinzu(A

rtikel a) { sam

mlung.addE

lement(a);

} public Artikel gibA

rtikel() { return (A

rtikel) samm

lung.firstElem

ent(); }}

Page 13: Programmieren 20.1.05 - is.inf.uni-due.de
Page 14: Programmieren 20.1.05 - is.inf.uni-due.de
Page 15: Programmieren 20.1.05 - is.inf.uni-due.de
Page 16: Programmieren 20.1.05 - is.inf.uni-due.de

class Gefaengnisdirektor {

public static void main(S

tring[] args) { //G

efangener g1 = new G

efangener(new N

utzenMaxS

trategie()); G

efangener g1 = new G

efangener(new TitForTatS

trategie()); //G

efangener g2 = new G

efangener(new N

utzenMaxS

trategie()); G

efangener g2 = new G

efangener(new TitForTatS

trategie()); boolean a1; boolean a2; for (int i=0; i<10; i++) { a1 = g1.m

acheAussage();

a2 = g2.macheA

ussage(); if (!a1 &

!a2) {g1.bestrafe(1); g2.bestrafe(1);} else if (!a1) {g1.bestrafe(10); g2.bestrafe(0);} else if (!a2) {g1.bestrafe(0); g2.bestrafe(10);} else {g1.bestrafe(5); g2.bestrafe(5);} } S

ystem.out.println("g1-S

trafe:" + g1.gesamtstrafe());

System

.out.println("g2-Strafe:" + g2.gesam

tstrafe()); }}

Page 17: Programmieren 20.1.05 - is.inf.uni-due.de

public class Gefangener {

private int strafmass;

private SpielS

trategie strategie;

public Gefangener (S

pielStrategie s) {strategie = s;}

boolean macheA

ussage() {return strategie.waehleA

ktion();}

void bestrafe(int strafe) { strafm

ass += strafe; if (strafe >= 5) strategie.letzteA

ktion(false); else strategie.letzteA

ktion(true); } int gesam

tstrafe() {return strafmass;}

}

Page 18: Programmieren 20.1.05 - is.inf.uni-due.de

interface SpielS

trategie {

boolean waehleA

ktion(); void letzteA

ktion(boolean l);}public class N

utzenMaxS

trategie implem

ents SpielS

trategie {

public boolean waehleA

ktion() {return false;} public void letzteA

ktion(boolean l) {return;}}class TitForTatS

trategie implem

ents SpielS

trategie { boolean letzteG

egnerwahl = true;

public boolean waehleA

ktion() {return letzteGegnerw

ahl;} public void letzteA

ktion(boolean l) {letzteGegnerw

ahl = l;}}

Page 19: Programmieren 20.1.05 - is.inf.uni-due.de

public class DeLuxeFabrikA

lt {

public KeksP

ackung produziere() { K

ekse k = backe(); return verpacke(k); } private K

ekse backe() { return new

Kekse("S

chokokeks"); } private K

eksPackung verpacke(K

ekse k) { return new

KeksP

ackung( "D

eLuxeFirmaV

erpackung", k); }}

public class BilligFabrikA

lt {

public KeksP

ackung produziere() { K

ekse k = backe(); return verpacke(k); } private K

ekse backe() { return new

Kekse("S

chokokeks"); } private K

eksPackung verpacke(K

ekse k) { return new

KeksP

ackung( "B

illigFirmaV

erpackung", k); }}

Page 20: Programmieren 20.1.05 - is.inf.uni-due.de

public abstract class KeksFabrik {

public final KeksP

ackung produziere() { K

ekse k = backe(); return verpacke(k); } private final K

ekse backe() { return new

Kekse("S

chokokeks"); } protected abstract K

eksPackung verpacke(K

ekse k);}

public class BilligFabrik extends

KeksFabrik {

protected KeksP

ackung verpacke(Kekse k) {

return new K

eksPackung

("BilligFirm

aVerpackung", k);

}}

public class DeLuxeFabrik extends

KeksFabrik {

protected KeksP

ackung verpacke(Kekse k)

{ return new K

eksPackung

("DeluxeFirm

aVerpackung", k);

}}

Page 21: Programmieren 20.1.05 - is.inf.uni-due.de

public class Superm

arkt {

public static void main(S

tring[] args) { K

eksFabrik f; K

eksPackung p;

f = new D

eLuxeFabrik(); p = f.produziere(); S

ystem.out.println(p);

f = new

BilligFabrik();

p = f.produziere(); S

ystem.out.println(p);

}}