Attribut (Informatik): Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sn (Diskussion | Beiträge) K (→Objektorientierte Programmierung: Vorlage Java) |
||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
== Blockbasierte Programmierung == | == Blockbasierte Programmierung == | ||
[[Datei:Scratch Neues Attribut.png|thumb|rechts|Hier erzeugen wir ein neues Attribut "Alter" für eine Figur.]] | |||
Die einzelnen Figuren in einem [[Scratch]]-Programm haben Attribute, die sie für jede Figur einzigartig sind, etwa ihre Position <sb>[x-Position v] von (Katze v)</sb> oder ihre Größe <sb>[Größe v] von (Hund v)</sb>. Diese Eigenschaften sind für jede Figur unterschiedlich und können mit den petrolfarbenen Blöcken aus der Kategorie "Fühlen" abgefragt werden. Anders als in anderen objektorientierten Programmiersprachen gibt es in Scratch keine Möglichkeit, die Attribute anderer Figuren direkt zu ändern. Man kann ihnen lediglich Nachrichten schicken und sie darum bitten, ihre Attribute selbst zu ändern. | |||
Man kann auch eigene Attribute zu Figuren hinzufügen, indem man die Figur auswählt, eine neue [[Variable (Informatik)|Variable]] erzeugt und darunter das Kontrollkästchen "Nur für diese Figur" auswählt. Diese Variable kann nun von der Figur selbst normal über den orangefarbenen Variablenblock <sb>(Alter)</sb> abgefragt und verändert werden. Alle anderen Figuren können diese Variable mit dem petrolfarbenen Fühlen-Block <sb>[Alter v] von (Katze v)</sb> nur noch abfragen, aber nicht direkt verändern. | |||
== Datenbanken == | == Datenbanken == | ||
In | In [[Datenbank]]en bezeichnet man die Spalten einer [[Relation]] als Attribut. Diese Attribute haben einen Namen, der in jeder Relation eindeutig sein muss. Attributmengen, die verwendet werden, um die [[Tupel]] in einer Relation eindeutig zu identifizieren, nennt man [[Schlüssel (Datenbank)|Schlüssel]]. | ||
== Web-Programmierung == | == Web-Programmierung == | ||
[[HTML-Element|HTML-Elemente]] können mit Attributen näher spezifiziert werden. Beispielsweise kann man für eine sortierte Liste | [[HTML-Element|HTML-Elemente]] können mit Attributen näher spezifiziert werden. Beispielsweise kann man für eine sortierte Liste {{HTML|<ol>}} das Attribut {{HTML|type}} setzen, das festlegt, welche Buchstaben oder Ziffern zur Nummerierung der Listeneinträge verwendet werden. | ||
{| class="wikitable mw-collapsible" | {| class="wikitable mw-collapsible" | ||
|+Beispiele für unterschiedliche Ausprägungen von | |+Beispiele für unterschiedliche Ausprägungen von {{HTML|type}} bei {{HTML|<ol>}}-Listen | ||
!HTML-Code | !HTML-Code | ||
!Darstellung im Browser | !Darstellung im Browser | ||
|- | |- | ||
|< | |<syntaxhighlight lang="html"><ol type="1"> | ||
<li>Merkur</li> | <li>Merkur</li> | ||
<li>Venus</li> | <li>Venus</li> | ||
<li>Erde</li> | <li>Erde</li> | ||
</ol></ | </ol></syntaxhighlight> | ||
|<ol type="1"> | |<ol type="1"> | ||
<li>Merkur</li> | <li>Merkur</li> | ||
Zeile 24: | Zeile 29: | ||
</ol> | </ol> | ||
|- | |- | ||
|< | |<syntaxhighlight lang="html"><ol type="a"> | ||
<li>Merkur</li> | <li>Merkur</li> | ||
<li>Venus</li> | <li>Venus</li> | ||
<li>Erde</li> | <li>Erde</li> | ||
</ol></ | </ol></syntaxhighlight> | ||
|<ol type="a"> | |<ol type="a"> | ||
<li>Merkur</li> | <li>Merkur</li> | ||
Zeile 35: | Zeile 40: | ||
</ol> | </ol> | ||
|- | |- | ||
|< | |<syntaxhighlight lang="html"><ol type="I"> | ||
<li>Merkur</li> | <li>Merkur</li> | ||
<li>Venus</li> | <li>Venus</li> | ||
<li>Erde</li> | <li>Erde</li> | ||
</ol></ | </ol></syntaxhighlight> | ||
|<ol type="I"> | |<ol type="I"> | ||
<li>Merkur</li> | <li>Merkur</li> | ||
Zeile 46: | Zeile 51: | ||
</ol> | </ol> | ||
|} | |} | ||
Manche Attribute wie den | Manche Attribute wie den {{HTML|type}} einer {{HTML|<ol>}} darf man setzen, muss man aber nicht. Andere Attribute ''müssen'' gesetzt werden, damit das Element korrekt angezeigt werden kann. Ein Beispiel hierfür ist das Attribut {{HTML|src}} von {{HTML|<img>}}-Tags, die genutzt werden, um Bilder in HTML-Seiten einzubinden. Das {{HTML|src}}-Attribut muss dazu auf den Pfad der Bilddatei gesetzt werden, die eingebunden werden soll. | ||
== Objektorientierte Programmierung == | == Objektorientierte Programmierung == | ||
Genau wie in der visuellen Programmierung haben auch in der [[Objektorientierte Programmierung|objektorientierten Programmierung]] die [[Objekt (Informatik)|Objekte]] Attribute. In klassenbasierten Sprachen wie [[Java (Programmiersprache)|Java]] und [[Python (Programmiersprache)|Python]] wird in der Definition der [[Klasse (Informatik)|Klasse]] vorgegeben, welche Attribute ein Objekt dieser Klasse haben kann. In anderen Sprachen wie [[JavaScript]] können auch Objekte ohne Klassen existieren; diese Objekte haben aber auch Attribute. | |||
{{Beispiel|Der folgende Codeschnipsel zeigt die Definition einer Klasse {{Java|Person}} in Java. Jede {{Java|Person}} hat zwei Attribute: einem öffentlich zugänglichen Namen und ein verborgenen Alter. | |||
<syntaxhighlight lang="java" line> | |||
public class Person { | |||
public String name; | |||
private int age; | |||
} | |||
</syntaxhighlight>}} | |||
In einigen Sprachen kann man die Sichtbarkeit der Attribute einschränken und den Zugriff darauf gezielt steuern. Dies nennt man [[Datenkapselung]]. | |||
== Weblinks == | |||
* {{Inf-Schule|7.3.1.3|Fachkonzept Attribut}} | |||
{{Navigationsleiste OOM}} | |||
[[Kategorie:Datenbanken]] | [[Kategorie:Datenbanken]] | ||
[[Kategorie:Visuelle Programmierung]] | [[Kategorie:Visuelle Programmierung]] |
Aktuelle Version vom 4. August 2024, 21:30 Uhr
Als Attribut werden in der Informatik die Eigenschaften von beliebigen Objekten bezeichnet. Der Begriff findet sich in vielen Kontexten wieder, wird aber überall in etwa gleich verwendet.
Blockbasierte Programmierung
Die einzelnen Figuren in einem Scratch-Programm haben Attribute, die sie für jede Figur einzigartig sind, etwa ihre Position [x-Position v] von (Katze v)
oder ihre Größe [Größe v] von (Hund v)
. Diese Eigenschaften sind für jede Figur unterschiedlich und können mit den petrolfarbenen Blöcken aus der Kategorie "Fühlen" abgefragt werden. Anders als in anderen objektorientierten Programmiersprachen gibt es in Scratch keine Möglichkeit, die Attribute anderer Figuren direkt zu ändern. Man kann ihnen lediglich Nachrichten schicken und sie darum bitten, ihre Attribute selbst zu ändern.
Man kann auch eigene Attribute zu Figuren hinzufügen, indem man die Figur auswählt, eine neue Variable erzeugt und darunter das Kontrollkästchen "Nur für diese Figur" auswählt. Diese Variable kann nun von der Figur selbst normal über den orangefarbenen Variablenblock (Alter)
abgefragt und verändert werden. Alle anderen Figuren können diese Variable mit dem petrolfarbenen Fühlen-Block [Alter v] von (Katze v)
nur noch abfragen, aber nicht direkt verändern.
Datenbanken
In Datenbanken bezeichnet man die Spalten einer Relation als Attribut. Diese Attribute haben einen Namen, der in jeder Relation eindeutig sein muss. Attributmengen, die verwendet werden, um die Tupel in einer Relation eindeutig zu identifizieren, nennt man Schlüssel.
Web-Programmierung
HTML-Elemente können mit Attributen näher spezifiziert werden. Beispielsweise kann man für eine sortierte Liste <ol>
das Attribut type
setzen, das festlegt, welche Buchstaben oder Ziffern zur Nummerierung der Listeneinträge verwendet werden.
HTML-Code | Darstellung im Browser |
---|---|
<ol type="1">
<li>Merkur</li>
<li>Venus</li>
<li>Erde</li>
</ol>
|
|
<ol type="a">
<li>Merkur</li>
<li>Venus</li>
<li>Erde</li>
</ol>
|
|
<ol type="I">
<li>Merkur</li>
<li>Venus</li>
<li>Erde</li>
</ol>
|
|
Manche Attribute wie den type
einer <ol>
darf man setzen, muss man aber nicht. Andere Attribute müssen gesetzt werden, damit das Element korrekt angezeigt werden kann. Ein Beispiel hierfür ist das Attribut src
von <img>
-Tags, die genutzt werden, um Bilder in HTML-Seiten einzubinden. Das src
-Attribut muss dazu auf den Pfad der Bilddatei gesetzt werden, die eingebunden werden soll.
Objektorientierte Programmierung
Genau wie in der visuellen Programmierung haben auch in der objektorientierten Programmierung die Objekte Attribute. In klassenbasierten Sprachen wie Java und Python wird in der Definition der Klasse vorgegeben, welche Attribute ein Objekt dieser Klasse haben kann. In anderen Sprachen wie JavaScript können auch Objekte ohne Klassen existieren; diese Objekte haben aber auch Attribute.
Der folgende Codeschnipsel zeigt die Definition einer Klasse Person
in Java. Jede Person
hat zwei Attribute: einem öffentlich zugänglichen Namen und ein verborgenen Alter.
public class Person {
public String name;
private int age;
}
In einigen Sprachen kann man die Sichtbarkeit der Attribute einschränken und den Zugriff darauf gezielt steuern. Dies nennt man Datenkapselung.