Getter (programozás)

Olvasási módszer , getter ( eng.  getter  - recipient) - (a programozásban) egy speciális módszer , amely lehetővé teszi adatok beszerzését, amelyekhez való hozzáférés közvetlenül korlátozott. Ez az objektum-orientált programozás egyik technikája, amely segít a rugalmas beágyazási mechanizmus megvalósításában . Egy setterrel párosítva használható tulajdonságok és metódusok rendszerezésére olyan nyelveken , ahol nem támogatottak.

Példák

Java

class Foo { privát int adatok ; privát logikai zászló ; public void setData ( int data ) { this . adat = adat ; } public int getData () { return data ; } public void setFlag ( logikai jelző ) { this . zászló = zászló ; } // Javasoljuk, hogy a logikai tulajdonságokat az is előtaggal jelölje meg a nyilvános logikai érték lekérése helyett isFlag () { return flag ; } }

C++

osztály Foo { privát : int m_data ; nyilvános : void setData ( int data ) { m_adat = adat ; } int getData () const { return m_data ; } }

Delphi

type TFoo = class private FData : Integer ; nyilvános függvény GetData : Integer ; eljárás SetData ( const ANewData : Integer ) ; tulajdonság Adatok : Integer olvasás GetData írás SetData ; vége ; függvény TFoo . GetData : Integer ; begin Eredmény := FData ; vége ; eljárás TFoo . SetData ( const ANewData : Integer ) ; begin FData := ANewData ; vége ;

Ebben a példában a rejtett mezőhöz való hozzáférés a ( setter ) és a ( getter ) metódusokonFData keresztül érhető el. SetDataGetData

Ruby

class Foo attr_accessor :bar # Rubin szintaktikai cukor automatikusan # létrehoz egy gettert és settert a sáv változó végéhez foo = . új foo . bar = 42 # call foo.bar=(42) (beállító) foo . bar # call foo.bar (getter)

Javascript

var Foo = function ( bar ) { this . bár = bár _ }; . prototípus = { get bar () { konzol . log ( 'bar getter' ); ezt visszaküldeni . _bar ; }, set bar ( bar ) { console . log ( 'rúdfelállító' ); ezt . _bar = bár ; } }; var foo = new Foo ( 15 ); . bár = 123 ; // bár beállító konzol . log ( foo . bar ); // bar getter, 123

PHP

A PHP nem rendelkezik közvetlen mechanizmussal a getterek használatára, ezért ezek a „magic” __get() metóduson keresztül valósulnak meg

<?php class Foo { private $data ; public function __get ( $name ) { $method = 'get' . ucfirst ( $név ); if ( metódus_létezik ( $this , $method )) { return $this -> $method (); } } public function getData () { return $this -> data ; } }

C#

A C# nyelvben a gettereket és a settereket a tulajdonságmechanizmusban használják . A getter a get kulcsszónak, a setter a halmaznak felel meg. A 3-as verzió egy automatikus gettert vezetett be.

class Foo { private int id ; privát karakterláncnév ; _ public int ID { get { return id ; } } public string Név { get { return name ; } set { this . név = érték ; } } public string SomeProperty { get ; készlet ; } }

VB.NET

A VB.NET-ben getter létrehozásához meg kell adni az ReadOnly módosítót, ha nem használ settert. A VB 10.0 óta megjelentek az automatikusan implementált tulajdonságok, vagyis nem kell tulajdonság implementációt írni, elég egy deklaráció.

Public Class Foo Private m_Data As Integer 'Privát mező adatokkal A nyilvános tulajdonra vonatkozó üzenet egész számként „Automatikusan megvalósított tulajdonság a VB 10.0 óta Nyilvános csak olvasható tulajdonságadatok egész számként ' Csak olvasható nyilvános tulajdon Get Return m_Data End Get End Tulajdonság végosztály

Python

A Pythonban az osztálybeállító és -beállító a @property dekorátor segítségével készíthető, a __ karakterrel kezdődő attribútumok csak az objektumon belül vannak megjelölve elérhetőként.

Foo osztály : def __init__ ( self , data = None ): self . __adat = adatok @property def data ( self ): return self . __adat @adat . setter def data ( self , value ): self . __data = érték

Lásd még

Jegyzetek