Hi Ihr!
Ich hätte da jetzt einmal ne generelle Frage, wie ich hier am besten vorgehe:
Ich nehme nun einmal an, ich habe eine Klasse Benutzer. Ein Benutzer hat eine ID und einen Namen. Eine mögliche, einfache Klasse sähe ja nun so aus:
Das ist ja nun eine recht einfach gehaltene Klasse. Jetzt kommt es aber zu meiner Frage: Es kommt ja häufig vor, dass man die übergebenen Werte zunächst überprüfen möchte, bevor man die Werte den Objekt-Attributen zuweist. Ein Benutzername soll z.B. mindestens aus n Zeichen bestehen etc. Das regelt man dann ja meistens in den set-Methoden.
Wenn meine Bedingung nun ist, dass ein Benutzername aus mindestens 3 Zeichen bestehen sollte, könnte ich meine setName() ja so abändern:
Sollte ich für den Fall, dass der Name nun weniger als 3 Zeichen hat, eine Exception werfen, oder sollte ich die Methode diese Unart einfach stillschweigend dahinnehmen lassen? Und um auf meine eigentliche Frage zu kommen:
Sollte man für diese Fälle dann im Konstruktor auch immer die setMethode zum setzen des Wertes verwenden? Denn in fast allen Tutorials wird der Parameter des Konstruktors ohne jegliche Überprüfung immer den Attributen zugeordnet, also so, wie ich es oben in der Benutzer-Klasse habe. Sollte das ganze dann nicht besser so aussehen?:
Wäre nett, wenn der ein oder andere mal was dazu sagen könnte
Danke!
daNny
Ich hätte da jetzt einmal ne generelle Frage, wie ich hier am besten vorgehe:
Ich nehme nun einmal an, ich habe eine Klasse Benutzer. Ein Benutzer hat eine ID und einen Namen. Eine mögliche, einfache Klasse sähe ja nun so aus:
Code:
public class Benutzer {
/**
* Die ID des Benutzers
*/
private int id;
/**
* Der Name des Benutzers
*/
private String name;
/**
* Erzeugt einen neuen Benutzer
*/
public Benutzer(int id, String name) {
this.id = id;
this.name = name;
}
/*
* Gibt die ID des Benutzers zurück
* @return die ID
*/
public int getId() {
return this.id;
}
/*
* Setzt die ID des Benutzers
* @param id die ID
*/
public void setId(int id) {
this.id = id;
}
/*
* Gibt den Namen des Benutzers zurück
* @return der Name
*/
public String getName() {
return this.name;
}
/*
* Setzt den Namen des Benutzers
* @param name der Name
*/
public void setName(String name) {
this.name = name;
}
}
Das ist ja nun eine recht einfach gehaltene Klasse. Jetzt kommt es aber zu meiner Frage: Es kommt ja häufig vor, dass man die übergebenen Werte zunächst überprüfen möchte, bevor man die Werte den Objekt-Attributen zuweist. Ein Benutzername soll z.B. mindestens aus n Zeichen bestehen etc. Das regelt man dann ja meistens in den set-Methoden.
Wenn meine Bedingung nun ist, dass ein Benutzername aus mindestens 3 Zeichen bestehen sollte, könnte ich meine setName() ja so abändern:
Code:
public void setName(String name) {
if (name != null && name.length() > 2) {
this.name = name;
}
}
Sollte ich für den Fall, dass der Name nun weniger als 3 Zeichen hat, eine Exception werfen, oder sollte ich die Methode diese Unart einfach stillschweigend dahinnehmen lassen? Und um auf meine eigentliche Frage zu kommen:
Sollte man für diese Fälle dann im Konstruktor auch immer die setMethode zum setzen des Wertes verwenden? Denn in fast allen Tutorials wird der Parameter des Konstruktors ohne jegliche Überprüfung immer den Attributen zugeordnet, also so, wie ich es oben in der Benutzer-Klasse habe. Sollte das ganze dann nicht besser so aussehen?:
Code:
public Benutzer (int id, String name) {
setId(id);
setName(name);
}
Wäre nett, wenn der ein oder andere mal was dazu sagen könnte
Danke!
daNny