GIN – Grundlagen der Informatik – SS08 Übungsblatt 4

Werbung
Hochschule Bochum
Fachbereich Elektrotechnik und Informatik
Prof. Dr. Rainer Lütticke
GIN – Grundlagen der Informatik – SS08
Übungsblatt 4 - Lösungen
Aufgabe 1
public class Aufgabe41 {
public static void main(String[] args) {
Auto audi = new Auto("Audi", "SommerReifen", 4);
try {
Auto mercedes;
mercedes = audi.clone();
mercedes.typ = "Mercedes";
mercedes.reifen.typ = "WinterReifen";
System.out.println("Audi: " + audi.toString());
//Alternativ: System.out.println("Audi: " + audi);
System.out.println("Mercedes: " + mercedes.toString());
} catch (CloneNotSupportedException e) {
}// keine Reaktion
}
}
class Auto implements Cloneable {
String typ;
AutoReifenSatz reifen;
Auto(String typ, String reifenTyp, int anzReifen) {
this.typ = typ;
reifen = new AutoReifenSatz(reifenTyp, anzReifen);
}
public Auto clone() throws CloneNotSupportedException {
return (Auto) super.clone();
}
public String toString() {
return "Auto [" + typ + " mit " + reifen.anzahl + " " + reifen.typ
+ "]";
}
}
class AutoReifenSatz {
String typ;
int anzahl;
AutoReifenSatz(String typ, int anzahl) {
this.typ = typ;
this.anzahl = anzahl;
}
}
Aufgabe 2
1. Datei:
public class Kommandant implements Cloneable{
private String name;
public Kommandant(String name){
this.name = name;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public Kommandant clone() throws CloneNotSupportedException{
return (Kommandant) super.clone();
}
}
2. Datei:
public class Klonkrieger implements Cloneable{
private Kommandant kom;
public Klonkrieger(Kommandant kom){
this.kom = kom;
}
public void setKommandant(Kommandant kom){
this.kom = kom;
}
public Kommandant getKommandant(){
return kom;
}
public Klonkrieger clone() throws CloneNotSupportedException{
Klonkrieger hilf = (Klonkrieger) super.clone();
hilf.kom = kom.clone();
return hilf;
}
}
3. Datei:
public class KlonkriegerApp{
public static void main(String [] args) throws CloneNotSupportedException {
Kommandant kom = new Kommandant("Meister");
Klonkrieger [] armee = new Klonkrieger[10];
Klonkrieger krieger = new Klonkrieger(kom);
for(int i = 0;i<armee.length;i++)
armee[i] = krieger.clone();
armee[5].getKommandant().setName("test");
for(int i = 0;i<armee.length;i++)
System.out.println(armee[i].getKommandant().getName());
}
}
Aufgabe 3
Drucker.java :
public abstract class Drucker{
private String anschluss;
public Drucker(String anschluss){
setAnschluss(anschluss);
}
public void setAnschluss(String anschluss){
this.anschluss = anschluss;
}
public String getAnschluss(){
return anschluss;
}
public abstract void getInfo();
public abstract void drucke();
}
SWDrucker.java :
public interface SWDrucker{
public final static boolean SWDRUCK = true;
public void druckeInSW();
}
Farbdrucker.java :
public interface Farbdrucker{
public final static boolean FARBDRUCK = true;
public void druckeInFarbe();
}
Tintenstrahldrucker.java :
public class Tintenstrahldrucker extends Drucker implements SWDrucker{
public Tintenstrahldrucker(String anschluss){
super(anschluss);
}
public void drucke(){
druckeInSW();
}
public void getInfo(){
System.out.println("Ich bin ein Tintenstrahldrucker, angeschlossen an
"+getAnschluss());
}
public void druckeInSW(){
System.out.println("Bild wird in schwarz-weiß gedruckt!");
}
}
Laserdrucker.java :
public class Laserdrucker extends Drucker implements Farbdrucker, SWDrucker{
public Laserdrucker(String anschluss){
super(anschluss);
}
public void drucke(){
}
public void druckeInFarbe(){
System.out.println("Bild wird in Farbe gedruckt!");
}
public void druckeInSW(){
System.out.println("Bild wird in schwarz-weiß gedruckt!");
}
public void getInfo(){
System.out.println("Ich bin ein Laserdrucker an Anschluss "+getAnschluss());
}
}
Herunterladen