Maison >Java >javaDidacticiel >Une comparaison simple du mot-clé static en C++ et Java
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.
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 + " 个对象"); } }
Sortie :
共创建了2个对象
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; } }
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); // 编译器错误:不能从静态上下文引用非静态变量 } }
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(); } }
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 statiquesContrairement 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--; } }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!