Maison > Java > javaDidacticiel > Une comparaison simple du mot-clé static en C++ et Java

Une comparaison simple du mot-clé static en C++ et Java

青灯夜游
Libérer: 2019-03-14 14:22:11
original
2991 Les gens l'ont consulté

Le mot-clé statique est utilisé presque dans le même but en C++ et Java, mais il existe encore quelques légères différences. L'article suivant vous présentera les similitudes et les différences du mot-clé static en C++ et Java. J'espère qu'il vous sera utile.

Une comparaison simple du mot-clé static en C++ et Java

Les similitudes du mot-clé static en C++ et Java

1. Membres :

En C++ et Java, les membres de données statiques sont des membres de classe et sont partagés entre tous les objets. Par exemple, dans le programme Java suivant, le nombre de variables statiques est utilisé pour compter le nombre d'objets créés.

class Test { 
    static int count = 0; 
  
    Test() {  
       count++;  
    }     
    public static void main(String arr[]) { 
       Test t1 = new Test(); 
       Test t2 = new Test(); 
       System.out.println("共创建了" + count + " 个对象");         
    } 
}
Copier après la connexion

Sortie :

共创建了2个对象
Copier après la connexion

2. Méthodes membres statiques

Les méthodes déclarées statiques en C++ et Java sont des membres de classe et ont les restrictions suivantes :

1), ils ne peuvent appeler que d'autres méthodes statiques. Par exemple, fun() dans le programme suivant n'est pas statique, mais il est appelé dans static main(), donc la compilation échoue.

class Main { 
    public static void main(String args[]) {    
        System.out.println(fun()); 
    }  
    int fun() { 
        return 20; 
    }  
}
Copier après la connexion

2). Seules les données statiques doivent être accessibles.

3), impossible d'accéder à ceci ou super. Par exemple, le programme suivant échoue lors de la compilation.

class Base { 
    static int x = 0;        
}    
  
class Derived extends Base  
{ 
   public static void fun() { 
       System.out.println(super.x); // 编译器错误:不能从静态上下文引用非静态变量
   }    
}
Copier après la connexion

Remarque :

C++ et Java peuvent accéder aux données membres statiques et aux méthodes statiques sans créer d'objet. Ils sont accessibles en utilisant le nom de la classe. Par exemple, dans le programme suivant, le nombre de membres de données statiques et la méthode statique fun() sont accessibles sans aucun objet.

class Test { 
    static int count = 0; 
    public static void fun() {  
       System.out.println("调用了静态方法fun()");  
    }     
}    
       
class Main 
{ 
    public static void main(String arr[]) { 
       System.out.println("Test.count = " + Test.count);         
       Test.fun(); 
    } 
}
Copier après la connexion

La différence entre le mot-clé statique en C++ et Java

1. Contrairement au C++, Java prend en charge un bloc spécial appelé bloc statique (également appelé clause statique) qui peut être utilisé pour l'initialisation statique d'une classe ; ce code à l'intérieur d'un bloc statique n'est exécuté qu'une seule fois.

2. Variables locales statiques

Contrairement au C++, Java ne prend pas en charge les variables locales statiques. Par exemple, le programme Java suivant échoue lors de la compilation.

Tutoriels vidéo associés recommandés : "
class Test { 
   public static void main(String args[]) {  
     System.out.println(fun()); 
   }  
   static int fun()  { 
     static int x= 10; //编译器错误:不允许静态局部变量
     return x--; 
   } 
}
Copier après la connexion
Tutoriel Java

", "Tutoriel C++" Ce qui précède représente l'intégralité du contenu de cet article J'espère que cela sera utile à l'étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal