- - Comment utiliser ‘Static’ en Java

Comment utiliser ‘Static’ en Java

Normalement, un membre de la classe doit être accessible dansconjonction avec un objet de sa classe. Il y aura des moments où vous voudrez définir le membre de la classe auquel vous pouvez accéder sans instancier cette classe. Cela peut être accompli par «statique». Pour créer un tel membre, faites précéder sa déclaration du mot clé "statique".

Avantages de la statique

Lorsqu'un membre est déclaré statique, il est accessible avant la création des objets de sa classe ou sans référence à aucun objet.

Pourquoi déclarons-nous main () statique?

main () est le point d'entrée d'une classe. En java, tout est écrit dans une classe. Maintenant, lorsque vous exécutez java filename sur l'invite de commande, le chargeur chargera la classe et JVM recherchera la méthode principale pour entrer dans la classe. Donc, rendre le main () statique, rendra la JVM accessible directement via classname.main ()

C’est pourquoi le nom du programme doit être le même que le nom de la classe, où nous avons écrit la fonction principale.

Points importants à retenir

  1. Les variables d'instance déclarées comme statiques sont essentiellement des variables globales. Lorsque vous créez des objets de sa classe, aucune copie d'une variable statique n'est effectuée. Même tous les objets partagent la même variable statique.
  2. les variables statiques ou les fonctions membres se chargeront pendant la classe. Cela signifie qu'avant de créer des instances (objets), la fonction principale est la première fonction exécutable de tout programme que nous exécutons manuellement.
  3. Si vous voulez faire exécuter quelque chose / initialiser des variables statiques avant le chargement réel de la classe, alors mettez toutes celles-ci dans un bloc statique.

Par exemple.

statique{

System.out.println («Bloc statique initialisé…»);

}

Il est exécuté avant même la méthode main () lors du chargement de la classe.

Restrictions lors de l'utilisation de Static

  1. la méthode statique ne peut accéder qu'aux variables statiques.
  2. La méthode statique ne peut invoquer que la méthode statique.
  3. la méthode statique ne peut pas faire référence à cela et super en aucune façon.

Programme

class Addition{
static int num1;
static int num2;
int a;
int b;
Addition(){
num1 = -1;
num2 = -1;
a = -1;
b = -1;
}
Addition(int num1,int num2,int a,int b){
this.num1 = num1;
this.num2 = num2;
this.a = a;
this.b = b;
}
static void sum(){
//System.out.println("Sum of 4 numbers is: "+(num1+num2+a+b)); /*static method can’t access static vars */
System.out.println("Sum of 'num1' and 'num2' is: "+(num1+num2));
System.out.println();
}
void add(){
System.out.println("Addition of 4 numbers is: "+(num1+num2+a+b));
System.out.println();
}
}
class AditionDemo1{
public static void main(String args[]){
System.out.println();
System.out.println("Static method sum() called without creating any object");
System.out.println("------------------------------------------------------");
Addition.sum();
Addition ad1 = new Addition();
System.out.println("Static Method sum() is invoked second time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Non-Static Method add() is invoked using Object ad1");
System.out.println("-----------------------------------------------");
ad1.add();
Addition ad2 = new Addition(10,20,30,40);
System.out.println("Static Method sum() is invoked second time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Non-Static Method add() is invoked using Object ad2");
System.out.println("-----------------------------------------------");
ad2.add();
System.out.println("Static Method sum() is invoked third time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Static Method sum() is invoked using Object");
System.out.println("-------------------------------------------");
ad1.sum();
ad2.sum();
}
}

Production

Statique en java

Explication du code Java et de la sortie

Si vous voyez attentivement le code, vous trouvereznous avons pris deux variables statiques et deux variables non statiques qui sont initialisées par deux constructeurs à savoir. l'un est paramétré et un autre par défaut. Nous avons défini une méthode statique et une méthode non statique.

Dans main (), nous avons d'abord invoqué la méthode statique sum () sans créer d'objet Addition Class.

Dans le code, vous pouvez voir que la méthode statique ne peut pas accéder aux variables non statiques. Si vous essayez d'accéder, vous obtiendrez l'erreur suivante, comme nous l'avons obtenu:

Statique en java

Maintenant, si vous voyez, les variables statiques sont uniquement des variables globales. Indépendamment des objets, il a donné le même résultat chaque fois que la méthode statique sum () est invoquée par un objet.

La méthode non statique peut accéder aux variables statiques.

Une méthode non statique peut invoquer des méthodes statiques.

Les méthodes statiques peuvent être appelées avec <classname>. <Static method name> et avec <objectname>. <Static method name> également.

Pour les variables non statiques, chaque objet aura des copies différentes de variables non statiques avec des valeurs différentes pour différents objets.

Ensuite, nous en apprendrons plus sur comment utiliser le mot-clé «this» en Java.

Découvrez des tutoriels plus utiles et des directives définitives sur la programmation Java ici.

commentaires