Właściwość (informatyka)

Właściwość klasy (ang. class property) – specjalny składnik klas w niektórych obiektowych językach programowania, posiadający cechy pola i metody. Właściwości są odczytywane i zapisywane tak jak pola, ale ich odczytywanie i zapisywanie zazwyczaj przebiega poprzez wywołanie metod. Łatwiej jest czytać i zapisywać pola, niż wywoływać metody, jednak wstawienie poprzez wywołanie metody pozwala sprawdzić poprawność danych, aktywować kod aktualizacji (np. wygląd elementów GUI). Oznacza to, że właściwości mają cechy pośrednie pomiędzy ciągiem instrukcji (metoda) a danymi (pole) klasy i zapewniają wyższy poziom hermetyzacji niż publiczne pola.

Języki programowania używające właściwości

Języki programowania, które zapewniają wsparcie dla właściwości to: Object Pascal (Delphi/Free Pascal), Visual Basic, C#, D, F#, Objective-C 2.0, JavaScript, Swift, Python i Vala. W tych językach właściwości związane są z obecnością w klasie pary metod dostępowych: odczytującą (ang. getter) i zapisującą (ang. setter). Metody dostępowe są na ogół prywatne (ang. private) lub chronione (ang. protected). Jest tak na przykład w językach: C# i Object Pascal. W innych metody te są publiczne (np. Python, ponieważ ten język nie wspiera hermetyzacji). Pominięcie metody zapisującej czyni właściwość tylko do odczytu. Pominięcie metody odczytującej czyni właściwość tylko do zapisu. Właściwości tylko do zapisu są rzadkością z uwagi na ich małą użyteczność. Możliwe są również przypadki, gdy właściwości nie odpowiada żadne pole w klasie, a odczytywana wartość jest uzyskiwana jako wynik działania metody odczytującej (np. jako wynik obliczeń). Właściwości mogą być typu prostego (np. liczba całkowita, liczba rzeczywista, ciąg znaków, wartość boolowska) lub złożonego (np. tablica, struktura, obiekt). Właściwości tablicowe wymagają podania numeru komórki (indeksu), który jest przekazywany jako jeden z argumentów metody dostępowej (odczytującej lub zapisującej).

Niektóre języki obiektowe, takie jak Java, nie obsługują właściwości, co wymaga od programisty bezpośredniego posługiwania się metodami dostępowymi: odczytującą i zapisującą.

Przykładowy kod w języku Object Pascal

type
  TPen = class
  private
    FColor: Integer;
    FWidth: Integer;
    function GetColor: Integer;
    procedure SetColor(Value: Integer);
    procedure SetWidth(Value: Integer);
  public
    property Color: Integer read GetColor write SetColor;
    property Width: Integer read FWidth write SetWidth;
end;

function TPen.GetColor: Integer;
begin
  Result := FColor;
end;

procedure TPen.SetColor(Value: Integer);
begin
  if FColor <> Value
   then FColor := Value;
end;

procedure TPen.SetWidth(Value: Integer);
begin
  if Value > 2
   then FWidth := Value
   else FWidth := 3;
end;
// zastosowanie
var Pen: TPen;
// ...
Pen.Color := not Pen.Color;
Pen.Width := 10;
// ...

Przykładowy kod w języku C#

Składnia właściwości klasy wygląda następująco:

<modyfikator_dostepu> <typ> nazwa
{
  get
  {
    // implementacja
  }
  set
  {
    // implementacja
  }
}
using System;

class Person
{
  private string lastname;
  private string firstname;

  public string Lastname
  {
    get
    {
      return lastname;
    }
    set
    {
      this.lastname = value; // słowo kluczowe value jest używane w odniesieniu do wartości przekazanej do set
    }
  }

  public string Firstname
  {
    get
    {
      return firstname;
    }
    set
    {
      this.firstname = value;
    }
  }
}

class Program
{
  public static void Main(string[] args)
  {
    Person person = new Person();

    // ustawiamy wartości prywatnych pól klasy przy użyciu właściwości
    person.Lastname = "Kowalski";
    person.Firstname = "Jan";

    Console.WriteLine("Nazywam się " + person.Firstname + " " + person.Lastname); // pobieramy wartość prywatnych pól klasy za pomocą właściwości
  }
}

Read other articles:

CotidianulTipeHarianFormatBerlinerPemilikAcademia Caţavencu, melalui Realitatea-CaţavencuRedaksiDoru BuşcuDidirikan1927didirikan kembali tahun 1991diluncurkan kembali tahun 2003PusatBucharest, RumaniaSitus webcotidianul.ro Logo lama suratkabar Cotidianul, digunakan pada periode antar-perang, dan pada awal 1990-an Logo yang digunakan antara 2003 dan 2007 Cotidianul merupakan sebuah suratkabar Rumania, diterbitkan Senin hingga Sabtu dalam format Berliner. Didirikan oleh Ion Raţiu, penerbita...

 

Kastel Scarborough Bagian dari North Yorkshire Scarborough, Inggris Koordinat 54°17′13″N 0°23′17″W / 54.287°N 0.388°W / 54.287; -0.388Koordinat: 54°17′13″N 0°23′17″W / 54.287°N 0.388°W / 54.287; -0.388 Dibangun Abad ke-12 Pembangun William le Gros Bahanbangunan Batu kapur Batu pasir Tinggi 49 kaki (15 m) Digunakan Akses publik Kondisisaat ini Reruntuhan Pemiliksaat ini The Crown Pengawas English Heritage Peristiwa P...

 

Wayang kulit dilihat pada sisi bayangannya. Batik Budaya Jawa adalah budaya yang berasal dari masyarakat pulau Jawa dan dianut oleh masyarakat Jawa khususnya di Banten Utara, Jawa Barat Utara, Jawa Tengah, Yogyakarta, dan Jawa Timur. Budaya Jawa secara garis besar dapat dibagi menjadi 3 yaitu budaya Jawa Kulonan (Banten Utara-Jawa Barat Utara-Jawa Tengah Barat), budaya Jawa Tengah(Timur)-DIY, dan budaya Jawa Timur. Budaya Jawa mengutamakan keseimbangan, keselarasan dan keserasian dalam kehidu...

كلينتوندال     الإحداثيات 41°41′40″N 74°02′48″W / 41.694548°N 74.046639°W / 41.694548; -74.046639   [1] تقسيم إداري  البلد الولايات المتحدة[2]  خصائص جغرافية  المساحة 14.534144 كيلومتر مربع14.534136 كيلومتر مربع (1 أبريل 2010)[3]  ارتفاع 166 متر  عدد السكان  عدد السكا�...

 

Kamar Merah (赤い部屋code: ja is deprecated , Akai heya) adalah urban legend interaktif, yang seluruhnya ber bahasa Jepang, tentang suatu legenda urban yang disebut Kamar Merah. Video ini menceritakan seorang pemuda yang menjelajahi internet untuk membuktikan keberadaan legenda tersebut, tetapi usahanya berakibat fatal. Video ini dapat dianggap sebagai gurauan sebab bila keadaan memungkinkan maka ada kejutan yang muncul setelah video tersebut berakhir. Video ini menjadi terkenal setelah d...

 

Oil painting by Pablo Picasso For other uses, see Weeping Woman. The Weeping WomanArtistPablo PicassoYear1937MediumOil on canvasMovementSurrealismDimensions61 cm × 50 cm (23 15/60 in × 19 11/16 in)LocationTate Modern, London The Weeping Woman (French: La Femme qui pleure[1]) is a series of oil on canvas[2] paintings by Pablo Picasso, the last of which was created in late 1937. The paintings depict Dora Maar, Picasso's mistress and mu...

Economic activity unregulated by government Black market sellers offer watches for sale to US soldiers in Baghdad in 2004. Economic sectors Three-sector model Primary sector (raw materials) Secondary sector (manufacturing) Tertiary sector (services) Additional sectors Quaternary sector (information services) Quinary sector (human services) Theorists AGB Fisher Colin Clark Jean Fourastié Sectors by ownership Business sector Private sector Public sector Voluntary sector vte Grey market Types A...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: 1852 United States presidential election in Wisconsin – news · newspapers · books · scholar · JSTOR (September 2023) (Learn how and when to remove this message) Main article: 1852 United States presidential election 1852 United States presidential election in ...

 

Administrative division of Nazi Germany Gau EssenGau of Nazi Germany1928–1945 Flag Coat of arms Gau Essen on the left, bordering The NetherlandsCapitalEssenArea • 1,900 km2 (730 sq mi)Population •  2,800,000 GovernmentGauleiter • 1928–1945 Josef Terboven History • Established 1 August 1928• German Instrument of Surrender 8 May 1945 Preceded by Succeeded by Rhine Province North Rhine-Westphalia Today part ofGermany T...

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: コルク – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年4月) コルクを打ち抜いて作った瓶の栓 コルク(木栓、�...

 

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

 

شجر الأركان نواحي مدينة الصويرة بالمغرب ماعز فوق شجر الأركان بالصويرة نوى ثمار شجرة الاركان بعد ازالة القشور الرطبة. (نوى جمع نواة ) . لوز الاركان بعد الاستخراج من النوى الصلبة زيت الأركان «الذهب السائل»، زيت يستخرج من لوز شجر الأركان وهو شجر نادر يتواجد بشكل كبير جدا في الم...

Football league in Belgium Football leagueBelgian Pro LeagueFounded1895; 129 years ago (1895)CountryBelgiumConfederationUEFANumber of teams16Level on pyramid1Relegation toChallenger Pro LeagueDomestic cup(s)Belgian Cup Belgian Super CupInternational cup(s)UEFA Champions LeagueUEFA Europa LeagueUEFA Conference LeagueCurrent championsClub Brugge (19th title) (2023–24)Most championshipsAnderlecht (34 titles)Most appearancesJan Ceulemans (517)Top goalscorerAlbert De Cleyn (377...

 

Bavarian breechloading rifle M1858/67, Lindner-Braun conversion. The Podewils rifle-musket was a 13.9mm calibre rifle used in the Bavarian army since 1858.[1] It was the most common infantry weapon of the Bavarian army in the Austro-Prussian war of 1866[2] and the Franco-Prussian war of 1870/71.[1] Theodor Fontane called it an excellent weapon of the Austro-Prussian war due to its long range.[2] Originally a muzzleloader, it was converted to breechloading in 18...

 

Asociación de Fútbol Potosí Datos generalesAcrónimo AFPDeporte FútbolFundación 11 de julio de 1924 (99 años)Afiliación Asociación Nacional de Fútbol Federación Boliviana de FútbolPresidente Edwin Callapino[editar datos en Wikidata] La Asociación de Fútbol Potosí, también conocida por su siglas AFP, es el organismo central rector del fútbol en Potosí. Se encuentra afiliada a la Asociación Nacional de Fútbol como una de las 9 ligas que integran el sistema de c...

Opel CorsaOpel Corsa FInformasiProdusenOpelMasa produksi1982-sekarangBodi & rangkaBentuk kerangka5-pintu sedan Opel Corsa merupakan kendaraan sedan yang diproduksi oleh perusahaan Jerman, Opel sejak tahun 1982 untuk pasaran Eropa. Opel Corsa pertama kali diluncurkan tahun 1982 dengan kendaraan 5 pintu. Mobil ini dirakit di Zaragoza, Spanyol dan Eisenach, Jerman. Pranala luar Wikimedia Commons memiliki media mengenai Opel Corsa. Wikimedia Commons memiliki media mengenai Vauxhall Nova....

 

English mineralogist and geologist (1775 – 1828) William Phillips William Phillips FGS FRS (10 May 1775 – 2 April 1828) was an English mineralogist and geologist. Biography Phillips was the son of James Phillips, printer and bookseller in London. He became interested in mineralogy and geology and was one of the founders of the Geological Society of London (1807). The foundation of the Geological society came about through a series of business meetings, some held in Phillips' ...

 

2014 Taiwanese television series Pleasantly Surprised'Promotional posterAlso known asLove Myself or YouLove Met Cupid 愛情遇見邱比特喜歡·一個人GenreRomance, ComedyCreated bySanlih E-TelevisionWritten byDu Xin Yi 杜欣怡Wang Yu Qi 王玉琪Directed byLin Hong Jie 林宏杰 (Ep. 1 - 11)Ye Hong Wei 葉鴻偉 (Ep. 12 - 22)StarringPuff Guo Jasper LiuLene Lai Jolin ChienOpening themeNobody And Princess 小人物大公主 by Ian ChenEnding themeI'll Always Be Here 隨時都在 by Vict...

Surangel Whipps Jr. Presiden Palau ke-10PetahanaMulai menjabat 21 Januari 2021Wakil PresidenUduch Sengebau SeniorPendahuluThomas Remengesau Jr.PenggantiPetahanaSenat PalauMasa jabatan2008–2016 Informasi pribadiLahir9 Agustus 1968 (umur 56)Baltimore, Maryland, Amerika SerikatPartai politikIndependen Sunting kotak info • L • B Surangel S. Whipps Jr. (lahir 9 Agustus 1968)[1] adalah seorang pengusaha dan politikus Palau, yang menjabat sebagai Presiden Palau s...

 

Complex calcium silicate hydrate mineral ThaumasiteThaumasite (white) with prehnite (green) from Fairfax Quarry, VirginiaGeneralCategorySulfate mineralsFormula(repeating unit)Ca3Si(OH)6(CO3)(SO4)·12H2O CaSi(OH)6·CaCO3·CaSO4·12H2O CaSiO3·CaCO3·CaSO4·15H2OIMA symbolTma[1]Strunz classification7.DG.15Crystal systemHexagonalCrystal classPyramidal (6) H-M symbol: (6)Space groupP63Unit cella = 11.030(7), c = 10.396(6) [Å]; Z = 2IdentificationFormula mass622.62 g/molCol...