JAVA 类变量和成员变量怎么理解

作者&投稿:衷琼 (若有异议请与网页底部的电邮联系)
java中的成员变量、类变量,成员方法、类方法各是什么,怎么区分,~

成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。
类变量:静态域,静态字段,或叫静态变量,它属于该类所有实例共有的属性。而且所有的实例都可以修改这个类变量的值(这个类变量没有被final修饰的情况),而且访问类变量的时候不用实例,直接用类名.的方式就可以。
成员方法:包括实例方法和类方法,用static的方法就是类方法,不用static修饰的就是实例方法。实例方法必须在创建实例之后才可以调用。
类方法:和类变量一样,可以不用实例,直接用类就可以调用类方法。
举例:
class Demo{ int x; //x是实例变量,也是成员变量 static int y; //y为类变量,也是成员变量 public int x() { //该方法为实例方法,是成员方法 return x; } public static void setX(int x1){ //该方法为类方法,也是成员方法 x = x1; } }

类的成员变量分为:类变量(又称静态变量,被static修饰的变量)和实例变量(不被static修饰的变量),另外,定义在函数内部的变量称为局部变量,仅在函数内部有效。
而成员方法分为:类方法(又称静态方法,被static修饰的方法)和实例方法(不被static修饰的方法)。
例:class
Demo{
static
int
a=0;//a是类变量或者静态变量,static变量只能初始化一次,也就是说,如果前面
已经初始化过了,后面就不必再初始化了
int
b=0;//b是实例变量,
//下面是实例方法
public
void
study{
int
c=0;//这个就是局部变量,仅仅是在study这个函数内部才有效
}
//下面是静态方法,静态方法可以不用创建对象直接调用
static
void
learn{
int
d=0;//局部变量
}
}
手敲不易,若有帮助,不胜荣幸

成员变量就是类中的属性。当new对象的时候,每个对象都有一份属性。一个对象中的属性就是成员变量。在类内部,任何地方都可以访问成员变量。类变量是被static修饰的属性。作用范围在类变量定义之后。

class Person{       

//成员变量,实例变量       

String name;       

//静态变量,类变量,所有对象共享的属性用static修饰       

static String country = "CN";       

public void show(){            

System. out.println(country + ":" + name); }}

class StaticDemo{       

public static void main(String[]args){            

Personp = new Person();            

System. out.println(p.country);             //可以用类名直接调用            

System. out.println(Person.country);      }} 

扩展资料:

成员变量和类变量的区别:

1、两个变量的生命周期不同

成员变量随着对象的创建而存在,随着对象的回收而释放。

静态变量随着类的加载而存在,随着类的消失而消失。

2、调用方式不同

成员变量只能被对象调用。

静态变量可以被对象调用,还可以被类名调用。

3、数据存储位置不同

成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。





1、成员变量:定义在类中,方法体之外。变量在创建对象时实例化。成员变量可被类中的方法、构造方法以及特定类的语句块访问。示例如下:

public class  ClassName{    

    int a;    

    public void printNumber(){        // 其他代码    }

}

2、类变量:定义在类中,方法体之外,但必须要有 static 来声明变量类型。静态成员属于整个类,可通过对象名或类名来调用。

public class  ClassName{    

    static int a;    

    public void printNumber(){        // 其他代码    }

}

扩展资料:

成员变量和类变量的区别:

1、两个变量的生命周期不同

成员变量随着对象的创建而存在,随着对象的回收而释放。

静态变量随着类的加载而存在,随着类的消失而消失。

2、调用方式不同

成员变量只能被对象调用。

静态变量可以被对象调用,还可以被类名调用。

3、别名不同

成员变量也称为实例变量。

静态变量也称为类变量。

4、数据存储位置不同

成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。



请参考这篇文章,讲得很清楚如何理解 Java 的类变量、成员变量、类属性、实例属性?



在类中用static修饰的变量就是类变量。一个简单例子,比如说一个类:
class person{
public static int num;//用于记录人口的数量,类变量
public int age;//用于记录人的年龄,成员变量
person p=new person();//创建一个人类的对象
}

从类里面的属性定义来看,人口是类相关的,年龄是对象相关的。
类变量可以直接用类名加点来调用,当然也可以用对象来调用,不过不合理,因为人口不是一个人的属性。
而成员变量要由对象加点来调用。

类变量属于成员变量
java的类中有两种成员变量
一种就是类变量或静态变量 这类变量前面加油static关键字修饰
这类变量一旦赋值它的值就在你new出来的任何一个实例中具有相同的值

另一种叫做实例变量 前面不加static关键字修饰,每一个new出来的新实例都可以对他赋予自己需要的值

例子
class example{
static int a = 0;
int b = 1;
}

a是类变量,b是实例变量
example e1 = new exzample();
example e2 = new exzample();
改变e1中a的值会使e2中的a值也改变
而e1中b值的变化不会带来e2中a值的变化


石景山区15083402971: JAVA 类变量和成员变量怎么理解
宇饲达那: 类变量属于类,随着类的加载而创建,且只会创建一次,可以直接使用类名来调用.(也可以使用对象来调用,但是底层还是用类来调用的) 成员变量是属于对象的,随着对象的创建而创建,N个对象就会创建N次成员变量,只能通过对象调用.

石景山区15083402971: 什么是成员变量和局部变量 java -
宇饲达那: 成员变量: ①成员变量定义在类中,在整个类中都可以被访问. ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中. ③成员变量有默认初始化值. 局部变量: ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效. ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放. ③局部变量没有默认初始化值在使用变量时需要遵循的原则为:就近原则 首先在局部范围找,有就使用;接着在成员位置找. 可以查看CSDN,网址网页链接

石景山区15083402971: java中,局部变量,成员变量,类变量,怎么区分呢?有什么差别呢…谢谢了 -
宇饲达那: 局部变量和成员变量主要看作用域,而作用域就是看花括号.作用于整个类的,就是只被类的花括号包含的,就是全局变量(成员变量).相对而言被方法或者其他域包含的就是局部变量.而类变量就是被static修饰的变量,也叫做静态变量.

石景山区15083402971: 什么是java的局部变量、成员变量和全局变量? -
宇饲达那: 1、局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放. 2、成员变量:在类体的变量部分中定义的变量,也称为字段. 3、全局变量:全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到源文件结束.4、局部变量和成员变量主要是他们作用域的区别:成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置). 成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值. 在内存中的位置也不一样.成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中.

石景山区15083402971: 什么是java的局部变量,成员变量,全局变量 -
宇饲达那: 1、成员变量就是全局变量,写在类里,是类的属性,作用域是整个类2、局部变量,写在方法中或是方法的参数,起始位置和离他最近的右大括号决定

石景山区15083402971: java里的各种变量都是什么? -
宇饲达那: 首先 全局变量 又叫成员变量 跟方法一样 是类的成员 ,跟方法是平级的 .还有种就是局部变量,定义在方法内部 ,包括方法的参数列表定义的那些变量,在方法执行完后就回收了.然后 静态变量又叫类变量,所有该类所有的实例公用的变量,可以直接用类名来获取值. 实例变量就是类的实例的变量,每个实例都有自己的值,用实例名来获取值.

石景山区15083402971: java中的成员变量、类变量,成员方法、类方法各是什么,怎么区分, -
宇饲达那: 首先我们先举个类来说明 //这里我就不写mian方法了 public class Test{ public static int b=10;类变量也叫静态变量,直接可以用类名调用Test.b private static void show1()//static 声明是一个静态的方法即类方法,凡是只要有static修饰的就可以不...

石景山区15083402971: java类的成员变量和局部变量怎么区别啊?局部变量是写在main方法里的吗?? -
宇饲达那: 1. 在类中位置不同:成员变量:在类中方法外.局部变量:在方法定义中或者方法声明上.2. 在内存中的位置不同:成员变量:在堆内存. 局部变量:在栈内存.3. 生命周期不同:成员变量:随着对象的创建而存在,随着对象的消失而消失. 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失.4. 初始化值不同:成员变量:有默认值初始化.局部变量:没有默认值初始化,必须定义,赋值,然后才能使用.不只是mian方法的变量是局部变量,其他方法里的变量也是局部变量.

石景山区15083402971: 高分求救:JAVA中类的成员变量和对象的成员变量有什么区别 -
宇饲达那: 类的成员变量被static修饰,为所有对象共享占用一块空间; 对象的成员变量为每个对象有一份,有多少个对象就有占多少内存空间.

石景山区15083402971: java中成员变量和局部变量的区别 -
宇饲达那: java易混淆概念之类变量、实例变量、局部变量 类变量、实例变量、局部变量类变量是类中独立于方法之外的变量,用static 修饰.实例变量也是类中独立于方法之外的变量,不过没有static修饰.局部变量是类的方法中的变量.看下面的伪代码...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网