成员变量

面向对象程序设计中,成员变量(有时称为成员字段)是与特定对象相关联的变量,并且特定对象的所有方法(成员函数)均能访问該變量。[1]

例子

C++

class Foo {
    int bar; // Member variable
  public:
    void setBar(const int newBar) { 
      bar = newBar;
    }
};

int main () {
  Foo rect; // Local variable

  return 0;
}

Java

public class Program
{
    public static void main(String[] args)
    {
    	// This is a local variable. Its lifespan
    	// is determined by lexical scope.
    	Foo foo;
    }
}

public class Foo
{
    /* This is a member variable - a new instance
     of this variable will be created for each 
     new instance of Foo.  The lifespan of this
     variable is equal to the lifespan of "this"
     instance of Foo
    */

    int bar;
}

Python

class Foo:
    def __init__(self):
        self._bar = 0

    @property
    def bar(self):
        return self._bar

    @bar.setter
    def bar(self, new_bar):
        self._bar = new_bar


f = Foo()
f.bar = 100
print(f.bar)

Common Lisp

(defclass foo () (bar))                                                         
                                                                                
(defvar f (make-instance 'foo))                                                 
(setf (slot-value f 'bar) 100)
(print (slot-value f 'bar))

Ruby

/*
  Ruby has three member variable types: class, class instance, and instance.
*/

class Dog

  # The class variable is defined within the class body with two at-signs
  # and describes data about all Dogs *and* their derived Dog breeds (if any)
  @@sniffs = true

end

mutt = Dog.new
mutt.class.sniffs #=> true

class Poodle < Dog

  # The "class instance variable" is defined within the class body with a single at-sign
  # and describes data about only the Poodle class. It makes no claim about its parent class
  # or any possible subclass derived from Poodle
  @sheds = false

  # When a new Poodle instance is created, by default it is untrained. The 'trained' variable
  # is local to the initialize method and is used to set the instance variable @trained
  # An instance variable is defined within an instance method and is a member of the Poodle instance
  def initialize(trained = false)
    @trained = trained
  end

  def has_manners?
    @trained
  end

end

p = Poodle.new
p.class.sheds #=> false
p.has_manners? #=> false

PHP

<?php

class Example
{
    /**
     * Example instance member variable.
     *
     * Member variables may be public, protected or private.
     *
     * @var int
     */
    public int $foo;
    
    /**
     * Example static member variable.
     *
     * @var bool
     */
    protected static int $bar;
    
    /**
     * Example constructor method.
     *
     * @param int $foo
     */
    public function __construct(int $foo)
    {
        // Sets foo.
        $this->foo = $foo;
    }
}

// Create a new Example object.
// Set the "foo" member variable to 5.
$example = new Example(5);

// Overwrite the "foo" member variable to 10.
$example->foo = 10;

// Prints 10.
echo $example->foo;

Lua

--region example
--- @class example_c
--- @field foo number Example "member variable".
local example_c = {}
local example_mt = {__index = example_c}

--- Creates an object from example.
--- @return example_c
function example_c.new(foo)
  -- The first table argument is our object's member variables.
  -- In a Lua object is a metatable and its member variables are table key-value pairs.
  return setmetatable({
    foo = foo
  }, example_mt)
end
--endregion

-- Create an example object.
-- Set the "foo" member variable to 5.
local example = example_c.new(5)

-- Overwrite the "foo" member variable to 10.
example.foo = 10

-- Prints 10.
print(example.foo)

参考文献

  1. ^ Richard G. Baldwin. Q - What is a member variable?. Richard G Baldwin Programming Tutorials. 1999-03-10 [2011-08-12]. (原始内容存档于2022-04-12). A member variable is a member of a class (class variable) or a member of an object instantiated from that class (instance variable). It must be declared within a class, but not within the body of a method of the class. 

Read other articles:

Taman Warisan Nasional Istana DamingGerbang Danfeng yang dibangun kembali dari Istana DamingDidirikan1 Oktober 2010LokasiXi'an, ChinaJenisSitus arkeologi dan museum sejarah Istana Daming Istana Daming di timur laut ibukota Chang'an Hanzi sederhana: 大明宫 Hanzi tradisional: 大明宮 Makna harfiah: Istana Brilian Agung[1] Alih aksara Mandarin - Hanyu Pinyin: Dàmíng Gōng Taman Warisan Nasional Istana Daming Hanzi sederhana: 大明宫国家遗址公园 Hanzi tradisional: 大明宮...

 

Ne doit pas être confondu avec Guerre civile algérienne. Guerre d'Algérie (ar) حرب الجزائر Informations générales Date 1er novembre 1954 – 5 juillet 1962[2](7 ans, 8 mois et 4 jours) Lieu AlgérieFrance Casus belli Décolonisation et guerre d'indépendance Issue Accords d'Évian Cessez-le-feu Référendum d'autodétermination Indépendance de l'Algérie Exode des pieds-noirs Changements territoriaux Fin de l'Algérie française : perte par la France des d...

 

العلاقات الأفغانية العراقية أفغانستان العراق   أفغانستان   العراق تعديل مصدري - تعديل   العلاقات الأفغانية العراقية هي العلاقات الثنائية التي تجمع بين أفغانستان والعراق.[1][2][3][4][5] وفي أيلول سنة 1934 أُبرمت معاهدة الوُد والصداقة الدائمة بين ...

Liga 3 Jawa TimurMusim2018JuaraPersiga Trenggalek← 2017 2019 → Seluruh statistik akurat per 5 April 2019. Liga 3 Zona Jawa Timur adalah Kompetisi kasta ke 3 Liga Indonesia yang di jalankan oleh Asosiasi Provinsi (Asprov) PSSI Jawa Timur sebagai babak kualifikasi untuk putaran nasional dari Liga 3. Liga 3 Zona Jawa Timur diikuti oleh 49 klub yang terbagi menjadi 7 Grup. Tim peserta Berikut adalah peserta liga 3 zona Jawa Timur pada kompetisi tahun 2018[1] Grup 1 Banyuwangi Putra Si...

 

Voce principale: Coppa delle Coppe 1997-1998. Finale della Coppa delle Coppe 1997-1998Lo stadio Råsunda teatro della finaleInformazioni generaliSport Calcio CompetizioneCoppa delle Coppe 1997-1998 Data13 maggio 1998 ImpiantoRåsundastadion Spettatori30 216 Dettagli dell'incontro  Chelsea  Stoccarda 1 0 Arbitro Stefano Braschi MVP Gianfranco Zola Successione ← Finale della Coppa delle Coppe 1996-1997 Finale della Coppa delle Coppe 1998-1999 → Modifica dat...

 

20 lireValore2 ITL Massa1,7 g Diametro23,3 mm ComposizioneBronzital Anni di coniazione1861–2001(quella descritta: 1957–2001) Dritto DisegnoTesta di donna coronata di spighe circondata dalla scritta repvbblica italiana, in esergo l'autore giampaoli Rovescio DisegnoValore L• 20 a sinistra del ramo di quercia, in basso l'anno e il marchio di zecca r ContornoAspettoLiscio(fino al 1968 rigato) Manuale Le 20 lire sono una moneta della lira italiana coniata dalla fondazione del Regno...

Chemical compound Not to be confused with Ethinylestradiol or Ethylestrenol. EthylestradiolClinical dataOther names17α-Ethylestradiol; 17α-Ethylestra-1,3,5(10)-triene-3,17β-diolDrug classEstrogenIdentifiers IUPAC name (8R,9S,13S,14S,17S)-17-Ethyl-13-methyl-7,8,9,11,12,14,15,16-octahydro-6H-cyclopenta[a]phenanthrene-3,17-diol CAS Number2553-34-6 YPubChem CID66428UNIIJL3XDL8DYLChEMBLChEMBL1627625CompTox Dashboard (EPA)DTXSID10948429 Chemical and physical dataFormulaC20H28O2Molar mass300...

 

Tamil vegetable side dish 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: Kuzhambu – news · newspapers · books · scholar · JSTOR (September 2023) (Learn how and when to remove this message) KuzhambuEnnai kathirikkai kuzhambu (Stuffed eggplant kuzhambu)Place of originTamil Nadu, IndiaRegion or stateSouth Indi...

 

Brian Keith nel film Dino (1957) Robert Brian Keith Jr. (Bayonne, 14 novembre 1921 – Malibù, 24 giugno 1997) è stato un attore statunitense. Nella sua carriera, che durò fino alla fine degli anni novanta, passò dai film western a quelli di Disney, lavorando anche in televisione dove si distinse in particolare per il ruolo di Bill Davis, zio di Buffy, Jody e Cissy nella serie televisiva Tre nipoti e un maggiordomo (1966-1971).[1] Indice 1 Biografia 1.1 La carriera 1.2 Vita privat...

Азиатский барсук Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:СинапсидыКласс:Мле�...

 

Canadian-American economist For other people named Michael Spence, see Michael Spence (disambiguation). Michael SpenceSpence in 2008Born (1943-11-07) November 7, 1943 (age 80)[2]Montclair, New Jersey, USAcademic careerInstitutionHarvard UniversityStanford UniversitySDA Bocconi School of ManagementNew York UniversityFieldMicroeconomics, labor economicsAlma materHarvard University, (Ph.D.)University of Oxford, (B.A.)Princeton University, (B.A.)DoctoraladvisorKenneth Arrow[...

 

土库曼斯坦总统土库曼斯坦国徽土库曼斯坦总统旗現任谢尔达尔·别尔德穆哈梅多夫自2022年3月19日官邸阿什哈巴德总统府(Oguzkhan Presidential Palace)機關所在地阿什哈巴德任命者直接选举任期7年,可连选连任首任萨帕尔穆拉特·尼亚佐夫设立1991年10月27日 土库曼斯坦土库曼斯坦政府与政治 国家政府 土库曼斯坦宪法 国旗 国徽 国歌 立法機關(英语:National Council of Turkmenistan) ...

For other places with the same name, see Milwaukee Road Depot. This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (November 2014) (Learn how and when to remove this message) Green BayFormer Milwaukee Road passenger rail stationGreen Bay station in July 2012.General informationLocation400 South Washington Street, Green Bay, ...

 

Hat manufacturer in Stockport, England Battersby's Hat Works as it appeared in 2009. Battersby Hats was the trading name of Battersby & Co, a hat manufacturer of Stockport, England. The firm once had a capacity of 12,000 hats per week but it declined in the second half of the twentieth century and merged with other hat manufacturers in 1966 before hat production ceased altogether in 1997. History Battersby's Hat Factory in Offerton, Stockport, first appeared on Ordnance Survey maps in 189...

 

TahuriTahuri Alat Musik Khas Tradisional Kepulauan MalukuAlat musik lainNama lainTerompet KerangKlasifikasi Alat musik tiup (sebuah kerang yang jika ditiup bunyinya akan terdengar nyaring.)PenciptaG.J. LatumahinaDominggus Paulus HorhorouwDikembangkansekitar tahun 1962 di Ambon, MalukuAlat musik terkait Tahuri adalah terompet yang dikenal oleh masyarakat Maluku yang tinggal di pesisir pantai memiliki peralatan musik yang unik; sebuah kerang yang jika ditiup bunyinya akan terdengar nyaring. Sem...

British politician (1911–1982) John Hare (politician) and Lord Blakenham redirect here. For other politicians with similar names, see John Hare. For the title and other holders, see Viscount Blakenham. The Right HonourableThe Viscount BlakenhamOBE PC DLChairman of the Conservative PartyIn office20 October 1963 – 28 July 1965LeaderAlec Douglas-HomePreceded byIain MacleodSucceeded byEdward du CannDeputy Leader of the House of LordsIn officeOctober 1963 – October 1964Mona...

 

Tibetan kingdom from 1642-1717 Khoshut Khanateᠬᠣᠱᠤᠳ ᠤᠯᠤᠰ和碩特汗國1642–1717Location of the Khoshut Khanate among Mongol tribesStatusNomadic empireReligion Tibetan BuddhismGovernmentMonarchyHistory • Established 1642• Disestablished 1717 Preceded by Succeeded by Tsangpa Dzungar Khanate Today part ofChina The Khoshut Khanate was a Mongol Oirat khanate based in the Tibetan Plateau from 1642 to 1717. Based in modern Qinghai, it was founded by Güshi Kha...

 

New Deal-era public art See also: List of United States post office murals Progress of Industry (1934) by Charles W. Ward, at the Clarkson S. Fisher Federal Building and United States Courthouse in Trenton, New Jersey United States post office murals are notable examples of New Deal art produced during the years 1934–1943. They were commissioned through a competitive process by the United States Department of the Treasury. Some 1,400 murals were created for federal post office buildings in ...

العلاقات البوروندية الوسط أفريقية بوروندي جمهورية أفريقيا الوسطى   بوروندي   جمهورية أفريقيا الوسطى تعديل مصدري - تعديل   العلاقات البوروندية الوسط أفريقية هي العلاقات الثنائية التي تجمع بين بوروندي وجمهورية أفريقيا الوسطى.[1][2][3][4][5] مقا...

 

Igneous rock which sometimes contains diamonds KimberliteIgneous rockKimberlite from the United StatesCompositionForsteritic olivine and carbonate minerals, with trace amounts of magnesian ilmenite, chromium pyrope, almandine-pyrope, chromium diopside, phlogopite, enstatite and titanium-poor chromite. Sometimes contains diamonds. False-color scanning electron microscope image of kimberlite from South Africa. Olivine crystals (green) are in a fine-grained matrix made up of clay minerals and ca...