1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00

Merge pull request #1173 from gleonSun/develop

静态方法调用非静态成员表述不准确
This commit is contained in:
Guide哥 2021-04-25 10:46:16 +08:00 committed by GitHub
commit 06c129de2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -790,7 +790,7 @@ public void f5(int a) {
### 在一个静态方法内调用一个非静态成员为什么是非法的?
由于静态方法可以不通过对象进行调用,因此在静态方法里,不能调用其他非静态变量,也不可以访问非静态变量成员
这个需要结合 JVM 的相关知识,静态方法是属于类的,在类加载的时候就会分配内存,可以通过类名直接访问。而非静态成员属于实例对象,只有在对象实例化之后才存在,然后通过类的实例对象去访问。在类的非静态成员不存在的时候静态成员就已经存在了,此时调用在内存中还不存在的非静态成员,属于非法操作
### 静态方法和实例方法有何不同?