静态方法与非静态方法的区别

静态方法:

外部调用静态方法时,可以直接通过【类名.静态方法名】的方式调用,也可以通过创建类的对象来调用。

非静态方法:

非静态方法的调用只能通过【对象.非静态方法名】的方式调用。

例:

现分别有一个静态方法method1、非静态方法method2

    public static void method1(){

      System.out.println("这是静态滴...");

    }

    public void method2(){

      System.out.println("这是非静态滴...");

    }

在调用时:

method2---------【step1: ClassName class1 = new ClassName();

        step2:  class1.method2;        】

method1 --------ClassName.method1(或者同上方法)

 

**

静态方法只能访问静态成员,实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。

同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。

基于同样的道理,静态方法中也不能使用关键字this。

main()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系统在创建对象之前就调用。

 

posted @ 2019-10-18 12:30  战胜橘子  阅读(1806)  评论(0编辑  收藏  举报