实例变量和类变量的区别

类体的定义包括成员变量的定义和方法的定义,并且成员变量又分为实例变量和类变量,用 static 修饰的变量是类变量.那么类变量和实例变量有什么区别呢

我们已经知道 一个类通过使用 new 运算符可以创建多个不同的对象,这些对象将被分配不同的内存空间,现在再说得准确些就是 不同的对象的实例变量将被分配不同的内存空间,如果类中的成员变量有类变量,那么所有的对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量.也就是说对象共享类变量.

class Takecare

{ static int x;

int y;

… … .

}

class A

{ Takecare A1=new Takecare();

Takecare A2=new Takecare();

}

A1.x=18 

原文地址:https://www.cnblogs.com/TianYE0124/p/12289697.html

时间: 2024-11-24 15:59:59

实例变量和类变量的区别的相关文章

JAVA类与对象---实例变量与类变量的区别,实例方法和类方法的区别

实例变量 实例变量声明在一个类中,但在方法.构造方法和语句块之外: 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被一个方法.构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息: 实例变量对于类中的方法.构造方法或者语句块是可见的.一般情况下应该把实例变量设为私有.通过使用访问修饰符可以使实例变量对子类可见 实例变量具有默认值.数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默

JAVA类与对象(六)------实例变量与类变量的区别,实例方法和类方法的区别

实例变量 实例变量声明在一个类中,但在方法.构造方法和语句块之外: 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被一个方法.构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息: 实例变量对于类中的方法.构造方法或者语句块是可见的.一般情况下应该把实例变量设为私有.通过使用访问修饰符可以使实例变量对子类可见: 实例变量具有默认值.数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的

Java 局部变量、实例变量、类变量(静态变量)区别

1. 局部变量: 局部变量是类的方法中的变量: 2. 实例变量: 实例变量也是类中独立于方法之外的变量,不过没有static修饰,也叫 对象变量 3. 类变量(静态变量): 类变量是类中独立于方法之外的变量,用static 修饰,也叫 静态变量 4. 伪代码说明 public class Variable{ static int allClicks=0;//类变量 String str="hello world";//实例变量 public void method(){ int i =

ruby中实例变量、类变量等等的区别和联系

ruby的变量有局部变量,全局变量,实例变量,类变量,常量. 1.局部变量 局部变量以一个小写字母开头或下划线开头 局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声明所在的块.方法定义.类/模块定义的结尾.大家在写代码时经常这样写: irb(main):001:0> i=123    ---------- 这里的i就是局部变量 =>123 irb(main):002:0> s="hi"   ---------- 这里的s就是局部变量

成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别

简单来说:类体的定义包括成员变量的定义和方法的定义. 1.成员变量包括实例变量和类变量:而成员方法包括实例方法.类方法,当然还有一种特殊的构造方法.  2.类变量.类方法就是类中的变量.方法,必须是静态的,要加static:故其又称静态变量 .静态方法.3.成员变量.成员方法是对象或实例中的变量.方法,不加static:  类变量:静态域,静态字段,或叫静态变量,它属于该类所有实例共有的属性,在内存中只有一个地方存储这个变量.而且所有的实例都可以修改这个类变量的值(前提是这个类变量没 有被fin

ruby中的实例变量和类变量

定义很简单:实例变量@开头,类变量@@开头 看了一些文章和书,目前了解到的(其实还是不太懂,先记着吧,错了再改): 类变量:可以在类方法和类实例方法中访问,也能被子类继承,并且子类修改之后,父类的值也会更改. 不同的子类都共享这个一个数值,包括子类的实例,都可以来修改这一个值.就理解成:不管自己还是子类的,什么函数都可以访问,也都可以改,改了之后也是大家共享. 实例变量:能被类方法访问,不能被继承,子类中赋值不会影响父类. 子类如果修改了,其实是不是重新定义了一下又赋了新的值? 这个其实更像应该

Objective-C 实例变量与属性的区别

记得刚学习OC时,对实例变量和属性总是不太清楚. 比如下面代码中在打印Person类对象的名字时,什么时候用带“_”的name,NSLog(@"%@",p1->_name); 什么时候用不带“_”的name,NSLog(@"%@",p1.name); 现在回想起来也是挺有意思的过往,写下自己曾经的迷惘,纪念一下青春?.... 首先,使用实例变量编写代码.以及实例变量赋值要用到getter.setter方法. @interface Person : NSObje

类,对象 ,封装,实例变量,类变量,继承,多态

类:对一类事物的抽象.例如:人 ,狗,猫,鸟...这样是一大类的概括.讲人,可以指很多人,狗也可以分很多种狗 对象:具体的某个类的实例.就想 张三-->指的就是人这个类下面的具体的某一个实例.泰迪 就是狗这个类下面的某个实例 面向对象的三个特性: 封装:就是将属性给封装起来,这个是你特有性质,你可以让外界知道,也可以不让外界知道 例如: # Author:zylong class Person: #人都有性别,姓名,身高,体重 def __init__(self,name,sex,heigh,w

成员变量(实例变量)&局部变量&静态变量(类变量)的区别

成员变量(实例变量)&局部变量区别: (1)作用域 成员变量:针对整个类有效. 局部变量:只在某个范围内有效.(一般指的就是方法,语句体内) (2)存储位置 成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中. 局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中. 当方法调用完,或者语句结束后,就自动释放. (3)初始值 成员变量:有默认初始值. 局部变量:没有默认初始值,使用前必须赋值. 成员变量(实例变量)&静态变量(类变量)区别: A:调用方式 静态变