Medlemsvariabel

I objektorienterad programmering är en medlemsvariabel (kallas ibland ett medlemsfält ) ) en variabel som är associerad med ett specifikt objekt och tillgänglig för alla dess metoder ( medlemsfunktioner .

I klassbaserade programmeringsspråk särskiljs dessa i två typer: klassvariabler (även kallade statiska medlemsvariabler ), där endast en kopia av variabeln delas med alla instanser av klassen ; och instansvariabler , där varje instans av klassen har sin egen oberoende kopia av variabeln.

Till exempel

C++

  
      
  
         
        
    


   
    

   0
 klass  Foo  {  int  bar  ;  // Medlemsvariabel  public  :  void  setBar  (  const  int  newBar  )  {  bar  =  newBar  ;  }  };  int  main  ()  {  Foo  rect  ;  // Lokal variabel  avkastning  ;  } 

Java

  

        
    
    	
    	
    	 
    


  

    






     
 public  class  Program  {  public  static  void  main  (  String  []  args  )  {  // Detta är en lokal variabel. Dess livslängd   // bestäms av lexikalisk omfattning.  Foo  foo  ;  }  }  public  class  Foo  {  /* Detta är en medlemsvariabel - en ny instans  av denna variabel kommer att skapas för varje  ny instans av Foo. Livslängden för denna   variabel är lika med livslängden för "den här"  instansen av Foo  */  int  bar  ;  } 

Pytonorm

 
     
          0

    
     
         

    
      
          

  
  
 klass  Foo  :  def  __init__  (  själv  ):  själv  .  _bar  =  @property  def  bar  (  self  ):  returnera  själv  .  _bar  @bar  .  setter  def  bar  (  själv  ,  new_bar  ):  själv  .  _bar  =  new_bar  f  =  Foo  ()  f  .  bar  =  100  utskrift  (  f  .  bar  ) 

Vanlig Lisp

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

Rubin





 

  
  
    



  
 

   

  
  
  
    

  
  
  
     
      
  

   
    
  



  
 
  /*  Ruby har tre medlemsvariabeltyper: klass, klassinstans och instans.  */  klass  Hund  # Klassvariabeln definieras inom klasskroppen med två at-tecken  # och beskriver data om alla hundar *och* deras härledda hundraser (om några)  @@sniffs  =  true  end  mutt  =  Hund  .  ny  mutt  .  klass  .  sniffs  #=> true  class  Poodle  <  Dog  # "Klassinstansvariabeln" definieras i klassens kropp med ett enda at-tecken  # och beskriver data om endast pudelklassen. Den gör inga anspråk på sin överordnade klass   # eller någon möjlig underklass härledd från Poodle  @sheds  =  false  # När en ny Poodle-instans skapas är den som standard otränad. Den 'tränade' variabeln   # är lokal för initialiseringsmetoden och används för att ställa in instansvariabeln @trained #  En instansvariabel definieras inom en instansmetod och är medlem av pudelinstansen  def  initialize  (  trained  =  false  )  @trained  =  tränade  slut  def  has_maners?  @  tränad  slutänd  p  =  Pudel  .  ny  s  .  klass  .  skjul  #=> falsk  p  .  har_skick?  #=> falskt 

PHP



 

    






      
    
    




       
    
    




       
    
        
          
    




   


  


  <?php  class  Exempel  {  /**  * Exempel instansmedlemsvariabel.  *  * Medlemsvariabler kan vara offentliga, skyddade eller privata.  *  * @var int  */  public  int  $foo  ;  /**  * Exempel på statisk medlemsvariabel.  *  * @var bool  */  skyddad  statisk  int  $bar  ;  /**  * Exempel på konstruktormetod.  *  * @param int $foo  */  public  function  __construct  (  int  $foo  )  {  // Sätter foo.  $this  ->  foo  =  $foo  ;  }  }  // Skapa ett nytt exempelobjekt.  // Ställ in "foo"-medlemsvariabeln till 5.  $example  =  nytt  Exempel  (  5  );  // Skriv över "foo"-medlemsvariabeln till 10.  $example  ->  foo  =  10  ;  // Skriver ut 10.  echo  $example  ->  foo  ; 

Lua




   
     



 
  
  
   
      
   





   


  


 --regionexempel  --- @class example_c  --- @field foo number Exempel "medlemsvariabel".  local  example_c  =  {}  local  example_mt  =  {  __index  =  example_c  }  --- Skapar ett objekt från exempel.  --- @return exempel_c  funktion  exempel_c  .  new  (  foo  )  -- Det första tabellargumentet är vårt objekts medlemsvariabler.  -- I ett Lua-objekt är en metatabel och dess medlemsvariabler är tabellnyckel-värdepar.  return  setmetatable  ({  foo  =  foo  },  example_mt  )  end  --endregion  -- Skapa ett exempelobjekt.  -- Ställ in "foo"-medlemsvariabeln till 5.  local  example  =  example_c  .  new  (  5  )  -- Skriv över "foo"-medlemsvariabeln till 10.  exempel  .  foo  =  10  -- Skriver ut 10.  print  (  exempel  .  foo  ) 

Se även