Jump to content
Wikipedia The Free Encyclopedia

Member variable

From Wikipedia, the free encyclopedia
Variable associated with a specific object, and accessible for all its methods

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 programming languages, these are distinguished into two types: class variables (also called static member variables), where only one copy of the variable is shared with all instances of the class; and instance variables , where each instance of the class has its own independent copy of the variable.[1]

Examples

[edit ]

C++

[edit ]
classFoo{
intbar;// Member variable
public:
voidsetBar(constintnewBar){
bar=newBar;
}
};
intmain(){
Foorect;// Local variable
return0;
}

Java

[edit ]
publicclass Program
{
publicstaticvoidmain(String[]args)
{
// This is a local variable. Its lifespan
// is determined by lexical scope.
Foofoo;
}
}
publicclass 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
 */
intbar;
}

Python

[edit ]
classFoo:
 def__init__(self):
 self._bar = 0
 @property
 defbar(self):
 return self._bar
 @bar.setter
 defbar(self, new_bar):
 self._bar = new_bar
f = Foo()
f.bar = 100
print(f.bar)

Common Lisp

[edit ]
(defclassfoo()(bar))

(defvarf(make-instance'foo))
(setf(slot-valuef'bar)100)
(print(slot-valuef'bar))

Ruby

[edit ]
/*
 Ruby has three member variable types: class, class instance, and instance.
*/
classDog
# 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
classPoodle<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
definitialize(trained=false)
@trained=trained
end
defhas_manners?
@trained
end
end
p=Poodle.new
p.class.sheds#=> false
p.has_manners?#=> false

PHP

[edit ]
<?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

[edit ]
--region example
--- @class example_c
--- @field foo number Example "member variable".
localexample_c={}
localexample_mt={__index=example_c}
--- Creates an object from example.
--- @return example_c
functionexample_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.
returnsetmetatable({
foo=foo
},example_mt)
end
--endregion
-- Create an example object.
-- Set the "foo" member variable to 5.
localexample=example_c.new(5)
-- Overwrite the "foo" member variable to 10.
example.foo=10
-- Prints 10.
print(example.foo)

See also

[edit ]

References

[edit ]
  1. ^ Richard G. Baldwin (1999年03月10日). "Q - What is a member variable?". 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.

AltStyle によって変換されたページ (->オリジナル) /