Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wäre super nett, wenn jemand mal kurz über den Code drüberschauen könnte Danke vorab !
Die beiden Klassen sollen die jeweils beschriebenen Eigenschaften besitzen.
Java:
public class Letter {
public String nameSender;
public String nameRecipient;
/**
* creates a new letter
*
* @param sender
* the sender of the letter
* @param recipient
* the recipient of the letter
*/
public Letter(String sender, String recipient) {
this.nameSender = sender;
this.nameRecipient = recipient;
}
/**
* returns the sender of the letter
*
* @return the sender of the letter
*/
public String getSender(String sender) {
return nameSender;
}
/**
* returns the recipient of the letter
*
* @return the recipient of the letter
*/
public String getRecipient(String recipient) {
return nameRecipient;
}
}
Java:
import java.util.ArrayList;
public class PostBox {
ArrayList<Letter> postBox = new ArrayList<Letter>();
/**
* returns all letters contained in the postbox
*
* @return all letters contained in the postbox
*/
public ArrayList<Letter> getLetters() {
return postBox;
}
/**
* adds letters to the postbox
*
* @param letters
* the letters to add
*/
public void addLetter(Letter... letters) {
postBox.add(new Letter("", ""));
}
}
nameSender und nameRecipient von Letter sind public. Instanzvariablen sollten aber per default private sein.
Die Letters, die an addLetter von Postbox übergeben werden, werden gar nicht verwendet. Die ArrayList (also quasi das "Speicherungsbackend" von Postbox) ist öffentlich zugänglich. Damit bist zum einen auf den Typ ArrayList festgelegt, und kannst nicht auf eine andere List-Implementierung wechseln, um zum anderen kann dadurch von aussen die ArrayList beliebig manipuliert werden. Ich würde entweder statt der ArrayList Collections.unmodifiableList zurückgeben, oder den Zugriff auf die Letters über eine eigene API kapseln (getLetterCount(), getLetter(int), addLetter(Letter), remove(Letter)). Ev. könnte Postbox auch Iterable<Letter> implementieren.
Vielen Dank für deine Hilfe ! Das meiste habe ich korrigiert, lediglich bei den Letters die an addLetter übergeben werden, blicke ich gerade nicht ganz durch.
In der Methode addLetter hast du einen Parameter, welchen du aber gar nicht verwendest. Stattdessen erzeugst du einfach ein neues Letter Objekt (mit leeren Absender bzw. Empfänger) und fügst dieses hinzu.
Java:
public void addLetter(Letter... letters) {
postBox.add(new Letter("", ""));
}
Außerdem heißt die Methode "addLetter" daher würde ich mir erwarten dass ich nur einen einzigen Letter hinzufügen kann. Der Parameter erlaubt aber mehrere Letter hinzuzufügen.
Entweder ist der Typ des Parameter falsch gewählt oder du solltest die Methode auf "addLetters" umbenennen