A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓦然回首3Y 中级黑马   /  2015-7-4 06:21  /  2112 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中有几种变量?它们的作用域各是什么?

16 个回复

倒序浏览
杨基米德 来自手机 中级黑马 2015-7-4 07:24:05
沙发
成员变量,局部变量……
回复 使用道具 举报
还有一个静态变量...
回复 使用道具 举报
成员变量 局部变量 静态变量
当前对象 方法内部 类
回复 使用道具 举报
我是这么理解的,不知道适不适合楼主根据作用域(作用范围)来分,一般将变量分为全局变量和局部变量。全局变量就是在类的整个范围之内,都有效的变量。而局部变量就是在类中某个方法函数内或某个子类内,有效的变量,
回复 使用道具 举报
mls123456 发表于 2015-7-4 13:08
我是这么理解的,不知道适不适合楼主根据作用域(作用范围)来分,一般将变量分为全局变量和局部变量。全局 ...

补一下,全局变量就是在类中声明, 局部变量是在方法里声明的
回复 使用道具 举报
局部变量:在方法体中定义的变量,局部变量只在定义它的方法中有效。成员变量:在整个类中都有效(全局变量是C语言中的叫法,Java中没有全局变量的概念)。
成员变量又分为 实例变量(非静态变量)类变量(静态变量).
实例变量:没有使用static关键字修饰的变量,它又称为属性,对该类不同的对象来说,属性是不同的。
类变量:使用static关键字修饰的变量,一个类中只有一个该变量,该类不同的对象共享同一个静态成员变量。
回复 使用道具 举报
逍遥最好 发表于 2015-7-4 13:34
局部变量:在方法体中定义的变量,局部变量只在定义它的方法中有效。成员变量:在整个类中都有效(全局变量 ...

说的很详细,总结的挺好的,学习了:handshake
回复 使用道具 举报
学习!学习!
回复 使用道具 举报
学习!学习!
回复 使用道具 举报
学习学习!!!
回复 使用道具 举报
支持5楼~~
回复 使用道具 举报
7楼说的很详细,可是为什么一个类中只能有一个类变量呢
回复 使用道具 举报
逍遥最好 发表于 2015-7-4 13:34
局部变量:在方法体中定义的变量,局部变量只在定义它的方法中有效。成员变量:在整个类中都有效(全局变量 ...

一个类中为什么只能有一个类变量呢?
回复 使用道具 举报
学习了!!!
回复 使用道具 举报
蓦然回首3Y 发表于 2015-7-5 07:01
一个类中为什么只能有一个类变量呢?

这里我说的有错误,应该是:类变量不依赖类的实例,类变量只在初始化时候在方法区中被分配一次内存,无论类的实例被创建几次,都不再为类变量分配内存,所有实例共用同一个类变量。类变量随着类的加载而加载,随着类的消失而消失,因此它的生命周期最长,对内存的消耗比较大,而对象用完后堆内存中的实例就会被当成垃圾回收,而方法区中的类变量还在内存中占用资源,所以不建议定义过多的静态变量。要注意区分数据本身是不是被多个数据所共享,是就静态,不是就千万别静态。
回复 使用道具 举报
全局变量,局部变量
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马