99问答网
所有问题
Java:在一个方法内,成员变量和局部变量同名时,
,此时如果要访问实例变量可以用this,要访问静态变量可以通过类名。
这是书上的话,我的疑问是:那此时访问静态变量可以用this吗,只能通过类名吗?
举报该问题
推荐答案 2018-07-09
理论上来说,
静态变量
存在于类的方法区而不是对象中,没有this指针指向它,因此只能通过类名.变量名的形式访问。
但实际上使用this.变量名也可以通过编译。此时
编译器
自动替换为类名.变量名,并给出一个警告提示你应该以静态方式访问此变量。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/zWtWeveejOOWBveOOe.html
其他回答
第1个回答 2018-07-09
静态变量不需要实例化,也不能通过this引用。
this指当前对象的实例。而静态变量无需实例化就可以构建,使用。而且无论是否有实例,有多少个实例,静态对象都指向同一个。所以不会有this的引用。
不仅如此。在静态方法中也不能使用this。 有一个理解方式。所有非静态函数都有一个隐藏的参数,this,把对象传了过去。静态方法没有这个隐藏参数,所以不能用this。
第2个回答 2018-07-09
可以用this,不过编译器会有警告,静态变量是属于类的变量,用类名方法比较合适而已
我习惯写代码的时候,为了图方便,全部用对象名来引用,最后用编辑器统一修改下调用方式
相似回答
java局部变量和成员变量
名相同
答:
实际上
,java
里面,在同一个作用域下,不能定义一样的标识符(也就是你做说的变量名)。为什么呢?因为,他需要保证你在某个作用于下使用某个标识符的
时候,
JVM能够正确进行区分!所以,实际上,全局
变量和局部变量
和内存并不存在绝对直接的关系。实际上,不管是全局的还是局部的变量,他的标识都是保存...
java
类
成员变量与局部变量同名时
的操作
答:
1.Before changVar,调用getXYZ()
方法,
输出的是成员变量的初始值
1,1,1
;2.In changeVar,调用changeVar方法,输出的x是
成员变量,
x=a,a是传进来的值为10;y和z都是
局部变量,
分别对应传进来的b,和9,所以结果是 10,10,9;3.After changeVar,再次调用getXYZ()方法,输出的仍然是成员变量,...
java 中
的this关键字的几种用法
答:
当
成员变量和局部变量
重名
时,在方法
中使用this时,表示的是该方法所在类中的成员变量。(this是当前对象自己)在这个例子中,构造函数Hello中,参数s与类Hello的成员变量s
同名,
这时如果直接对s进行操作则是对参数s进行操作。若要对类Hello的成员变量s进行操作就应该用this进行引用。运行结果的第一行就是...
简述this关键字的用法
答:
在面向对象编程中,this关键字是一个特殊的变量,它代表当前对象。换句话说,在类的实例
方法
中,可以使用this关键字来引用当前对象的属性和方法。2. this的用法 在
Java
等面向对象的编程语言中,this关键字主要在以下几种场景中使用:区分
局部变量和成员变量
:当方法内部存在
局部变量与成员变量同名时,
可以...
java 中
说:两类
变量同名时,局部变量
具有更高的优先级 是什么意思?最好...
答:
public class test(){ public static void main(string[ ] args){ int i =3;system.out.println(i);} public void face(){ for(int i=0;i<5;i++){ system.out.println(i);} } } 结果是1到5 这就是两个变量重名
时,局部变量
优先级更高。。。
JAVA的局部变量和成员变量
的区别?
答:
局部变量和
成员变量主要是他们作用域的区别
,成员变量
个是类内部;局部变量是定义其的
方法
体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置)。另外,成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。还有,在内存中的位置也不一样。
java中局部变量
具体是什么,可以干什么,有什么作用,
答:
可以在复合语句中定义
变量,
这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。作用
:在Java
等面向对象语言中,也可能出现多个
局部变量
重名的情况。例如
一个方法
的形式参数与类成员的名字相同,这时形式参数会把类成员屏蔽,如果要访问类
成员,
应该用this关键字。
java
什么是
成员变量和局部变量
答:
1、成员变量是独立于方法外的变量
,局部变量
是类的方法中的变量 1)、
成员变量:
包括实例
变量和
类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。2)、
局部变量:
包括形参
,方法局部变量,
代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中...
关于
java
里static method的
一个
小问题
答:
x扩大2倍后再等于x相对于修改了参数x (和int x=2中的x一点关系都没有),出了这个方法x就没用了,x的作用域就是在f方法中。(
局部变量
)关于x.val是外部对象引用的属性,作用域在类与类之间。(全局变量)
一个变量在
方法外声明是全局
变量,在方法内
声明是局部变量。
大家正在搜
java局部变量和成员变量同名
java局部变量和成员变量
什么是成员变量和成员方法
Java构造方法对成员变量赋值
java初始化成员变量的构造方法
Java对象和成员变量的区别
Java成员变量默认值
Java变量名的命名规则
给成员变量赋值有几种方法
相关问题
Java 类中的成员变量与局部变量重名时,怎么分别出成员变量...
java类成员变量与局部变量同名时的操作
java 中当局部变量和成员变量的变量名相同时,是以那个变量...
java局部变量和成员变量名相同
JAVA的局部变量和成员变量的区别是什么?
在java中为什么方法的参数名字不可以和方法中声明的局部变量...
java中为什么出现了成员变量(String name)与局...
JAVA的局部变量和成员变量的区别?