static修饰变量和方法的区别

为什么对象可以调用静态变量而不能调用静态方法?一直没搞懂,我知道类方法,大神们请介绍下底层,跪谢

qq_31217363
巨人IIT 一般情况对象也是可以调用静态方法的,但是对于static修饰过的变量以及方法首先是推荐用类名来调,类的加载机制优先于对象的加载机制
12 个月之前 回复

12个回答

使用static 修饰的方法和变量是类变量和类方法!在jdk 将类编译完以后,java 会用类加载器将类加载进内存中!然后才可以让我们去运行,
类变量和类方法就是在这个时候实例化了,它的生命周期也是跟随着类,随它产生而产生,随它死亡而死亡。因此它的调用方式也与平常变量,方法不一样,普通方法是在new 一个类时才开始 出世(也就是生命周期的开始)。所以普通方法需要new 一个类后,再用这个类的实例来调用。而静态方法可以直接用 类名.方法 进行调用。(因为他在产生的时候就已经产生无须实例化类也可以调用)

调用是可以调用的,也能正常运行。但是静态方法是类方法,不推荐用实例调用,因为那是设计上的不合理。

不会啊,都是可以的。是不是你没有加上public修饰

static静态方法,不需要通过实例调用,直接用类名调用。

java里面的static标识是静态类型,即类的方法或者实例,就是说可以不通过new 类名称的方式得到的对象来调用,直接通过类名.方法来调用。
这就是类的方法;而实例方法就是必须通过对象的.操作调用的方法。你知道的类方法通常就是指java的静态的方法。

类的实例,其存储空间里没有类的静态方法的拷贝,所以你无法通过实例来访问类的静态方法。
直接用类名调用。至于类的静态方法的存储区域,我忘了哈。

都可以用static来修饰啊
static修饰的变量为静态变量,修饰的方法为静态方法
都可以通过类直接调用,也可以new本类 用实例来掉静态变量和方法。
但是一般情况下还是用类调用。

建议你去看看静态和非静态的区别,理清一下知识点,别把自己搞混乱了!

静态方法和非静态方法都会在堆的方法区里保存,但是static方法不需要对象初始化就可以使用,然而非静态方法虽然有了地址,但是需要对象初始化才可以使用,我理解是,非静态方法所需要的参数都是对象初始化才会生成的,所以在对象没有实例化的时候是不能调用的,而static方法用的都是static变量,static变量也会保存在类信息里

而且对象是可以调用静态方法的,因为都是在方法区里保存的,不过不推荐,因为静态方法是属于类的

共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问