Einführung
in die objektorientierte Programmierung
Aufgabe 1
class Main{
public static void main(String[] args){
Queue<String> ringpuffer = new Queue<String>(4);
System.out.println(ringpuffer.first.anzahl);
ringpuffer.insert("a");
ringpuffer.insert("b");
ringpuffer.insert("c");
ringpuffer.insert("d");
//
ringpuffer.print();
//
ringpuffer.insert("e");
//
ringpuffer.print();
}
}
class Entry<ET>{
ET element;
Entry<ET> next, previous;
static int anzahl=0;
Entry(ET element, Entry<ET> next, Entry<ET> previous){
this.element = element;
this.next= next;
this.previous= previous;
anzahl++;
}
}
class Queue<ET>{
Entry<ET> first;
public Queue(int groesse){
first= new Entry<ET>(null, null, null);
first.next= first;
first.previous= first;
Entry<ET> neu;
for (int i=1;i<groesse ;i++ ) {
this.addLast(null);
} // end of for
}
public void addLast(ET wert){
Entry<ET> neu = new Entry<ET>(wert, first, first.previous);
first.previous.next= neu;
first.previous=neu;
}
public void insert(ET wert){
this.addLast(wert);
first.next.previous=first.previous;
first.previous.next= first.next;
first=first.next;
}
public void print(){
Entry<ET> zeiger= first.previous;
while (zeiger != first) {
System.out.println(String.valueOf( zeiger.element ));
zeiger= zeiger.previous;
} // end of while
System.out.println(String.valueOf( zeiger.element ));
}
}
Parametrisierung
class Element<ET>{
ET wert;
Element next;
Element(ET w){
this.wert=w;
}
public void drucken(Element l){
while (!(l==null)) {
System.out.println(l.wert);
l= l.next;
} // end of while
}
public static void main(String[] args){
Element<String> liste= new Element<String>("Hallo");
Element<String> neu= new Element<String>(" alle");
liste.next=neu;
Element<Integer> neu2 = new Element<Integer>(7);
neu.next= neu2;
Ganzzahl ganzneu = new Ganzzahl(2);
Element<Ganzzahl> neu3= new Element<Ganzzahl>(ganzneu);
neu2.next= neu3;
liste.drucken(liste);
}
}
class Ganzzahl{
int wert=0;
Ganzzahl(int zahl){
wert=zahl;
}
public String toString(){
return ""+wert;
}
}