Jump to content

Member variable

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by InverseHypercube (talk | contribs) at 19:40, 2 December 2019 (added Category:Articles with example Python code using HotCat). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In object-oriented programming, a member variable (sometimes called a member field) is a variable that is associated with a specific object, and accessible for all its methods (member functions). In class-based languages, these are distinguished into two types: if there is only one copy of the variable shared with all instances of the class, it is called a class variable or static member variable; while if each instance of the class has its own copy of the variable, the variable is called an instance variable.[1]

Examples

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(object):
    @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)

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

See also

References

  1. ^ Richard G. Baldwin (1999-03-10). "Q - What is a member variable?". http://www.dickbaldwin.com/: Richard G Baldwin Programming Tutorials. Retrieved 2011-08-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. {{cite web}}: External link in |location= (help)