JAVA中内变量实例变量;内方法实例方法的异同

来源:百度知道 编辑:UC知道 时间:2024/05/30 13:30:14
JAVA中内变量实例变量;内方法实例方法的异同

你问的类变量和实例变量!还有类方法和实例方法吧!
首先类变量它在字节码文件被加载到内存时,类变量就分配了内存空间!而实例变量不分配内存空间!实例变量要创建一个对象时候才分配到了内存空间,所以不同的对象的实例变量将分配不同的内存空间,而他们能共享该类的类变量,因为所有对象的类变量是相同的一处内存空间!从OOP的解析可以说人有2只腿的事实是静态的每个人都知道的(但是你只有一只腿或者别的情况你可以改变它!但是2支腿是普遍存在事实),但是他的年龄这个属性就因人而异!有的人10岁,有的18岁。
实例方法和类方法在内存分配上与类变量和实例变量类似!而实例方法能调用类的实例变量和类变量,而类方法只能调用类变量,这是因为类创建对象之前,实例变量没分配内存!

只是把记得的说了下,讲的不是很清楚也没办法!

ls是从抽象意义的角度讲的

我从应用角度简单分析一下吧

首先类变量,也就是说static数据成员是一个类所共有的,通过
"类名.变量名" 来调用(在类内部可以直接调用,无需类名)
同一个变量对于类来说是独一无二的,不管你创建多少个对象

而实例变量,也就是说类的数据成员不同,他是保存在实例里的,每个对象都拥有自己同名实例变量,对于private的数据成员,其访问仅限于类自身的的非静态方法,而public的成员在外部可以通过 "对象名.变量名" 来访问,这就是最大的不同之处

举个例子
有类C
C有静态变量A,有public成员变量a
C有两个对象 c1 c2
访问A时候用
C.A
访问成员变量时候,分别用
c1.a 和c2.a
(以上可以看出A只有一个,而a则有多少实例就存在多少)

关于类方法(也就是静态方法)和 实例方法(也就是成员方法)
基本同变量一样
需要注意的是

静态方法内部不能访问类自己的成员变量
而实例方法内部可以访问类的静态变量

有不明白欢迎发消息

类方法和实例方法有区别吗?