Einführung in die objektorientierte Programmierung

Aufgaben aus der HK 2015

Aufgabe 1

public class Begriffe {
int blume = -1;
interface Ausdruck {
int baum = 42;
}
static void gießen(Integer i) {
Number erde = i;
System.out.println(erde);
}
static void gießen(Long l) {
Number erde = l;
System.out.println(erde);
}
void pflanzen() {
new Terminus() {
void wachsen() {
gießen(blume);
bluehen();
}
}.wachsen();
}
class Terminus implements Ausdruck {
Terminus(){ blume=55; }
void wachsen() {
gießen(baum);
}
void bluehen(){
System.out.println("Es blueht so schoen");
}
}

public static void main(String[] args){
Begriffe b = new Begriffe();
b.pflanzen();
}
}

Aufgabe 2

import java.util.*;
public class Imbissbude {
   public static void main(String[] args) {
   Pizza mista = new Pizza("Mista");
   mista.istBelegtMit("Salami");
   mista.istBelegtMit("Pilzen");
   Gericht hawaii = new Pizza("Hawaii");
   hawaii.istBelegtMit("Schinken");
   hawaii.istBelegtMit("Ananas");
   Burger hamburger = new Burger("Hamburger");
   hamburger.istBelegtMit("Hackfleisch");
   Gericht cheeseburger = new Burger("Cheeseburger");
   cheeseburger.istBelegtMit("Hackfleisch");
   cheeseburger.istBelegtMit("Käse");
   Gericht[] speisekarte = new Gericht[] { mista,
   hawaii, hamburger, cheeseburger };
   for (Gericht g : speisekarte)
   g.zubereitung(); /* [1] */
   }
   }
class Gericht{
   public String name;
   public String grundlage;
   List<String> zutaten = new ArrayList<String>();
   public void istBelegtMit(String zutat){
   zutaten.add(zutat);
   }
   public void zubereitung(){
   System.out.println(name+", "+this.grundlage+", belegt mit:");
   //    ListIterator it= zutaten.listIterator();
   //    while (it.hasNext()) { 
   //      System.out.println(" - "+ it.next());
   //    }  end of while
   for (String zut : zutaten ) {
   System.out.println(" - "+ zut);
   } // end of for
   }
   Gericht(String name){
   this.name= name;
   }
   }
   class Pizza extends Gericht{
   Pizza(String n){
   super("Pizza "+n);
   grundlage="Pizzaboden";
   }
   
   }
   class Burger extends Gericht{
   
   Burger(String name){
   super(name);
   grundlage="Brötchen";
   }
   
   }
 

Aufgabe 3

public class MeinObstkorb {
   public static void main(String[] args) {
   alleFrüchteMitFarbe(Farbe.GELB);
   alleFrüchteMitFarbe(Farbe.GRÜN);
   alleFrüchteMitFarbe(Farbe.ROT);
   System.exit(42);
   }
   public static void alleFrüchteMitFarbe(Farbe f){
   System.out.println("Früchte mit Farbe "+ f);
   for (Obst o: Obst.values() ) {
   if (o.farbe()== f) {
   System.out.println(" - "+o);
   } // end of if 
   } // end of for
   }
   }
   enum Farbe{
   GELB, GRÜN, ROT
 }
enum Obst{
   APFEL,BANANE, ERDBEERE , KIRSCHE ;
   public Farbe farbe(){
   switch (this) {
   case APFEL : return Farbe.GRÜN; 
   case BANANE : return Farbe.GELB; 
   case ERDBEERE : return Farbe.ROT; 
   case KIRSCHE : return Farbe.ROT; 
   default: return Farbe.ROT;
   
   } // end of switch
   }
   }