Aloha , hier mal eine Kleine Frage bezüglich Initialisierungsblöcken
Folgende Situation:
Ich habe eine Klasse 'Name' erstellt, diese möchte ich an mehreren unterschiedlichen stellen einsetzen, z.B später für Klassen die Gegenstände oder Personen darstellen.
um zu vermeiden das bei einer Abfrage an einem Objekt der Klasse 'Name' der wert
zurückgegeben wird, habe ich einen Initialisierungsblock genutzt, macht man das so ? oder sollte man die Variablen direkt initialisieren anstatt sich auf Lazy Initialisation zu stützen ?
Also entweder so :
oder so ?
Wenn ich jetzt später z.B in einer Klasse Autor welche als Attribut einen Namen hat, über einen getter den alias abfrage , dürfte es doch so nicht passieren das der Wert null geliefert wird , sondern "", also sprich ein leerer String?
Folgende Situation:
Ich habe eine Klasse 'Name' erstellt, diese möchte ich an mehreren unterschiedlichen stellen einsetzen, z.B später für Klassen die Gegenstände oder Personen darstellen.
um zu vermeiden das bei einer Abfrage an einem Objekt der Klasse 'Name' der wert
Code:
null
Also entweder so :
Java:
public class Name {
private String name = "";
private String lastName = "";
private String alias = "";
...
oder so ?
Java:
public class Name {
private String name = "";
private String lastName = "";
private String alias = "";
public Name(String name) {
tokenizeInput(name);
}
public Name(String name, String alias){
tokenizeInput(name);
this.alias = alias;
}
private void tokenizeInput(String input){
if (input.length() <= 0) {
throw new IllegalArgumentException("'input' length cannot be <= 0 ");
}
else{
if (!input.trim().contains(" ")) {
this.name = input;
}
else{
String[] token = input.trim().split(" ");
this.name = token[0];
this.lastName = token[1];
}
}
}
public String getName() {return this.name;}
public String getLastName() {return this.lastName;}
public String getAlias() {return this.alias;}
public String getFullName() {return this.name + " " + this.lastName;}
@Override
public String toString(){
return String.valueOf(this.name + " " + this.lastName + " " + this.alias);
}
public static void main(String[] args) {
Name a = new Name("");
System.out.println(a.getFullName());
}
}
Wenn ich jetzt später z.B in einer Klasse Autor welche als Attribut einen Namen hat, über einen getter den alias abfrage , dürfte es doch so nicht passieren das der Wert null geliefert wird , sondern "", also sprich ein leerer String?
Zuletzt bearbeitet: