<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Attribut_%28Programmierung%29</id>
	<title>Attribut (Programmierung) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Attribut_%28Programmierung%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Attribut_(Programmierung)&amp;action=history"/>
	<updated>2026-05-30T08:13:11Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Attribut_(Programmierung)&amp;diff=29165&amp;oldid=prev</id>
		<title>imported&gt;Schotterebene: Änderungen von 78.55.28.174 (Diskussion) auf die letzte Version von Schotterebene zurückgesetzt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Attribut_(Programmierung)&amp;diff=29165&amp;oldid=prev"/>
		<updated>2022-10-28T18:39:06Z</updated>

		<summary type="html">&lt;p&gt;Änderungen von &lt;a href=&quot;/index.php/Spezial:Beitr%C3%A4ge/78.55.28.174&quot; title=&quot;Spezial:Beiträge/78.55.28.174&quot;&gt;78.55.28.174&lt;/a&gt; (&lt;a href=&quot;/index.php?title=Benutzer_Diskussion:78.55.28.174&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer Diskussion:78.55.28.174 (Seite nicht vorhanden)&quot;&gt;Diskussion&lt;/a&gt;) auf die letzte Version von &lt;a href=&quot;/index.php?title=Benutzer:Schotterebene&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:Schotterebene (Seite nicht vorhanden)&quot;&gt;Schotterebene&lt;/a&gt; zurückgesetzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;Attribut&amp;#039;&amp;#039;&amp;#039; (von {{laS|&amp;#039;&amp;#039;attribuere&amp;#039;&amp;#039;}} ‚zuteilen‘, ‚zuordnen‘), auch [[Eigenschaft]] genannt, gilt im Allgemeinen als [[Merkmal]], Kennzeichen, Informationsdetail etc., das einem konkreten [[Objekt (Programmierung)|Objekt]] zugeordnet ist. Dabei wird unterschieden zwischen der [[Bedeutung]] (z.&amp;amp;nbsp;B. Augenfarbe) und der konkreten Ausprägung (z.&amp;amp;nbsp;B. blau) des Attributs.&lt;br /&gt;
&lt;br /&gt;
In der [[Informatik]] wird unter Attribut die Definitionsebene für diese Merkmale verstanden. Als solche werden sie analytisch ermittelt, definiert und beschrieben sowie für einen bestimmten [[Objekttyp]] als Elemente seiner Struktur festgelegt („[[Datenmodellierung|modelliert]]“). [[Daten]] über die Objekte werden in dieser Struktur und nur mit ihrem Inhalt, den Attributwerten, gespeichert. Jedes Objekt repräsentiert sich somit durch die Gesamtheit seiner Attributwerte.&lt;br /&gt;
&lt;br /&gt;
Jedem Attribut sind Regeln zugeordnet, die als [[Operation (Informatik)|Operationen]] bezeichnet werden. Daraus folgt, dass eine Objektdefinition durch die Definition von [[Datentyp]]en erweitert werden kann. Ein Darstellungsformat, ein Standardwert sowie gültige Operationen und Einschränkungen (z. B. ist [[Division durch null]] nicht erlaubt) können an der Definition von Attributen beteiligt sein oder umgekehrt als Attribut des [[Objekttyp]]s bezeichnet werden.&lt;br /&gt;
&lt;br /&gt;
In der [[Computergrafik]] zum Beispiel können Linienobjekte beispielsweise Attribute wie Anfangspunkt und Endpunkt (mit [[Koordinatensystem|Koordinaten]] als Werten), Breite (mit einer [[Gleitkommazahl]] als Wert), Farbe (mit beschreibenden Werten wie Rot, Gelb, Grün oder Blau oder in einem bestimmten Farbmodell definierte Werte wie im [[RGB-Farbraum]]) usw. aufweisen und Kreisobjekte können zusätzlich mit den Attributen [[Mittelpunkt]] und [[Radius]] definiert werden.&lt;br /&gt;
&lt;br /&gt;
In [[Landinformationssystem|Land-]] bzw. [[Geoinformationssystem]]en (GIS) ist die Datengrundlage von Objekten ihre Lage in einem horizontalen Koordinatensystem (meist ebene [[Gauß-Krüger-Koordinaten]] oder [[geografische Breite]] plus [[geografische Länge|Länge]]). Alle weiteren Eigenschaften des Objekts (z.&amp;amp;nbsp;B. Höhe, Größe, Zweck, Zeitpunkt der Erfassung) werden den Lagekoordinaten als Attribut zugeordnet. Hingegen wird die [[Meereshöhe]] meist in ein [[zweidimensional]]es Modell (2½-D) realisiert, also als Objekt mit größerer Bedeutung; bei [[3D]]-Modellen ist sie hingegen den Lagekorrdinaten gleichwertig.&lt;br /&gt;
Objektattribute sind im Regelfall mit anderen Daten des GIS [[Verknüpfung (Computer)|verknüpfbar]], heute meist auch mit anderen, verwandten [[Datenbank]]en.&lt;br /&gt;
&lt;br /&gt;
== Verarbeitung ==&lt;br /&gt;
Zur Verarbeitung der Daten können Attribute und Attributwerte mengen-einschränkend benutzt werden:&lt;br /&gt;
* zur [[Selektion (Informatik)|Selektion]]: Auswahl einer Objekt-Teilmenge über ihre Attributwerte; Bsp.: Geburtsdatum &amp;lt; 1.1.2000&lt;br /&gt;
* zur [[Relationale Algebra#Projektion|Projektion]]: Für die selektierten Objekte sollen nur bestimmte Attribute gelesen / verarbeitet werden; Bsp.: nur Name, Vorname, Geburtsdatum&lt;br /&gt;
&lt;br /&gt;
=== C# ===&lt;br /&gt;
In der [[Programmiersprache]] [[C-Sharp|C#]] sind Attribute [[Metadaten]], die an ein Feld oder einen Codeblock wie Assemblys, öffentliche [[Variable (Programmierung)|Variablen]] und [[Datentyp]]en angehängt sind, und entsprechen [[Annotation (Java)|Annotations in Java]]. Attribute sind sowohl für den [[Compiler]] als auch programmgesteuert durch [[Reflexion (Programmierung)|Reflexion]] zugänglich. Mit Zugriffsmodifikator wie &amp;#039;&amp;#039;abstract&amp;#039;&amp;#039;, &amp;#039;&amp;#039;sealed&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;public&amp;#039;&amp;#039; ist es möglich, Attribute zu erweitern.&lt;br /&gt;
&lt;br /&gt;
Ihre spezifische Verwendung als [[Metadaten]] bleibt dem [[Softwareentwickler|Entwickler]] überlassen und kann eine Vielzahl von Arten von Informationen zu bestimmten Anwendungen, [[Klasse (Objektorientierung)|Klassen]] und öffentlichen [[Variable (Programmierung)|Variablen]] abdecken, die nicht instanzspezifisch sind. Die Entscheidung, ein bestimmtes Attribut als Eigenschaft verfügbar zu machen, bleibt ebenso dem Entwickler überlassen wie die Entscheidung, sie als Teil eines größeren Anwendungsframeworks zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Attribute werden als [[Klasse (Objektorientierung)|Klassen]] implementiert, die von &amp;#039;&amp;#039;System.Attribute&amp;#039;&amp;#039; abgeleitet sind. Sie werden häufig von den [[Common Language Runtime|CLR]]-[[Dienst (Informatik)|Diensten]] verwendet, z. B. [[Component Object Model|COM]]-[[Interoperabilität]], [[Remote Procedure Call]]s, [[Serialisierung]] und können zur [[Laufzeit (Informatik)|Laufzeit]] abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
Positionsparameter wie der erste [[Parameter (Informatik)|Parameter]] der obigen Typzeichenfolge sind Parameter des Konstruktors des Attributs. Namensparameter wie der Boolesche Parameter im Beispiel sind eine Eigenschaft des Attributs und sollten ein konstanter Wert sein.&lt;br /&gt;
&lt;br /&gt;
Attribute sollten der [[XML]]-Dokumentation gegenübergestellt werden, die auch [[Metadaten]] definiert, jedoch nicht in der kompilierten Assembly enthalten ist und daher nicht programmgesteuert aufgerufen werden kann.&amp;lt;ref&amp;gt;Hanspeter Mössenböck, University of Linz: [https://ssw.jku.at/Teaching/Lectures/CSharp/Tutorial/ C# Tutorial]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
Das folgende Beispiel in der [[Programmiersprache]] [[C-Sharp|C#]] zeigt die [[Klasse (Objektorientierung)|Klassen]] &amp;lt;code&amp;gt;Partei&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Abgeordneter&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;Parlament&amp;lt;/code&amp;gt;, die öffentliche Attribute deklarieren. Die meisten dieser Attribute können von anderen [[Objekt (Programmierung)|Objekten]] gelesen, aber nicht geändert werden, weil die &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt;-[[Methode (Programmierung)|Methode]] mit dem [[Zugriffsmodifikator]] &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; [[Deklaration (Programmierung)|deklariert]] ist. Das Attribut  &amp;lt;code&amp;gt;mitgliedsbeitrag&amp;lt;/code&amp;gt; der Klasse &amp;lt;code&amp;gt;Partei&amp;lt;/code&amp;gt; und das Attribut &amp;lt;code&amp;gt;maximalGroesse&amp;lt;/code&amp;gt; der Klasse &amp;lt;code&amp;gt;Parlament&amp;lt;/code&amp;gt; können auch von anderen Objekten geändert werden.&lt;br /&gt;
&lt;br /&gt;
Die [[Datentyp]]en von Attributen können [[Datentyp#Elementare Datentypen|elementare Datentypen]] oder [[Klasse (Objektorientierung)|Klassen]], also Objekttypen sein. Die meisten Attribute im Beispiel haben elementare Datentypen. Das Attribut &amp;lt;code&amp;gt;vorsitzender&amp;lt;/code&amp;gt; der Klasse &amp;lt;code&amp;gt;Abgeordneter&amp;lt;/code&amp;gt; hat den Objekttyp &amp;lt;code&amp;gt;Abgeordneter&amp;lt;/code&amp;gt;. Das Attribut &amp;lt;code&amp;gt;mitglieder&amp;lt;/code&amp;gt; der Klasse &amp;lt;code&amp;gt;Partei&amp;lt;/code&amp;gt; hat den [[Generischer Typ|generischen Typ]] &amp;lt;code&amp;gt;List&amp;lt;Person&amp;gt;&amp;lt;/code&amp;gt;, ist also eine Liste mit dem Typparameter &amp;lt;code&amp;gt;Person&amp;lt;/code&amp;gt;.&amp;lt;syntaxhighlight lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
class Person&lt;br /&gt;
{&lt;br /&gt;
    public string vorname { get; private set; }&lt;br /&gt;
    public string nachname { get; private set; }&lt;br /&gt;
    public Date geburtsdatum { get; private set; }&lt;br /&gt;
    public List&amp;lt;string&amp;gt; nationalitäten { get; private set; }&lt;br /&gt;
    public string MailAdresse { get; private set; }&lt;br /&gt;
    public string Postanschrift { get; private set; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Partei&lt;br /&gt;
{&lt;br /&gt;
	public List&amp;lt;Person&amp;gt; mitglieder { get; private set; }&lt;br /&gt;
    public double mitgliedsbeitrag { get; set; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Abgeordneter : Person&lt;br /&gt;
{&lt;br /&gt;
    public Partei partei { get; private set; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Parlament&lt;br /&gt;
{&lt;br /&gt;
	public List&amp;lt;Abgeordneter&amp;gt; abgeordnete { get; private set; }&lt;br /&gt;
    public Abgeordneter vorsitzender { get; private set; }&lt;br /&gt;
    public int maximalGroesse { get; set; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Attribut (UML)]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Objektorientierte Programmierung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Schotterebene</name></author>
	</entry>
</feed>