static(静态方法中)如何调用非静态方法?

在静态方法的内部不能直接调用非静态方法,因为方法属于类而不是对象,我们可以通过自己手动new对象来在静态方法中调用

简单case:
如下代码设置Build类一个静态方法一个成员方法

public class Build {

    public static void methodStatic(){
        System.out.println("这是个静态方法");
        //调用非静态方法
        new Build().methodNotStatic();
    }

    public void methodNotStatic(){
        System.out.println("这是个成员方法");
    }
}

main方法调用:

	public static void main(String[] args) {
        //静态方法直接调用,不用创建对象
        Build.methodStatic();
    }

main方法调用结果:
static(静态方法中)如何调用非静态方法?_第1张图片
别的类的静态方法调用非静态方法case:
新建Transform类,声明一个静态方法,调用刚才Build的非静态方法

public class Transform {
    public static void trans(){
        System.out.println("trans 的 静态方法");
        new Build().methodNotStatic();
    }
}

public static void main(String[] args) {
        //Build静态方法直接调用,不用创建对象
        Build.methodStatic();
        System.out.println("------------------");
        //Transform静态方法直接调用
        Transform.trans();
    }

结果:
static(静态方法中)如何调用非静态方法?_第2张图片

你可能感兴趣的:(static,java)