Hallo zusammen ich bin neu hier
ich bin Student der FH-Köln und habe ein paar Aufgaben aus einer Beispielklausur, die ich gerne lösen möchte. Ich bin nicht unbedingt der Java Gott, aber bin auch nicht der absolute Nichtskönner.
ich würde gerne zuerst die Aufgabenstellung Posten und dann meine bisherigen Lösungen bzw. Ansätze.
Zur Aufgabe:
Aufgabe 1 (Objektorientierung)
Hinweis: Sie können einzelne Teilaufgaben auch dann lösen, wenn Sie das Grundproblem nicht ganz richtig verstanden haben!
Wir gehen von einer (sehr stark) vereinfachten Klasse aus.
1a) Erläutern Sie die Bedeutung und die Initialisierung der beiden Variablen anzahlWerte und werte.
1b) Schreiben Sie vollständig die Methode size() hin:
1c) Schreiben Sie vollständig die Methode put() hin. Wenn in dem Feld werte kein Platz mehr frei ist, soll ein doppelt so großes Datenfeld angelegt werden (und die alten Werten sollen dann kopiert werden).
1d) Sie sollen die folgende Schnittstelle Iterator verwenden:
Vervollständigen Sie die folgende Methode, die alle Elemente einer Vektorklasse zeilenweise ausgeben soll.
Meine Lösungen/Ansätze
Bei nächsten Aufgabe bin ich ein wenig stutzig geworden, ich bin mir sicher das es, so wie ich es habe, NICHT richtig ist, aber ich finde keine Lösung ???:L
Den Rest habe ich noch nicht probiert da ich lieber erst die 1c) haben will.
Danke schon mal !
gruß
b101
ich bin Student der FH-Köln und habe ein paar Aufgaben aus einer Beispielklausur, die ich gerne lösen möchte. Ich bin nicht unbedingt der Java Gott, aber bin auch nicht der absolute Nichtskönner.
ich würde gerne zuerst die Aufgabenstellung Posten und dann meine bisherigen Lösungen bzw. Ansätze.
Zur Aufgabe:
Aufgabe 1 (Objektorientierung)
Hinweis: Sie können einzelne Teilaufgaben auch dann lösen, wenn Sie das Grundproblem nicht ganz richtig verstanden haben!
Wir gehen von einer (sehr stark) vereinfachten Klasse aus.
Java:
/** in der Klasse Vector können nach und nach beliebig viele
* Objektreferenzen gespeichert werden (Methode put()).
* Mit der Methode elements() kommt man wieder an die Werte heran
* (in Reihenfolge der Eingabe).
*
*/
public class Vector {
private int anzahlWerte = 0;
private Object[] werte = new Object[4];
/** hängt value an das Ende des Feldes an.
* @param value neuer (letzter) Wert
*/
public void put(Object value) { ...
/** gibt die Anzahl der gespeicherten Werte zurück.
public int size() { ...
/** gibt eine Enumeration über alle Werte zurück. */
public Iterator iterator() {
return new ...;
}
}
1b) Schreiben Sie vollständig die Methode size() hin:
1c) Schreiben Sie vollständig die Methode put() hin. Wenn in dem Feld werte kein Platz mehr frei ist, soll ein doppelt so großes Datenfeld angelegt werden (und die alten Werten sollen dann kopiert werden).
1d) Sie sollen die folgende Schnittstelle Iterator verwenden:
Java:
public interface Iterator {
/** prueft, ob es weitere Elemente gibt.
* @return true, genau dann, wenn es weitere Elemente gibt.
*/
public boolean hasNext();
/** gibt ein Element zurück und geht einen Schritt weiter.
* @return nächstes Datenelement
* @throws NoSuchElementException wenn Enumeration am Ende
*/ public Object next ();
}
Java:
static void ausgabe(Vector v) {
Meine Lösungen/Ansätze
Java:
/*
* 1a)
* Erläutern Sie die Bedeutung und die Initialisierung der beiden Variablen anzahlWerte und werte.
*/
private int anzahlWerte = 0;
// anzahlWerte ist eine Variable vom Typ int und wird mit dem Wert 0 initialisiert
private Object[] werte = new Object[4];
// wert ist ein Array vom Typ Object, es wird mit einer Länge von 4 initialisiert und kann somit 4 Elemente (0 bis 3) fassen
Java:
/*
* 1b)
* Schreiben Sie vollständig die Methode size() hin:
*/
/** gibt die Anzahl der gespeicherten Werte zurück.*/
public int size(){
int anz=0;
for(int k=0; werte[k]!=null;k++)
anz++;
return anz;
}
Bei nächsten Aufgabe bin ich ein wenig stutzig geworden, ich bin mir sicher das es, so wie ich es habe, NICHT richtig ist, aber ich finde keine Lösung ???:L
Java:
/*
* 1c)
* Schreiben Sie vollständig die Methode put() hin.
* Wenn in dem Feld werte kein Platz mehr frei ist,
* soll ein doppelt so großes Datenfeld angelegt werden (und die alten Werten sollen dann kopiert werden).
*/
/** hängt value an das Ende des Feldes an.
* @param value neuer (letzter) Wert
*/
public void put(Object value){
int laenge=0;
laenge=werte.length;
if(size()==laenge){
Object werte2[]=new Object[werte.length*2];
for(int k=0;k!=werte.length;k++)
werte2[k]=werte[k];
werte2[werte.length+1]=value;
}
else
werte[size()+1]=value;
}
Den Rest habe ich noch nicht probiert da ich lieber erst die 1c) haben will.
Danke schon mal !
gruß
b101
Zuletzt bearbeitet: