Java中静态和非静态方法之间的区别

静态方法与非静态方法

首先我们要逐一研究,首先是静态方法,最后是非静态方法。

1)静态方法

  • 我们必须使用静态关键字来声明或定义静态方法。

  • 静态方法与类相关联,这意味着可以使用类名,对象或对象或不使用对象(直接调用)来调用这些方法,无需为静态方法声明任何对象。

  • 静态方法只能访问静态成员,而静态方法属于同一类或不同类,这意味着静态方法不能访问非静态成员或方法。

  • 静态方法仅创建整个程序的一个副本,并与其他成员或方法共享。

示例

//显示静态成员和方法的行为  

class StaticClass {

    //声明一个静态方法 

    public static int div(int a, int b) {

        return a / b;

    }

}

public class Main {

    public static void main(String[] args) {

        int p = 10, q = 5;

        //声明一个静态成员

        String str = "Welcome in Java World";

        //调用静态方法

        int div = StaticClass.div(p, q);

        /* 

         Here we are calling static methods directly without 

         objects or classname. If we want to call with classname 

         or with object then also not a problem. 

        */

        System.out.print("The value of str is = " + str);

        System.out.print("The divide of two number is = " + div);

    }

}

输出结果

D:\Programs>javac Main.java

D:\Programs>java Main

The value of str is = Welcome in Java World

The divide of two number is = 2

2)非静态方法

  • 在方法名称之前,我们不得使用静态关键字来声明或定义静态方法。

  • 非静态方法与类无关,这意味着不能使用类名称调用这些方法,并且必须声明对象,并且可以使用对象名称来调用非静态方法。

  • 非静态方法可以访问静态成员和静态方法,非静态成员和非静态方法属于同一类或不同类,但非静态不能修改静态成员或方法的值。

  • 对于非静态方法,请创建所有对象的单独副本,或者换句话说,请创建所有对象的单独副本。

示例

class NonstaticClass {

    //声明一个非静态方法 

    public int div(int a, int b) {

        return a / b;

    }

}

public class Main {

    public static void main(String[] args) {

        int p = 10, q = 5;

        //声明一个NonstaticClass对象

        NonstaticClass nc = new NonstaticClass();

        int div = nc.div(p, q);

        //使用类对象调用非静态方法。

        System.out.print("The div of two num is = " + div);

    }

}

输出结果

D:\Programs>javac Main.java

D:\Programs>java Main

The div of two num is = 2

以上是 Java中静态和非静态方法之间的区别 的全部内容, 来源链接: utcz.com/z/352410.html

回到顶部