Java中的变量/(成员变量,局部变量)的区别

定义类的成员,包括成员变量成员方法

 

一,成员变量的分类

实例变量:没有static修饰,也叫对象属性,属于某个对象的,通过对象来使用

类变量:有static修饰,也叫类变量,属于整个类的,不是属于某个实例

类变量的值是所有对象共享的,而实例变量的值是每个对象独立的

如何声明成员变量?

【修饰符】 class 类名{
    【修饰符】 数据类型  属性名;    //属性有默认值
    【修饰符】 数据类型  属性名 = 值; //属性有初始值
}
//说明:属性的类型可以是Java的任意类型,包括基本数据类型、引用数据类型(类、接口、数组等)

二,成员方法的分类

成员方法分为两类:

  • 实例方法:没有static修饰的方法,必须通过实例对象来调用。

  • 静态方法:有static修饰的方法,也叫类方法,可以由类名来调用。 

三,成员变量与局部变量的区别

1、变量的分类

  • 成员变量

    • 静态变量

    • 实例变量

  • 局部变量

2、区别

1、声明位置和方式 (1)静态变量:在类中方法外,并且有static修饰 (2)实例变量:在类中方法外,没有static修饰 (3)局部变量:在方法体{}中或方法的形参列表、代码块中

2、在内存中存储的位置不同 (1)静态变量:方法区 (2)实例变量:堆 (3)局部变量:栈

3、生命周期 (1)静态变量:和类的生命周期一样,因为它的值是该类所有对象共享的,早于对象的创建而存在。 (2)实例变量:和对象的生命周期一样,随着对象的创建而存在,随着对象被GC回收而消亡, 而且每一个对象的实例变量是独立的。 (3)局部变量:和方法调用的生命周期一样,每一次方法被调用而在存在,随着方法执行的结束而消亡, 而且每一次方法调用都是独立。

4、作用域 (1)静态变量和实例变量:不谈作用域 在本类中,唯一的限制,静态方法或静态代码块中不能使用非静态的,其他都可以直接使用。 在其他类中,能不能使用看修饰符(public,protected,private等) (2)局部变量:有作用域 出了作用域就不能使用

5、修饰符(后面来讲) (1)静态变量:很多 public,protected,private,final,volatile等,一定有的是static (2)实例变量 public,protected,private,final,volatile,transient等 (3)局部变量 final

public,protected,private:权限修饰符 final:是否是常量,即值是否可以修改 volatile:和多线程有关 transient:是否序列化,和IO有关

6、默认值 (1)静态变量:有默认值 (2)实例变量:有默认值 3)局部变量:没有,必须初始化 其中的形参比较特殊,靠实参给它初始化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值