En termes d'utilisation de mots-clés, nous connaissons déjà la méthode statique. Afin d'éviter des erreurs inutiles lors de son utilisation, chacun doit comprendre son champ d'utilisation. Cet article divise les points à noter lors de l'utilisation de static en deux aspects, l'un est la portée de l'accès et l'autre est la note sur l'invocation de méthode. Jetons un coup d'œil aux points complets à noter lors de l'utilisation de static.
1. Lorsque vous utilisez des méthodes statiques, vous ne pouvez accéder qu'aux propriétés et méthodes déclarées statiquement, mais les propriétés et méthodes non déclarées statiquement ne sont pas accessibles.
paquet com.jk.ref ; classe Personnes{ Nom de la chaîne ; private static String country="Chine" ; personnes publiques (nom de la chaîne) { this.name=nom; } public void tell(){ System.out.println("nom:"+nom+" "+"pays:"+pays); } /** * @retourner le pays */ chaîne statique publique getCountry() { pays de retour ; } /** * @param country le pays à définir */ public static void setCountry (String country) { People.country = pays ; } } classe publique StaticDemo01 { public static void main (String[] arguments) { // TODO Stub de méthode généré automatiquement People.setCountry("shanghai"); Personnes ps1=nouvelles personnes("zhangsan"); //People.country="Shanghai"; ps1.tell(); Personnes ps2=new Personnes("lisi"); // ps2.country="Shanghai"; ps2.tell(); Personnes ps3=nouvelles personnes("wangwu"); // ps3.country="Shanghai"; ps3.tell(); } }
2. La référence de la classe parent ne peut ajuster que les méthodes remplacées de la classe parent et de la classe enfant. Les méthodes portant le même nom de parent et d'enfant ne seront pas écrasées mais masquées.
classe publique TestMain { public static void main (String[] arguments) { Super sup = new Sub(); //Encapsulation (mise en forme vers le haut) sup.m1(); //La référence de la classe parent ne peut pas ajuster la méthode non remplacée de la sous-classe et génère mi dans Super sup.m2();//Appelez la méthode de sous-classe m2, héritez et construisez d'abord la méthode de classe parent, écrasez (réécrivez) la méthode avec le même nom de méthode et affichez m2 dans Sub Sub sub = (Sub)sup; //Unboxing (forme vers le bas) sub.m1(); //Appelle la méthode statique de la sous-classe m1, construis d'abord la méthode de la classe parent, le nom de la méthode est le même, le nom de la méthode est la même méthode de masquage, affiche m2 dans Sub sub.m2();//Appelez la méthode de sous-classe m2, héritez et construisez d'abord la méthode de classe parent, écrasez (réécrivez) la méthode avec le même nom de méthode et affichez m2 dans Sub } } class Super{ //Classe parent public static void m1() { //Méthode statique de classe parent System.out.println("m1 in Super"); } public void m2() { //Méthode de classe parent System.out.println("m2 in Super"); } } class Sub extends Super{ //Sous-classe public static void m1() { //Méthode statique de sous-classe System.out.println("m1 in Sub"); } public void m2() { //Méthode de sous-classe System.out.println("m2 in Sub"); } }
Ce qui précède sont les points à noter lors de l'utilisation de static en Java, veillez à ne pas ignorer ces deux éléments d'utilisation lors d'opérations spécifiques. Il s'agit également d'un point d'erreur courant que les novices rencontrent souvent lors de la pratique.