Java中,关于静态方法/非静态方法的访问权限和范围理解
首先,结论如下:

图中的结论实际上是Java中的面向对象编程概念,涉及静态方法(static method)和非静态方法(实例方法)的访问权限。我们可以通过Java代码举例来解释这些结论:
Myclass.java
// 定义一个类,包含静态变量、实例变量、静态方法和非静态方法 class MyClass { // 静态变量 static String staticVar = "我是静态变量"; // 实例变量 String instanceVar = "我是实例变量"; // 静态方法:只能访问静态变量和静态方法 static void staticMethod() { System.out.println(staticVar); // 可以访问静态变量 // System.out.println(instanceVar); // 错误,不能访问实例变量 // instanceMethod(); // 错误,不能调用实例方法 System.out.println("静态方法只能访问静态成员"); } // 非静态方法:可以访问静态和非静态变量、调用静态和非静态方法 void instanceMethod() { System.out.println(staticVar); // 可以访问静态变量 System.out.println(instanceVar); // 可以访问实例变量 staticMethod(); // 可以调用静态方法 anotherInstanceMethod(); // 可以调用非静态方法 } // 另一个非静态方法 void anotherInstanceMethod() { System.out.println("这是另一个实例方法"); } }
Main.java
// 主类 public class Main { public static void main(String[] args) { // 通过类名直接调用静态方法 MyClass.staticMethod(); // 创建类的实例对象 MyClass obj = new MyClass(); // 通过实例调用非静态方法 obj.instanceMethod(); } }
输出:
我是静态变量
静态方法只能访问静态成员
我是静态变量
我是实例变量
我是静态变量
静态方法只能访问静态成员
这是另一个实例方法

浙公网安备 33010602011771号