黑马程序员技术交流社区

标题: 静态方法里面的变量,是非静态还是静态的??? [打印本页]

作者: 文密    时间: 2012-4-8 11:20
标题: 静态方法里面的变量,是非静态还是静态的???
在一个静态方法内定义一个局部变量,然后作为返回值返回,那返回的这个变量是静态的还是非静态的?
作者: 蒙武辉    时间: 2012-4-8 11:27
我认为所谓的静态变量是加static修饰的。静态方法里的非静态变量不是静态变量
作者: 冯瀚冰    时间: 2012-4-8 11:33
局部变量,无论是静态方法还是动态方法,都是局部变量,都是在栈中创建,不存在静态和动态,栈结束后他会自动释放,return回去的值其实是复制的,硬要分一下应该算是非静态的吧。。。我理解是这样的
作者: newlaw2013    时间: 2012-4-8 11:33
方法中的变量无所谓静态不静态,final倒是有。
方法中的变量只在方法体中有效,就是局部变量
作者: 刘_浩    时间: 2012-4-8 11:38
静态的,你想想嘛,静态成员可以使用类名调用。
作者: 未长法    时间: 2012-4-8 11:42
局部变量,就是一对花括号里面的代码中定义的变量,它都是位于栈中,栈结束之后,变量自动释放。如果你在最后return  。那么系统实际上是复制了一份完全一样的对象(内存拷贝,连构造函数都不执行)。也就是说,你返回后,用来承载数据的变量是上级栈的事,当前栈中的局部变量用完就释放了,根本不存在静态的,除非你显式定义为static 。
局部变量,无论是静态方法还是动态方法,都是局部变量,都是在栈中创建,不存在静态和动态。
作者: 江远云    时间: 2012-4-8 12:20
在一个静态方法内定义一个局部变量,然后作为返回值返回,那返回的这个变量是静态的还是非静态的?
当然是非静态的,都说了是局部变量,跟静态方法无关,方法体里面只能定义非静态变量
作者: 欧阳才志    时间: 2012-4-8 12:23
看你如何定义了,加static的是静态变量,不加的就不是。
作者: pray    时间: 2014-4-26 05:27
让人阅毕击掌三叹的好帖




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2