类成员变量和实例成员变量分别指什么有什么区别(举例说明)?

作者&投稿:杭质 (若有异议请与网页底部的电邮联系)
类成员变量和实例成员变量分别指什么有什么区别~

类变量就是在类中声明的变量,成员变量就是类变量,实力变量就是方法中的变量,也就是局部变量,其实就是这样地。

java易混淆概念之类变量、实例变量、局部变量
类变量、实例变量、局部变量类变量是类中独立于方法之外的变量,用static 修饰。

实例变量也是类中独立于方法之外的变量,不过没有static修饰。

局部变量是类的方法中的变量。

看下面的伪代码说明:

public class Variable{

static int allClicks=0; //类变量

String str="hello world"; //实例变量

public void method(){

int i =0; //局部变量

}

}

实例变量也称为:“域”,“成员变量”,在实体类或数据类中被称为“属性”或“字段”。当实例变量可以改变时,被称为对象的状态。

2. final用于常量的声明,规范要求常量的变量名是大写的。

3. statci 在java 里面用于对类方法和属性进行修饰,其作用是什么呢?

有两种情况是non-static无法做到的,这时你就要使用statice。

第一种:你希望不论产生了多少个对象,或不存在任何对象的情形下,那些特定数据的存储空间都只有一份;

第二种:你希望某个函数不要和class object绑在一起。即使没有产生任何object,外界还是可以调用其static函数,或是取用其static data

例如定义一个类:

class Text

{public static int number;

public int temp;}

如果你想访问temp属性,你就必须先创建一个Text的对象,才能访问:Text  b = new Text();

b.temp;这就是实例成员变量。

而你想 访问number的话,不用创建Text的实例就可以访问,就像这样:Text.number.这就是类成员变量。

主要区别就是访问是需不需要创建对象,而对于类成员变量,所有对象是共享一个变量的。

扩展资料:

数据成员可以分静态变量、非静态变量两种.

静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用"类名.静态成员名"访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员 函数不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员函数可以直接访问类中静态的成员.

非静态成员:所有没有加Static的成员都是非静态成员,当类被 实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在 内存中..

一个类中也可以包含静态成员和非静态成员,类中也包括静态 构造函数和非静态构造函数..

分两个方面来总结,第一方面主要是相对于 面向过程而言,即在这方面不涉及到类,第二方面相对于 面向对象而言,主要说明 static在类中的作用。

参考资料:百度百科-成员变量



成员变量就是类里面的变量,不区分static

没有static的成员变量叫实例变量

加了static就叫类变量,实际上和类没啥关系,就相当于一个寄生物一样,而且除了类变量外,你喜欢叫全局变量(public 修饰)、静态变量都行

最后他俩统称类的成员变量

完善一下回答,举个栗子吧

class Test{
    
    public static String CLASS_VAR = "test";//类变量、静态变量、全局变量
    
    private String instance_var;//实例变量
    
    //省略instance_var get;set;方法
    
}

实际使用时,实例变量是存在于类的实例中的,实例就是通过类来创建的具体某个对象,这个对象会维护自身所有的实例变量,所以相同类的不同实例间去set同名实例变量是互不影响的。

也就是要访问instance_var,需要先new一个Test对象test,再通过test.getInstanceVar()或test.instance_var来访问实例变量。

而类变量则直接通过实际的类来进行访问,也就是要访问CLASS_VAR,直接使用TEST.CLASS_VAR即可,该变量存在静态区的某个固定位置(如果是静态对象,则对象存在堆区,静态区存的是指向该对象的地址),假设在多线程下同时访问该变量,获取的永远是同一份数据,比如一个静态的对象,多线程下获取到的永远都是指向同一个对象。

类变量的使用也就引申出了多线程下类变量的安全性问题,比如一个线程获取到该变量后,另一个线程修改了它,那么原来的线程拿到的是旧值,以此为基础所做的操作就很大概率会出现不正确的结果,也就引申出锁和同步,也就是说一个线程在操作这个公共资源时,会将该变量锁住,禁止其他线程拿到修改该变量的权限,当然拿修改权限这部分是需要我们手动去写的,代码是不会乖乖地自己识别哪个公共资源被锁的。

可能有没讲明白的地方,或是错漏,请大家指正,多谢



例如定义一个类:
class Text
{
public static int number;
public int temp;
}
如果你想访问temp属性,你就必须先创建一个Text的对象,才能访问:Text b = new Text();
b.temp;这就是实例成员变量。
而你想 访问number的话,不用创建Text的实例就可以访问,就像这样:Text.number.这就是类成员变量。
主要区别就是访问是需不需要创建对象,而对于类成员变量,所有对象是共享一个变量的。

实例成员变量:非静态成员变量
类成员变量:静态成员变量. 对于这个类的任何实例都是一样的值,不属于某个实例,所以叫类的成员变量

……不在方法中定义的变量为成员变量。成员变量有两种,有static修饰的为静态成员变量,没有static的为实例变量


以程序为例,讲解java中包,类,构造函数,成员变量,成员方法,重载,接口,SU...
实例变量和类变量的类型 初始值 整数 0 浮点类型 0.0 字符类型 ‘\/u0000′布尔类型 boolean false 引用数据类型(譬如数组、接口、类) null 二、方法(类或对象的行为)1、方法 Java中类的行为由类的成员方法来实现。类的成员方法由方法的声明和方法体两部分组成。修饰符,可选,...

JAVA 类变量和成员变量怎么理解
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(...

java中静态成员变量、实例变量、局部变量何时创建、何时销毁?
静态成员变量在类装载的时候就进行了创建,在整个程序结束时按序销毁。实例变量在类实例化对象时候创建,在对象销毁的时候销毁。局部变量在局部范围使用时创建,跳出局部范围销毁。

实例成员和类成员的区别
1.实例成员 实例成员包括实例成员变量和实例成员方法,实例成员变量(对象的字段)和方法(对象的方法)是隶属于对象的,实例变量的值代表了该对象的状态,实例成员方法代表了该对象的行为。只有创建了对象之后才能访问实例成员变量和实例成员方法,通过"对象名.变量名(方法名)"的方法可以访问实例成员 2.类成员...

java中成员变量,方法名,类名区分
成员变量又称为成员属性,它是描述对象状态的数据,是类中很重要的组成成分。本节详细讨论如何来定义成员变量、成员变量的访问权限,以及静态成员变量与实例成员变量之间的区别。在一个类中,程序的作用体现在方法中。方法是JAVA创建一个有名字的子程序的方法。JAVA中的类是具备某些共同特征的实体的集合,...

java中的成员方法和实例方法是甚么?
成员方法和实例方法是针对类和对象而言的,成员方法是类里面的方法,公用的,继承了他的类都可以调用,而实例方法是属于某一个类的实例对象的私有方法,其他对象不能调用的也调用不了,类似的成员变量和实例变量也是一样的道理

全局变量,局部变量,成员变量,静态变量,void,实例变量 ,遍历 ,引用,返 ...
全局变量: 变量从程序执行开始, 就一直存在, 其内容可以保存到程序结束.局部变量: 变量从宣告行才实际存在, 其内容仅保存至该区块结束. C中为大括号.成员变量: 一般指称, 隶属於Class\/Object的变量 静态变量: 照宣告定义的话, 在不同语言或叙述有不同意义.- 如C: 静态变量其保存时间, 同全局变量...

java中什么是成员变量、局部变量???
定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。一、成员变量 成员变量是指定维度的成员变量,用于标识某个维度成员。由Services内部使用的值,以标识某个维度成员。MemberKeyColumn属性指定维度的成员变量。例如,1到12之间的某个数字可以是相应于年中的某个月的成员变量。二、局部...

java如何访问类的成员变量和方法?
成员变量和方法分为静态和实例变量和方法 例如定义一个类:class Text { public static int number;public int temp;public static void method(){} public void method2(){} } 如果你想访问temp属性,你就必须先创建一个Text的对象,才能访问:Text b = new Text();b.temp;这就是实例成员...

请问一下类的静态成员与对象实例的成员之间的关系
静态成员又叫类成员,指的是用static修饰符所修饰过的变量或方法。实例成员就是没有用static修饰的变量或方法。主要不同就是这有没有static修饰。造成的结果是静态成员可以直接由类名调用,而实例成员还要用new标示符进行实例化,长生对象才能去调用方法和变量。(了解即可,不必记忆) 深层原因是静态成员...

正定县19223754570: 类成员变量和实例成员变量分别指什么有什么区别 -
代虽四季: 类变量就是在类中声明的变量,成员变量就是类变量,实力变量就是方法中的变量,也就是局部变量,其实就是这样地.

正定县19223754570: 实例成员和类成员的区别 -
代虽四季: 1.实例成员实例成员包括实例成员变量和实例成员方法,实例成员变量(对象的字段)和方法(对象的方法)是隶属于对象的,实例变量的值代表了该对象的状态,实例成员方法代表了该对象的行为.只有创建了对象之后才能访问实例成员变...

正定县19223754570: 类变量和实例变量的区别是什么? -
代虽四季: 实例变量也叫对象变量,即没加static 的变量;区别在于:类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他...

正定县19223754570: 什么是类变量,什么是成员变量,什么是实例变量,什么是局部变量,四者各有什么区别 -
代虽四季: 类变量就是在类中声明的变量,成员变量就是类变量,实力变量就是方法中的变量,也就是局部变量,其实就是这样地.

正定县19223754570: 举例说明类变量和实例变量的区别 -
代虽四季: 类变量也叫静态变量,也就是在变量前加了static 的变量;实例变量也叫对象变量,即没加static 的变量;区别在于: 类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实...

正定县19223754570: 在Java程序设计中实例变量和类变量有什么区别? -
代虽四季: 类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;实例变量是类实例化后,系统为其创建的一个类的实例变量的拷贝,即一个实例拥有一个实例变量. 类变量则是用static声明,系统为每个类变量分配一次存储空间.即所有的实例共享一个类变量.

正定县19223754570: java中类变量和实例变量的实质区别? -
代虽四季: 类变量(即静态变量)是全局变量,所有的实例共享的变量.如果你在一个实例中改变了其值,那么所有的实例的这个变量的都会改变

正定县19223754570: java里类变量和实例变量的区别 -
代虽四季: 类变量也就是静态变量属于类.实例变量属于实例.public class A { //类变量(static) public static int classVariable;//实例变量 public int instanceVariable; public static void main(String[] args) { //类变量可以直接通过类使用. A.classVariable = 2...

正定县19223754570: JAVA中“成员变量”和“实例变量”一样吗? -
代虽四季: 不一样的,例如 public class A{String id; //实例变量private String Tel; //实例变量private int size; //实例变量private static String depart; //类变量final String design="样式"; //常量 }其中实例变量、类变量、常量都是属于成员变量的,成员变量又被称为全局变量, 成员变量的范围比实例变量更宽泛

正定县19223754570: JAVA中的实例变量,嗯百度变量,和类变量,都有什么不同,能详细解释吗? -
代虽四季: java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量.类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有...

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