「java静态成员访问」java静态成员变量
今天给各位分享java静态成员访问的知识,其中也会对java静态成员变量进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 为什么静态方法不能访问成员变量
- 2、java书上说“静态方法只能访问静态成员”是正确的吗?
- 3、求教大神,java书上说静态方法只能访问静态成员,这句话是不是不太准确
- 4、Java中静态内部类的成员可以访问外部类的静态变量吗
- 5、java 中类的静态方法怎么调用成员变量
- 6、java 为什么实例对象可以访问类的静态成员。
java 为什么静态方法不能访问成员变量
你说的java中的普通成员是在new一个对象的时候才产生的,而static成员是编译这个类的时候就产生了。有一个先后顺序。方法同理。
所以你写静态方法的时候
没有创建对象实例,所以还没有非静态的成员,所以不能调用
java书上说“静态方法只能访问静态成员”是正确的吗?
你应该没有理解这句话的意思,你说的是通过其他方式来访问非静态成员
而“静态方法只能访问静态成员”说的应该是直接访问。。
比如
class A{
private int a;
static void f()
{
a=1;
}
}
这就是错误的。。
class A{
private static int a;
static void f()
{
a=1;
}
}
这是对的。。这应该就是直接访问了。。
求教大神,java书上说静态方法只能访问静态成员,这句话是不是不太准确
这句话是针对同一个类环境下的,比如说,一个类有多个成员(属性,方法,字段),静态方法A,那么可以访问同类名下其他静态成员,你如果访问非静态成员就不行
Java中静态内部类的成员可以访问外部类的静态变量吗
可以的,静态方法只能调用静态方法,非静态方法也可以调用静态方法,例子如下:
package com.baidu.stati.pack;
public class staticStri {
public String getNames(){
System.out.println("这是一个非静态方法");
return null;
}
public static String getNamesList(){
System.out.println("这是一个静态方法");
return null;
}
public void say(){
getNames();
getNamesList();
}
public static void show(){
getNamesList();
}
}
java 中类的静态方法怎么调用成员变量
静态方法只能直接调用静态成员(包括变量和方法),而不能直接访问类中的非静态成员
静态方法不能以任何方式引用this和super关键字,因为静态方法在使用前不用创建任何实例对象,当静态方法调用时,this所使用的对象根本没有创建
静态方法中不可能再创建静态变量,不会导致方法里面的变量为静态变量 因为方法中的变量都是局部变量,不可能同时为局部变量又同时是静态变量
JVM对每种类型的变量都有自己的存储区域,static有专门的存储区
局部和静态是冲突的,不可能同时作为标识去修饰一个变量
静态方法是可以通过类型来调用的,不过根据类对象来调用也是可以的
静态成员是共享的,任何通过类调用都是可以的
静态方法可以调用静态方法 可以调用非静态方法(通过类对象调用),静态方法可以调用静态成员变量,但是不能调用非静态成员变量(不能直接调用,但是可以通过类对象调用非静态成员变量)
java 为什么实例对象可以访问类的静态成员。
按初始化的先后顺序来考虑即可明白。
类的静态成员不需要有实例对象,在类加载的时候,就可被初始化了。
类的静态成员的初始化,是比类的实例对象要提前完成的,所以实例对象可以访问类的静态成员。
java静态成员访问的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java静态成员变量、java静态成员访问的信息别忘了在本站进行查找喔。