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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Gump 中级黑马   /  2013-10-30 10:24  /  1080 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Gump 于 2013-10-30 14:07 编辑

大家好,我刚开始自学java ,听毕老师的视频,听到局部变量,成员变量  ,总是会犯迷糊,希望大家可以给我一个方法,让我可以很好的区分局部变量与成员的变量,可以更好的理解 。谢谢大家!

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

12 个回复

倒序浏览
局部变量跟成员变量最大区别应该实在作用域吧。
成员变量是作用于整个类,而局部变量就是在声明他的那个方法或者函数内作用,就是那个{}内部。
然后,成员变量在实例化的过程中是肯定会进入对内存,在对象里生成的,而且是默认有初始化值。而局部变量就必须自己定义一个初始化值,不会默认定义,否则会挂。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
高亮亮 发表于 2013-10-30 10:32
局部变量跟成员变量最大区别应该实在作用域吧。
成员变量是作用于整个类,而局部变量就是在声明他的那个方 ...

忘了一点,那个局部变量是声明后存在于栈内存里的。
回复 使用道具 举报
高亮亮 发表于 2013-10-30 10:32
局部变量跟成员变量最大区别应该实在作用域吧。
成员变量是作用于整个类,而局部变量就是在声明他的那个方 ...

忘了一点,那个局部变量是声明后存在于栈内存里的。
回复 使用道具 举报
成员变量:是定义在类中的,它需要在堆内存中开辟空间,作用范围是整个类,可以被对象调用,且可以被一些例如public、private等修饰符修饰.
局部变量:是定义在方法、参数或者语句中的,它是在栈内存中开辟空间,使用完了之后就在内存中释放掉了,且需要给它初始化值。

下面贴个简单的小例子看一下:
  1. public class Test
  2. {
  3.         int x = 10;                //这里的x是定义在类中的,是成员变量。
  4.         char ch = 'A';        //这个字符变量ch也是成员变量。

  5.         public static void main(String[] args)
  6.         {
  7.                 for (int x=1; x<10 ; x++ )        //这里for循环条件中的x就是局部变量。
  8.                 {
  9.                         System.out.println("Hello Java !");
  10.                 }
  11.         }
  12. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
通俗地讲成员变量是在类里最外层直接定义的  属于第一下级 作用域是整个类 而局部变量是在类里定义的函数里面定义的 属于第二下级 作用域只是在这个方法里面 方法结束后这个局部变量就不存在了
回复 使用道具 举报
靓仔 中级黑马 2013-10-30 11:44:24
7#
说简单就是成员变量时整个类中都可以调用,就是class类的{}包住。局部就是内里边有方法,只在那个方法中有效。
准备的说:成员变量定义在类中,需要在堆内存开辟空间。而局部变量需要在栈内存开辟空间,函数调用之后,就当垃圾回收了,也就是释放了
回复 使用道具 举报
如果问题已经解决,请及时修改主题为“提问结束”
如何修改?
看帖子http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
类体内定义的变量称为成员变量,如果定义该成员变量时没有使用static修饰又称为实例变量或者非静态变量,有static修饰的称为静态变量或者类变量
如:
class Demo{
     private int num; //定义在类体内,所以是成员变量
     private static int num2;//静态变量或者类变量,有static修饰的成员变量
}
局部变量可以分为三类:
1、形参,在方法中定义的局部变量,如getNum(int num),其中的num
2、方法内部的局部变量,如getNum(){ int num; }中的num
3、非静态代码块中的局部变量,如{int num;}中的num
希望对楼主有用,不对之处,大家多多指正
回复 使用道具 举报
Gump 中级黑马 2013-10-30 14:02:15
10#
高亮亮 发表于 2013-10-30 10:32
局部变量跟成员变量最大区别应该实在作用域吧。
成员变量是作用于整个类,而局部变量就是在声明他的那个方 ...

感谢详细回答,解答的很到位,谢谢!
回复 使用道具 举报
Gump 中级黑马 2013-10-30 14:02:43
11#
mayor125 发表于 2013-10-30 11:18
成员变量:是定义在类中的,它需要在堆内存中开辟空间,作用范围是整个类,可以被对象调用,且可以被一些例 ...

感谢详细回答,解答的很到位,谢谢!
回复 使用道具 举报
Gump 中级黑马 2013-10-30 14:02:59
12#
ixiangfeng 发表于 2013-10-30 11:18
通俗地讲成员变量是在类里最外层直接定义的  属于第一下级 作用域是整个类 而局部变量是在类里定义的函数里 ...

感谢详细回答,解答的很到位,谢谢!
回复 使用道具 举报
Gump 中级黑马 2013-10-30 14:03:51
13#
雨过丶天已晴 发表于 2013-10-30 13:08
类体内定义的变量称为成员变量,如果定义该成员变量时没有使用static修饰又称为实例变量或者非静态变量,有 ...

感谢详细回答,解答的很到位,谢谢!大家共同学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马