IT 2 – WS 2014/2015 – Übungsblatt 1 Abgabe: 17.10.2014 Beispiel 1.1 [Triple.java] Schreiben Sie eine public-Klasse Triple, die eine Implementierung der Methode public boolean containsTriple(int[] a) enthält. Diese Methode liefert true, wenn es eine Zahl gibt, die im übergebenen Array a genau dreimal vorkommt. Die Klasse Triple soll auch eine main-Methode enthalten, die mit geeigneten Aufrufen die Methode containsTriple() überprüft. Beispiel 1.2 Es sind folgende Klassen bzw. Interfaces definiert: public interface IType { public abstract boolean iMethod(int n); } public class OtherClass { public OtherClass() { ... } public void otherMethod(IType obj) { ... } } public class MyClass { private int myN; public MyClass(int n) { myN = n; } public void myMethod(int n) { MyClass obj = new MyClass(n); (new OtherClass()).otherMethod(obj); } } Welche Veränderungen in der Klasse MyClass sind notwendig, damit die Methode myMethod() kompilierbar und ausführbar ist? Verändern Sie aber nicht die Methode myMethod() oder eine der anderen Klassen! -1- IT 2 – WS 2014/2015 – Übungsblatt 1 Beispiel 1.3 Schreiben Sie eine Klasse LargestPossible, die eine Implementierung der Methode int getBestFit(int[] a, int maxValue) enthält. Diese Methode liefert die größte Zahl im Array a, die kleiner oder gleich maxValue ist. Gibt es keine solche Zahl in a, liefert die Methode maxValue+1 zurück. Die Klasse LargestPossible soll auch eine main-Methode enthalten, die mit geeigneten Aufrufen die Methode getBestFit() überprüft. Beispiel 1.4 Implementieren Sie eine gemeinsame public-Oberklasse Person der unten angegebenen Klassen Student und Teacher, die die Gemeinsamkeiten dieser Klassen zusammenfasst. Insbesondere soll die Klasse Person über Methoden public String getName() und public String getAddress() verfügen, die den Namen bzw. die Adresse der Person zurückliefern. Implementieren Sie auch die Unterklassen Student und Teacher mit den notwendigen Modifikationen so, dass sich das Verhalten dieser Klassen nicht ändert. public class Student { private String name, address, major; public Student(String name, String major) { this.name = name; this.major = major; address = null; } public void ausgeben() { System.out.println(name); System.out.println(address); System.out.println("Field of study: " + major); } public void setAddress(String addresse); { this.address = address; } } -2- IT 2 – WS 2014/2015 – Übungsblatt 1 public class Teacher { private String name, address, subject; public Teacher(String name, String address, String subjects) { this.name = name; this.address = address; this.subjects = subjects; } public void gibAus() { System.out.println(name); System.out.println(address); System.out.println("Teaches: " + subject); } } Implementieren Sie in der Klasse Person auch eine main-Methode, die sowohl Student- wie auch Teacher-Objekte erzeugt und die entsprechenden Methoden testet. -3- IT 2 – WS 2014/2015 – Übungsblatt 1 Beispiel 1.5 [Beschaffung.java] Gegeben ist die folgende Klasse schrauben.Schraubenfabrik, mit den folgenden Eigenschaften: · Es gibt einen Konstruktor Schraubenfabrik(double[] gewindegroessen), wobei das Array gewindegroessen angibt, welche Gewindegrößen die Fabrik fertigen kann. · Es gibt eine Methode double[] getGewindegroessen(), die in einem Array die Gewindegrößen zurückliefert, die die Fabrik fertigen kann. Implementieren Sie eine Klasse schrauben.Beschaffung mit einer Methode Schraubenfabrik findLieferant(Schraubenfabrik[] lieferantenliste), die jene Schraubenfabrik zurückliefert, die möglichst unterschiedliche Schrauben fertigen kann, d.h. bei der der Unterschied zwischen kleinster und größter Gewindegröße maximal ist. Beispiel 1.6 [Projekt.java] Gegeben ist die folgende Klasse taetigkeiten.Taetigkeit mit den folgenden Eigenschaften: · Es gibt einen Konstruktor Taetigkeit(String name), · eine Methode boolean istErledigt(), die true zurückliefert, wenn die Tätigkeit abgeschlossen ist, · und die Methode public String toString(). Implementieren Sie die Unterklasse taetigkeiten.Projekt von Taetigkeit mit dem Konstruktor Projekt(String name, ArrayList<Taetigkeit> teilaufgaben), wobei in teilaufgaben jene Tätigkeiten enthalten sind, die für den Abschluss des Projekts notwendig sind. Überschreiben Sie in der Klasse Projekt die Methode istErledigt() so, dass die Methode dann true liefert, wenn alle Teilaufgaben erledigt sind. Überschreiben Sie auch die Methode toString(), sodass zu dem von toString() in Taetigkeit erzeugten String auch noch die Anzahl der Teilaufgaben mit einem vorangestellten Doppelpunkt angefügt wird (z.B. "SW-Projekt:5"). -4-