2016 - 2024

感恩一路有你

Java静态变量和静态方法 同一个类中静态方法为什么不能调用实例变量?

浏览量:1585 时间:2021-03-15 08:36:09 作者:admin

同一个类中静态方法为什么不能调用实例变量?

不行,因为java中静态的东西是类级别的,也就是说用类名就可访问,也可以用任何对象名访问,无论以哪种形式访问的都是同一个东西。而一般我们所说的成员变量,是指对象级别的,也就是说每一个对象所拥有的成员变量都是独立的不同的变量,是属于对象自己拥有的。相对于来说访问范围,无疑是静态的更大,静态的可以被任何对象所访问且是同一个,而成员变量是每个对象各自拥有的。那么,为什么“静态方法不能调用类成员变量”,因为要想访问成员变量你必须有个“已经实例化好的对象”,除非你在静态方法里创建一个当前类的实例对象,否则你是无法直接调用成员变量的,因为它不知道这个成员变量属于哪个实例对象的。而在成员方法里,所有属于成员的变量、方法已经可以确定是同一个对象的,并且可以用this表示当前对象。

静态方法可以直接调用实例方法么?

packagecom.text_3//静态方法不能直接调用实例方法和变量,但可以间接调用(即在静态方法中创建类的实例,然后调用)classDemo_12{publicstaticvoidmain(String[]args){Circlec=newCircle()Demo_12d=newDemo_12()method1()//此处报错,静态方法不能直接调用非静态方法d.method1()//间接调用,无错c.setRadius(5.0)//间接调用,无错}publicvoidmethod1(){method2()}publicstaticvoidmethod2(){Circlec=newCircle()System.out.println("whatisradius" c.getRadius())}}classCircle{privatedoubleradiuspublicdoublegetRadius(){returnradius}publicvoidsetRadius(doubleradius){this.radius=radius}}

为什么访问静态方法和静态变量不需要实例化?

静态变量 在java也叫类变量从名字可以看出它是属于某个类的而不是类的实例。它的关键字是static存储在静态存储区,当程序执行,类的代码被加载到内存,类的静态变量就分配了内存空间,他是属于类的也就是没个实例对象都是对于以个静态变量,静态变量的内存空间知道程序退出才释放所占用的内存空间。静态变量直接通过类名访问(java 也能通过对象名访问)。 有人会分全局的静态变量、局部的静态变量;全局静态变量失去了“全局”的普遍含义,它的作用域限定在本文件里。而静态变量的声明是应该出现在类里不是类的函数里。

Java静态变量和静态方法 静态变量和非静态变量的区别 静态方法java

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。