In class-based, object-oriented programming, an instance variable is a variable defined in a class, for which each instantiated object of the class has a separate copy, or instance. An instance variable has similarities with a class variable, but is non-static. In C++ or Java language, an instance variable is a variable which is declared in a class but outside of constructors, methods, or blocks. Instance variables are created when an object is instantiated, and are accessible to all the constructors, methods, or blocks in the class. Access modifiers can be given to the instance variable.