Structs in Java?

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • 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:

    Source Code

    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. }
    Display All
  • 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 wrote:


    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."