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
}
}