Heißen Variablen, die Teil eines Objekts sind Felder oder Attribute?



  • In der Literatur scheint das unterschiedlich gehandhabt zu werden.
    Aber was genau ist richtig?

    Ich finde die Bezeichnung Attribute sinnvoller, da Felder früher auch für primitive Arrays verwendet wurden und die waren kein Teil von Objekten.



  • Attribut vs. Feld schrieb:

    In der Literatur scheint das unterschiedlich gehandhabt zu werden.

    Außer in SGD-Unterlagen hab ich "Felder" dafür noch nicht bemerkt. Wo haste denn noch "Felder" gelesen?



  • volkard schrieb:

    Attribut vs. Feld schrieb:

    In der Literatur scheint das unterschiedlich gehandhabt zu werden.

    Außer in SGD-Unterlagen hab ich "Felder" dafür noch nicht bemerkt. Wo haste denn noch "Felder" gelesen?

    In diesem Buch werden Attribute von Objekten als Felder bezeichnet:

    http://www.amazon.de/Einführung-Java-Ideal-Studium-Ausbildung/dp/383622867X

    Die Bezeichnung Attribut kommt darin nicht vor.



  • Ist das nicht relativ egal?



  • wichtig? schrieb:

    Ist das nicht relativ egal?

    Es sagt was über die Belesenheit des Autors und läßt Schlüsse über die Qualität des Buches zu.



  • In Stroustrups "TC++PL" Buch ist da von "data members" die Rede. Das deckt sich auch mit dem ISO Standard. In der deutschen Übersetzung seines Buchs steht dafür "Datenelemente". Das habe ich bisher im C++ Kontext auch immer so genannt. Neben den Datenelementen gibt's natürlich auch noch Elementfunktionen (member functions) und "member types" (da weiß ich jetzt den deutschen Begriff nicht für aus dem Kopf und müsste das nachgucken).



  • field ist Java-Jargon.



  • In .NET (C#) heißt es auch field, denn ein attribute entspricht dort so etwas wie einer Annotation:

    class Test
    {
        [SpecialAttribute("...")] // <- attribute
        private string text; // <- field
    }
    


  • volkard schrieb:

    wichtig? schrieb:

    Ist das nicht relativ egal?

    Es sagt was über die Belesenheit des Autors und läßt Schlüsse über die Qualität des Buches zu.

    Also, ob er mehr als eine Sprache kennt.



  • Bashar schrieb:

    field ist Java-Jargon.

    Könntest du das irgendwie mit einer Quelle belegen, wenn dem so ist, dann würde das das natürlich erklären.

    Das Buch selbst ist ansonsten eigentlich ziemlich gut, bis auf eben diese seltsame Bezeichnung.



  • krümelkacker schrieb:

    In Stroustrups "TC++PL" Buch ist da von "data members" die Rede. Das deckt sich auch mit dem ISO Standard.

    Das stimmt, data member wäre auch eine gängige Bezeichnung, neben Attributen.



  • Attribut vs. Feld schrieb:

    Bashar schrieb:

    field ist Java-Jargon.

    Könntest du das irgendwie mit einer Quelle belegen, wenn dem so ist, dann würde das das natürlich erklären.

    Könnte ich machen, aber der Aufwand, die Java-Dokumentation aufzusuchen und das nachzuschlagen, ist für mich genauso groß wie für dich.



  • Die Frage ist insofern interessant, da bei dem abstrakten Begriff "Attribut" für die Computertechnik noch die konkrete Ausgestaltung fehlt. Also sowas wie "Die Frage war nach dem Himmel, die Antwort war ein Seil" (Sprichwort) bzw. die Variablen brauchen wenigstens einen Datentyp.
    Wenn die "Variable" aber zum Beispiel nur ein Schalter ist, bzw. ein Boolwert, dann würde "Feld" gar nicht passen.

    http://stackoverflow.com/questions/16751269/oop-terminology-class-attribute-property-field-data-member



  • Attribut vs. Feld schrieb:

    In der Literatur scheint das unterschiedlich gehandhabt zu werden.
    Aber was genau ist richtig?

    Feld, Attribut, Eigenschaft, Membervariable, Data Member... Keines davon ist falsch, und teilweise dem Hintergrund des Autors geschuldet. Das ist genauso wie mit verschiedenen Klammer- und Einrückungsstilen - ein Stil der unter Linux üblich ist, ist in der Windowswelt unüblich und umgekehrt.

    P.S: "Field" ist auch in der Delphi-Ecke durchaus üblich, dort wird als Präfix für Membervariablen in der VCL "F" verwendet.



  • Man könnte sich danach richten, was in der ISO-C++ Spec drin steht. Aber die haben sich halt auch nur auf einen Begriff geeinigt.

    Die Funktionen einer Klasse heißen in C++ "Member Functions". In Java "Methods". Manche sagen auch Klassen-Funktion.

    Ich sage in C++ auch dazu Method bzw. Methode, aus dem einfachen Grund, weil ich mich mehr im Java-Bereich aufhalte. Falsch ist es deshalb nicht.



  • asc schrieb:

    Feld, Attribut, Eigenschaft, Membervariable, Data Member...

    Weiters gäbe es dann noch Objektvariable bzw. Instanzvariable (=non-static data member) und Klassenvariable (static data member).



  • hustbaer schrieb:

    asc schrieb:

    Feld, Attribut, Eigenschaft, Membervariable, Data Member...

    Weiters gäbe es dann noch Objektvariable bzw. Instanzvariable (=non-static data member) und Klassenvariable (static data member).

    Nicht ohne Grund habe ich die drei Punkte gesetzt 😉



  • War nicht als Korrektur gemeint sondern als Ergänzung 😉
    (Und auch mit der Ergänzung wird die Liste vermutlich noch unvollständig sein)


Anmelden zum Antworten