Structs in Java?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Structs sind überflüßig

    Structs sind ein Überbleibsel aus strukturellen Programmiersprachen wie C und Pascal (dort heißen sie records) und wurden in Java nicht mit aufgenommen, da Klassen im Prinzip eine Erweiterung der Structs sind.

    Außerdem ist die von Dir erzeugte Klasse nicht mit der Datenkapselung des OOP vereinbar. Die Attribute müssen als oder protected deklariert werden und der Zugriff auf diese Attribute muss durch Methoden erfolgen.
    Auch sollte ein Objekt von der Stringklasse erzeugt werden.

    Demnach würde dann dein "Struct" so aussehen:

    Quellcode

    1. public class meinStrukt //eigentlich Klasse
    2. {
    3. protected String Name;
    4. protected int X;
    5. protected int Y;
    6. protected double SchuhGroesse;
    7. meinStrukt() //Standardkonstruktor zum Erzeugen des Stringobjekts
    8. {
    9. String Name = new String();
    10. }
    11. public void setName(String Name)
    12. {
    13. this.Name = Name;
    14. }
    15. public String getName()
    16. {
    17. return Name;
    18. }
    19. public void setX(int X)
    20. {
    21. this.X = X;
    22. }
    23. public int getX()
    24. {
    25. return X;
    26. }
    27. public void setY(int Y)
    28. {
    29. this.Y = Y;
    30. }
    31. public int getY()
    32. {
    33. return Y;
    34. }
    35. public void setSchuhGroesse(double SchuhGroesse)
    36. {
    37. this.SchuhGroesse = SchuhGroesse;
    38. }
    39. public double getSchuhGroesse()
    40. {
    41. return SchuhGroesse;
    42. }
    43. }
    Alles anzeigen
  • Warum sollte man in diesem Beispiel denn die Methoden zum getten / setten verwenden? Wenn man beim getten / setten den Wert ändern möchte halte ich das für sinvoll, aber in deinem Beispiel macht es mehr sinn direkt auf die Variablen zuzugreifen, da deine Methoden nur einen Overhead darauflegen.
  • NeoLegends schrieb:


    Warum sollte man in diesem Beispiel denn die Methoden zum getten / setten verwenden? Wenn man beim getten / setten den Wert ändern möchte halte ich das für sinvoll, aber in deinem Beispiel macht es mehr sinn direkt auf die Variablen zuzugreifen, da deine Methoden nur einen Overhead darauflegen.


    Die Variablen wurden als protected deklariert, somit hat man nur in der Klasse selbst, und in der abgeleiteten Klassen, den
    direkten Zugriff darauf. Die Get/Set Methoden dienen für den Zugriff der Variablen von Außerhalb.

    cheers
    nobody
    "Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer."