Hallo Leute,
ich möchte eine Klasse ArrayAdressBook1 für einfache Adressbücher schreiben mit folgenden Eigenschaften:
Ein Adressbuch besitzt ein Attribut persons, welches vom Typ Person[]
ist (wir verwenden hier die Klasse Person:
).
Dieses Attribut soll im Konstruktor des Adressbuchs mit einem neu erzeugten Array initialisiert
werden, wobei die Größe des Arrays dem Konstruktor als Parameter
übergeben wird. Wird eine Größe kleiner als 1 übergeben, soll 1 als Größe
verwendet werden.
Dies habe ich versucht in unterem noch folgendem Code zu implementieren.
Ich möchte aber noch folgendes zusätzlich tun:
Das Adressbuch hat eine Methode addPerson(), welche eine Referenz auf
ein Person-Objekt als Parameter akzeptiert und die übergebene Person an
die erste noch freie Stelle in das Array persons schreibt. Das Array wird
also „von unten“ (beginnend mit Index 0) befüllt. Um die Einfügestelle ermitteln
zu können, bekommt das Adressbuch ein Attribut, welches den Index
des nächsten noch unbelegten Array-Elements repräsentiert. Dieses Attribut
muss natürlich bei Veränderungen aktualisiert werden.
Ok und nun kommt mein Versuch:
Nun meine Frage:
Ich dachte, ich hätte mit
Ich bin totaler Anfänger und wollte euch fragen, was ihr davon haltet, ob meine Idee schonmal in die richtige Richtung geht oder ich mir ganz was anderes überlegen/wissen sollte.[/i]
ich möchte eine Klasse ArrayAdressBook1 für einfache Adressbücher schreiben mit folgenden Eigenschaften:
Ein Adressbuch besitzt ein Attribut persons, welches vom Typ Person[]
ist (wir verwenden hier die Klasse Person:
Java:
public class Person {
String name;
int birthday; /* in der Form JJJJMMTT */
Person(String name, int birthday) {
this.name = name;
this.birthday = birthday;
}
void print() {
System.out.println("Name: " + this.name);
System.out.println("Geburtsdatum: " + this.birthday);
}
boolean isBirthday(int date) {
return birthday % 10000 == date % 10000;
// Das Prozentzeichen ist der Modulo-Operator, welcher
// den Rest einer ganzzahligen Division liefert.
}
}
Dieses Attribut soll im Konstruktor des Adressbuchs mit einem neu erzeugten Array initialisiert
werden, wobei die Größe des Arrays dem Konstruktor als Parameter
übergeben wird. Wird eine Größe kleiner als 1 übergeben, soll 1 als Größe
verwendet werden.
Dies habe ich versucht in unterem noch folgendem Code zu implementieren.
Ich möchte aber noch folgendes zusätzlich tun:
Das Adressbuch hat eine Methode addPerson(), welche eine Referenz auf
ein Person-Objekt als Parameter akzeptiert und die übergebene Person an
die erste noch freie Stelle in das Array persons schreibt. Das Array wird
also „von unten“ (beginnend mit Index 0) befüllt. Um die Einfügestelle ermitteln
zu können, bekommt das Adressbuch ein Attribut, welches den Index
des nächsten noch unbelegten Array-Elements repräsentiert. Dieses Attribut
muss natürlich bei Veränderungen aktualisiert werden.
Ok und nun kommt mein Versuch:
Java:
public class ArrayAdressBook1 {
Person[] persons;
int startarraylength;
ArrayAdressBook1(int startarraylength) {
this.startarraylength = startarraylength;
// this.startarraylength ist das Attribut des Objektes ArrayAdressBook.
if (this.startarraylength < 1) {
this.startarraylength = 1;
}
this.persons = new Person[startarraylength];
}
void addPerson(){
for (int i=0;i<persons.length;i++){
persons[i]= this.persons[i];
}
}
}
Ich dachte, ich hätte mit
persons[i]=this.persons
das i.te Person-Objekt aus persons mit this angesprochen(das implizit übergeben wurde) und im Array an i-ter Stelle eingefügt.Ich bin totaler Anfänger und wollte euch fragen, was ihr davon haltet, ob meine Idee schonmal in die richtige Richtung geht oder ich mir ganz was anderes überlegen/wissen sollte.[/i]
Zuletzt bearbeitet von einem Moderator: