Atribut (objekt)

Atribut (od Latin attribuere , „přiřadit“, „Přiřazení“), také volal vlastnictví , je obecně považována za charakteristickou , identifikátor, informační detail , atd, že je přiřazen ke konkrétním objektu . Rozlišuje se mezi významem (např. Barva očí) a konkrétním výrazem (např. Modrá) atributu.

Ve výpočetní technice se pod atributem rozumí úroveň definice těchto charakteristik. Jako takové jsou analyticky určeny, definovány a popsány a pro určitý typ objektu definovány jako prvky jeho struktury („ modelovány “). Data o objektech se ukládají v této struktuře a pouze s jejich obsahem, hodnotami atributů. Každý objekt se tak představuje prostřednictvím celých svých hodnot atributů.

Každý atribut má přidružená pravidla, která se označují jako operace . Z toho vyplývá, že definici objektu lze rozšířit definováním datových typů . Do definice atributů lze zahrnout formát zobrazení, standardní hodnotu i platné operace a omezení (např. Dělení nulou není povoleno), nebo naopak lze jej označit jako atribut typu objektu .

Například v počítačové grafice mohou mít řádkové objekty atributy jako počáteční bod a koncový bod (se souřadnicemi jako hodnotami), šířka (s plovoucí desetinnou čárkou jako hodnotou), barva (s popisnými hodnotami, jako je červená, žlutá, zelená nebo modrá nebo hodnoty definované v určitém barevném modelu, například v barevném prostoru RGB ) atd. a kruhové objekty lze definovat také pomocí atributů středový bod a poloměr .

zpracovává se

Ke zpracování dat lze atributy a hodnoty atributů použít způsobem omezujícím množství:

  • pro výběr : výběr podmnožiny objektů prostřednictvím hodnot atributů; Např .: datum narození <1.1.2000
  • pro projekci : Pro vybrané objekty by měly být čteny / zpracovávány pouze určité atributy; Např .: pouze příjmení, jméno, datum narození

C #

V programovacím jazyce C # jsou atributy metadata připojená k poli nebo bloku kódu, jako jsou sestavy, veřejné proměnné a datové typy , a odpovídají anotaci v Javě . Atributy jsou přístupné jak kompilátoru, tak programově prostřednictvím reflexe . S modifikátory přístupu, jako je abstraktní , zapečetěný nebo veřejný , je možné rozšířit atributy.

Jejich konkrétní použití jako metadata je ponecháno na vývojáře a může pokrýt širokou škálu typů informací o konkrétních aplikacích, třídách a veřejných proměnných, které nejsou specifické pro konkrétní instanci. Rozhodnutí zpřístupnit konkrétní atribut jako vlastnost je ponecháno na vývojáře, stejně jako rozhodnutí použít jej jako součást širšího aplikačního rámce.

Atributy jsou implementovány jako třídy odvozené od System.Attribute . Často je používá CLR - služby používané pro. B. COM - interoperabilita , vzdálené volání procedur , serializace a lze je dotazovat za běhu .

Poziční parametry, jako je první parametr výše uvedeného typového řetězce, jsou parametry konstruktoru atributu. Parametry názvu, jako je booleovský parametr v příkladu, jsou vlastností atributu a měly by být konstantní hodnotou.

Atributy by měly být porovnány s dokumentací XML , která také definuje metadata, ale není zahrnuta v kompilovaném sestavení, a proto k ní nelze programově přistupovat.

Příklady

Následující příklad v programovacím jazyce C # ukazuje třídy Partei , Abgeordnetera Parlament, které deklarují veřejné atributy. Většina z těchto atributů jiných objektů se načte, ale nezmění, protože metodaset - s modifikátorem přístupu deklaruje . Atribut třídy a atribut třídy lze také změnit jinými objekty. private mitgliedsbeitragParteimaximalGroesseParlament

Tyto datové typy atributů může být základní datové typy nebo třídy , tj typy objektů. Většina atributů v příkladu má základní datové typy. Atribut vorsitzendertřídy Abgeordnetermá typ objektu Abgeordneter. Atribut mitgliedertřídy Parteiobecný typ List<Person> , tj. Je to seznam s parametrem type Person.

class Person
{
    public string vorname { get; private set; }
    public string nachname { get; private set; }
    public Date geburtsdatum { get; private set; }
    public List<string> nationalitäten { get; private set; }
    public string MailAdresse { get; private set; }
    public string Postanschrift { get; private set; }
}

class Partei
{
	public List<Person> mitglieder { get; private set; }
    public double mitgliedsbeitrag { get; set; }
}

class Abgeordneter : Person
{
    public Partei partei { get; private set; }
}

class Parlament
{
	public List<Abgeordneter> abgeordnete { get; private set; }
    public Abgeordneter vorsitzender { get; private set; }
    public int maximalGroesse { get; set; }
}

Viz také

Individuální důkazy

  1. ^ Hanspeter Mössenböck, University of Linz: C # Tutorial