Rückgabetyp Void oder Sting

MrDramasetter

Mitglied
Guten Tag,
ist es sinnvoller bei dieser Methode den Rückgabetyp void zu nehmen und die Variable über einen getter auszulesen oder würdet ihr als Rückgabetyp String nehmen?

Code:
    public void geschlechtErmitteln() {
        geschlecht = JOptionPane.showInputDialog("Geben Sie ihr Geschlecht ein (männlich/weiblich)");
        if (geschlecht.equals("männlich")) {
            geschlecht = "Herr";
        } else {
           geschlecht = "Frau";
        }
    }
oder
Code:
    public String geschlechtErmitteln() {
        geschlecht = JOptionPane.showInputDialog("Geben Sie ihr Geschlecht ein (männlich/weiblich)");
        if (geschlecht.equals("männlich")) {
            return geschlecht = "Herr";
        } else {
           return geschlecht = "Frau";
        }
    }
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

IMHO sind beide Varianten in etwa gleichwertig.
Allerdings impliziert für mich der Methodenname "geschlechtErmitteln", dass etwas zurückgegeben wird (hier halt das bestimmte Geschlecht)!

VG Klaus
 

Thallius

Top Contributor
Moin,

IMHO sind beide Varianten in etwa gleichwertig.
Allerdings impliziert für mich der Methodenname "geschlechtErmitteln", dass etwas zurückgegeben wird (hier halt das bestimmte Geschlecht)!

VG Klaus

Naja dann würde es heissen holeGeschlecht(). Sorry Leute aber ich kriege immer senkrecht stehende Nackenhaare wenn ich deutschen SourceCode lesen muss. Das ist echt so schlimm da läuft einem das Blut aus den Augen....
 

MrDramasetter

Mitglied
Die Methode ist in einer eigenen Klasse (also nicht in der main) und soll später das Geschlecht in eine Datei schreiben.
Ungefähr so:
Code:
writer.write("Anrede: " + x.getGeschlecht);
//oder
writer.write("Anrede: " + x.geschlechtErmitteln);
 

MrDramasetter

Mitglied
Stimmt. Da kommen noch ein paar Sachen wie z.B. Alter und Name dazu, aber meine anfangs gestellte Frage lässt sich auch auf die anderen Methoden übertragen.
Ich probier einfach mal den ersten Vorschlag aus, vielen Dank an alle!
 

Thallius

Top Contributor
Versuch doch einfach mal in Objekten zu denken. Dann wird dir schnell auffallen, das deine Attribute alter, Geschlecht etc. alle zu einem Objekt Lebewesen, Mensch, Person oder sonstwas gehören müssen und nicht alleine in der Gegend rum stehen. Also erzeugst du erstmal eine Klasse dieser Art und gibst ihr die notwendigen Attribute. Danach willst du es über einen Dialog möglich machen, dass ein Attribut dieser Klasse gesetzt wird. Ein Dialog hat aber doch mal so gar nichts mit einem Menschen zu tun. Also gehört der Dialog auch in eine eigene Klasse da er ein eigenes Objekt abbildet. Meinetwegen nenn diese Klasse MenschEingabeUI wenn es denn unbedingt deutsches ich muss. Damit diese Klasse weis von welchem Mensch die Attribute eingegeben werden sollen, muss es eine Referenz auf den Menschen bekommen.

Es hilft wirklich wenn man sich das was man vorhat erstmal auf einem Blatt Papier aufmalt und dann erst anfängt zu programmieren.
 

Jardcore

Top Contributor
Java:
public class MenschEingabeUI {
    private Mensch mensch; // Referenz auf  ein Objekt

    public MenschEingabeUI() {
        this.mensch = new Mensch(); // Setzte Referenz
    }
   
    public void frageNachGeschecht() {
        String geschlecht = JOptionPane.showInputDialog("Geben Sie ihr Geschlecht ein (männlich/weiblich)");
        mensch.setGeschlecht(geschlecht);
    }

    public void speichereAllesInEinerDatei() {
        // ... hier logik zum speichern
        // speichere den mensch
    }
}

Java:
// irgendwo
MenschEingabeUI ui = new MenschEingabeUI();
ui.frageNachGeschlecht();
ui.speichereAllesInEinerDatei();
 

MrDramasetter

Mitglied
Danke für deine Hilfe! Da war ich auf einem ähnlichen Weg allerdings habe ich mir gleich per new Mensch() ein neues Objekt erzeugt um dann die getter und setter zu verwenden wo liegt der Unterschied zu deinem bzw. warum setzt du die Referenz noch im Konstruktor?
 

Robat

Top Contributor
Wäre es nicht sinniger der MenschEingabeUI ein bereits existierendes Menschen Objekt übergeben zu können anstatt im Konstruktor immer ein neues (leeres) Objekt zu erzeugen?
 

Jardcore

Top Contributor
Das ganze Beispiel ist bisher nicht sehr sinnig. Auf die Frage wie eine Referenz aussieht, habe ich ein Beispiel geliefert. Wenn man jetzt davon ausgeht, dass die UI erstellt wird um genau einen Menschen zu beschreiben und ihn danach in eine Datei zu schreiben, ist das Beispiel völlig ausreichend. Bisher gab es nicht die Anforderung, dass der Mensch für weiterer Bearbeitung zur Verfügung stehen muss :p
 

MrDramasetter

Mitglied
Letztendlich sollen die Informationen über den Menschen noch in eine Datei geschrieben. Ich nehm eure Ratschläg erstmal auf, mach mir ein paar Gedanken und melde mich dann bald mit ein bisschen Code :)
 

Thallius

Top Contributor
Der Mensch wird erzeugt, konfiguriert und gespeichert.

Also brauchst du eine Klasse Mensch, eine Klasse Konfigurator (in dem Fall das UI) und eine Klasse der das ganze handelt. Nenn sie meinetwegen Gott(). Diese erzeugt sowohl den Menschen, danach den Konfigurator und gibt diesem den Menschen zum konfigurieren. Ist der Mensch konfiguriert schreibt gott() diesen in die datei.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Methoden printChar Methode mit Rückgabetyp void Java Basics - Anfänger-Themen 26
S Probleme mit dem rückgabetyp void Java Basics - Anfänger-Themen 8
J abstrakte Methode in Klasse mit Rückgabetyp der abgeleiteten Klasse Java Basics - Anfänger-Themen 5
L Bei falscher Eingabe soll NaN zurückgegeben werden, Rückgabetyp jedoch double Java Basics - Anfänger-Themen 3
F JavaKara - Rückgabetyp java.awt.Point Java Basics - Anfänger-Themen 2
R Wieso hat ein Konstruktor keinen Rückgabetyp? Java Basics - Anfänger-Themen 6
S Rückgabetyp - Objekt gibt sich selber zurück Java Basics - Anfänger-Themen 4
1 Datentypen Rückgabetyp von Java-Operatoren Java Basics - Anfänger-Themen 2
U Variabler Rückgabetyp und Klasse an Methode übergeben? Java Basics - Anfänger-Themen 5
G Eine Klasse als Rückgabetyp? Java Basics - Anfänger-Themen 12
K Fehlermeldung bei Rückgabetyp Java Basics - Anfänger-Themen 3
G Rückgabetyp (ArrayList, ArrayList) möglich? Java Basics - Anfänger-Themen 8
M Methode mit abweichendem Rückgabetyp überschreiben Java Basics - Anfänger-Themen 9
C Kann mir jemand sagen warum public void unzulässig ist? Java Basics - Anfänger-Themen 2
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
S Methoden - Warum int wenn auch void? Java Basics - Anfänger-Themen 3
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
N Groß- und Kleinschreibung bei Java: void Methode Java Basics - Anfänger-Themen 1
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
bensdt Klasse erweitern um eine Methode "void decrement()" Java Basics - Anfänger-Themen 5
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
C Void Methode überladen Java Basics - Anfänger-Themen 5
V for-Schleife in einer void Methode Java Basics - Anfänger-Themen 3
L [Verständnisproblem] Array wird trotz void rückgabe verändert. Java Basics - Anfänger-Themen 5
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
I Methoden public void paintComponent (Graphics g) Java Basics - Anfänger-Themen 4
shiroX Methoden JUnit-Test einer void-Methode Java Basics - Anfänger-Themen 4
H Variablen Void und der Rückgabewert Java Basics - Anfänger-Themen 6
G Interpreter-Fehler Problem mit void-Methoden Java Basics - Anfänger-Themen 2
Silvascus Void Methode einem Stringparameter im syso-Befehl hinzufügen Java Basics - Anfänger-Themen 3
T Void Java Basics - Anfänger-Themen 32
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
T Java Code Hilfe - public void xxx() Java Basics - Anfänger-Themen 2
T public void - Problem Java Basics - Anfänger-Themen 10
M Methoden void verschachteln Java Basics - Anfänger-Themen 4
B Void Mehoden Testen Java Basics - Anfänger-Themen 13
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
S Static void Methode Java Basics - Anfänger-Themen 12
L Objekte aus einem void in anderen voids verwenden Java Basics - Anfänger-Themen 8
K GUI Button methoden/void Problem Java Basics - Anfänger-Themen 6
D Array void Methode erstellen. Java Basics - Anfänger-Themen 12
E Methoden public static void main(String[] args) Java Basics - Anfänger-Themen 9
I Methoden Problem If/Else; Public Void Java Basics - Anfänger-Themen 6
D Compiler-Fehler void is an invalid type for the variable Java Basics - Anfänger-Themen 5
B Geerbte Instanz kann keine void Methode ausführen?! Java Basics - Anfänger-Themen 15
M Fragen zu Methoden (void/return), Übergabe von Parametern Java Basics - Anfänger-Themen 3
S Datentypen float statt void Java Basics - Anfänger-Themen 3
S Static void main <-> componentListener Java Basics - Anfänger-Themen 9
O Probleme mit void java.awt.Component.setBackground(Color c) Java Basics - Anfänger-Themen 2
T Hilfe bei void, int !? Java Basics - Anfänger-Themen 14
U void shift Java Basics - Anfänger-Themen 7
T Geht so was? public void verkaufe (<X implements Produkt& Java Basics - Anfänger-Themen 8
D generische methode <T> void . Java Basics - Anfänger-Themen 9
C public static void main(String[] args) Java Basics - Anfänger-Themen 6
D Frage zu public static void main. Java Basics - Anfänger-Themen 4
K void Methode abbrechen Java Basics - Anfänger-Themen 7
G Vor oder hinter public static void main. ? Java Basics - Anfänger-Themen 8
M 'void' type not allowed Java Basics - Anfänger-Themen 18
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
G Was ist public static void main(String[] args)? Java Basics - Anfänger-Themen 12
G <identifier> expected bei public void final Java Basics - Anfänger-Themen 3
H void not allowed? Java Basics - Anfänger-Themen 4
P Void-Aufrufe verursachen IO-Exceptions? Java Basics - Anfänger-Themen 4
T Von Main auf eine Variable in void zugreifen Java Basics - Anfänger-Themen 4
C public void keyPressed(KeyEvent e) Java Basics - Anfänger-Themen 2
N public void und verhalten bei return Java Basics - Anfänger-Themen 2
M public static void main(String... args)<- Was bedeutet das? Java Basics - Anfänger-Themen 5
A die public static void main ? Java Basics - Anfänger-Themen 3
C Java-Anfang main void public? Java Basics - Anfänger-Themen 5
N public static void main(String args[]) Java Basics - Anfänger-Themen 6
G Warum eigentlich static void? Java Basics - Anfänger-Themen 3
T void Methode -> keine Chance Java Basics - Anfänger-Themen 6
F public final void getsignature() | anfänger Java Basics - Anfänger-Themen 7
B Problem mit einer static void Methode Java Basics - Anfänger-Themen 8
P Was genau bedeutet "public static void main(String[] ar Java Basics - Anfänger-Themen 10
R void? static? beide? garnichtst von beiden? Java Basics - Anfänger-Themen 11
B Eine void innerhalb einer anderen void Java Basics - Anfänger-Themen 7
G in void verändern Java Basics - Anfänger-Themen 5
J public static void main? Java Basics - Anfänger-Themen 5
G public static void main(final String[] args) Java Basics - Anfänger-Themen 4
N public static void Java Basics - Anfänger-Themen 18
X Was genau heißt "public static void main(String[] args) Java Basics - Anfänger-Themen 4
B public static void main (String[] args) ??? Java Basics - Anfänger-Themen 2
G getParameter in public static void main Java Basics - Anfänger-Themen 3
A Datentypen Sting Splitting Java Basics - Anfänger-Themen 2
T Sting -> Array, leere Stellen löschen Java Basics - Anfänger-Themen 6
S Sting mit / versehen Java Basics - Anfänger-Themen 4
J Sting variablentyp Java Basics - Anfänger-Themen 7
G Array aus Frame und Sting Java Basics - Anfänger-Themen 5
M sting komplett bearbeiten und nicht nach zeilenumbruch ende Java Basics - Anfänger-Themen 3
G Sting.toByteArray() ? Java Basics - Anfänger-Themen 2
R Nur Double statt Sting oder Integer Combo sortieren und ! Java Basics - Anfänger-Themen 16
G Sting nach int casten Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben