Java >> Tutoriel Java >  >> Tag >> static

Différences entre méthode statique et non statique en Java

méthodes statiques vs non statiques

Nous étudierons un par un d'abord nous commencerons par les méthodes statiques et se termine par des méthodes non statiques .

1) méthodes statiques

  • Nous devons utiliser des mots clés statiques pour déclarer ou définir des méthodes statiques.
  • Méthodes statiques sont associées à la classe, ce qui signifie que ces méthodes peuvent être appelées avec le nom de la classe ou avec des objets ou sans objets (appel direct) il n'est pas nécessaire de déclarer des objets pour les méthodes statiques.
  • Méthodes statiques peut accéder uniquement au membre statique et les méthodes statiques sont de la même classe ou d'une classe différente, ce qui signifie que la méthode statique ne peut pas accéder au membre ou aux méthodes non statiques.
  • Méthodes statiques créez une seule copie de l'ensemble du programme et partagez-la avec d'autres membres ou méthodes.

Exemple :

// Show the behavior of static member and methods  
class StaticClass {
    // declare a static method 
    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;

        // Declare a static member
        String str = "Welcome in Java World";

        // Invoking the static method with the classname
        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);
    }
}

Sortie

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) Méthodes non statiques

  • Nous ne devons pas avoir de mots clés statiques avant le nom de la méthode pour déclarer ou définir des méthodes statiques.
  • Méthodes non statiques ne sont pas associées à la classe, ce qui signifie que ces méthodes ne peuvent pas être appelées avec le nom de la classe et qu'il est obligatoire de déclarer des objets et que les méthodes non statiques peuvent être appelées avec le nom de l'objet.
  • Méthodes non statiques peut accéder au membre statique et aux méthodes statiques et le membre non statique et les méthodes non statiques sont de la même classe ou d'une classe différente, mais non statique ne peut pas modifier les valeurs du membre statique ou des méthodes.
  • Pour les méthodes non statiques créer une copie individuelle de tous les objets ou, en d'autres termes, créer une copie distincte de tous les objets.

Exemple :

class NonstaticClass {
    // Declare a non-static method 
    public int div(int a, int b) {
        return a / b;
    }
}

public class Main {
    public static void main(String[] args) {
        int p = 10, q = 5;

        // Declare an object of NonstaticClass
        NonstaticClass nc = new NonstaticClass();

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

        // Invoking the non-static method with the class object.
        System.out.print("The div of two num is = " + div);
    }
}

Sortie

D:\Programs>javac Main.java

D:\Programs>java Main
The div of two num is = 2

Balise Java