Attribut (Informatik): Unterschied zwischen den Versionen

Aus KGS-Wiki
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
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.
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]] 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.
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 [[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)]].
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 <code><nowiki><ol></nowiki></code> das Attribut <code>type</code> setzen, das festlegt, welche Buchstaben oder Ziffern zur Nummerierung der Listeneinträge verwendet werden.
[[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 <code>type</code> bei <code><nowiki><ol></nowiki></code>-Listen
|+Beispiele für unterschiedliche Ausprägungen von {{HTML|type}} bei {{HTML|<ol>}}-Listen
!HTML-Code
!HTML-Code
!Darstellung im Browser
!Darstellung im Browser
|-
|-
|<pre><ol type="1">
|<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></pre>
</ol></syntaxhighlight>
|<ol type="1">
|<ol type="1">
   <li>Merkur</li>
   <li>Merkur</li>
Zeile 29: Zeile 29:
</ol>
</ol>
|-
|-
|<pre><ol type="a">
|<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></pre>
</ol></syntaxhighlight>
|<ol type="a">
|<ol type="a">
   <li>Merkur</li>
   <li>Merkur</li>
Zeile 40: Zeile 40:
</ol>
</ol>
|-
|-
|<pre><ol type="I">
|<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></pre>
</ol></syntaxhighlight>
|<ol type="I">
|<ol type="I">
   <li>Merkur</li>
   <li>Merkur</li>
Zeile 51: Zeile 51:
</ol>
</ol>
|}
|}
Manche Attribute wie den <code>type</code> einer <code><nowiki><ol></nowiki></code> 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 <code>src</code> von <code><img></code>-Tags, die genutzt werden, um Bilder in HTML-Seiten einzubinden. Das <code>src</code>-Attribut muss dazu auf den Pfad der Bilddatei gesetzt werden, die eingebunden werden soll.
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]].


{{Lückenhaft}}
== Weblinks ==
 
* {{Inf-Schule|7.3.1.3|Fachkonzept Attribut}}
{{Navigationsleiste OOM}}


[[Kategorie:Datenbanken]]
[[Kategorie:Datenbanken]]

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

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

Beispiele für unterschiedliche Ausprägungen von type bei <ol>-Listen
HTML-Code Darstellung im Browser
<ol type="1">
  <li>Merkur</li>
  <li>Venus</li>
  <li>Erde</li>
</ol>
  1. Merkur
  2. Venus
  3. Erde
<ol type="a">
  <li>Merkur</li>
  <li>Venus</li>
  <li>Erde</li>
</ol>
  1. Merkur
  2. Venus
  3. Erde
<ol type="I">
  <li>Merkur</li>
  <li>Venus</li>
  <li>Erde</li>
</ol>
  1. Merkur
  2. Venus
  3. Erde

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.

💬
Beispiel

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.

Weblinks