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();
    }
}

输出:

我是静态变量
静态方法只能访问静态成员
我是静态变量
我是实例变量
我是静态变量
静态方法只能访问静态成员
这是另一个实例方法

 

 

 

 

 

posted @ 2024-10-15 11:01  AlphaGeek  阅读(89)  评论(0)    收藏  举报