


La différence entre les propriétés statiques et les propriétés dynamiques en Java
Nov 29, 2019 pm 02:32 PMPourquoi static peut-il être appelé sans créer d'objet ?
Avant la création de l'objet, toutes les propriétés ou méthodes statiques sont placées dans la zone de métadonnées, et les propriétés statiques peuvent être appelées via le nom de la classe.
Par exemple :
public class Cat{ public static String name;//静态的,不创建对象都存在 public String color; //动态的,不创建猫的对象不存在这个属性 }
public class Main{ public static void main(String[] args){ Cat c =new Cat(); c.color = "黑色"; c.name = "喵喵"; Cat c1 = new Cat(); c1.color = "蓝"; System.out.println(c1.name); //正确 这是因为name是静态属性 } }
Partage de vidéos pédagogiques en ligne : Vidéo pédagogique Java
Caractéristiques des propriétés statiques : Tous les objets de cette classe partagent celui-ci Attribut , cet attribut existe toujours si l'objet n'est pas créé, donc lors de la modification de cet attribut, il suffit de le modifier via la classe (Cat.name = "小猫")
Les attributs dynamiques n'existent que dans l'objet créé, et créer uniquement Cette propriété de l'objet existe.
La différence entre les propriétés statiques et les propriétés dynamiques :
L'objet peut être trouvé via la pile, peut-il donc appeler le contenu dans la zone de métadonnées ? ——Oui
Alors, le contenu du tas peut-il être appelé via une classe ? ——Non, car il y a un problème de certitude et d'incertitude dans ce processus.
Appelez le contenu de la zone de métadonnées via la classe. Étant donné que l'objet est dynamique, l'appel d'éléments statiques peut garantir que les éléments statiques doivent exister lors de l'appel. static Lorsque vous appelez quelque chose de dynamique dans le tas, il n'est pas certain que l'objet dynamique doive exister.
Ainsi, le dynamique peut appeler le statique, mais le statique ne peut pas appeler le dynamique.
public class Cat{ public static String name;//静态的,不创建对象都存在 public String color; //动态的,不创建猫的对象不存在这个属性 public Cat(){ } public void foo(){ color = "黑";//正确 name = "喵喵";//正确,一定可以调用静态的 } public static void test(){ color = "黑"; //错误,静态方法无法调用动态的属性 name = "小喵";//正确 foo();//动态的不一定存在 Cat c = new Cat(); c.foo(); //这时再能调用 } }
Pour plus d'articles et de didacticiels connexes, veuillez visiter : Commencer à apprendre Java
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Deepseek Quelle est la différence entre la version R1 et V3

Résumé des FAQ pour une utilisation profonde

Break or Return of Java 8 Stream Forach?

Quelle est la différence entre le trading pré-commercial et après-marché? Explication détaillée des différences entre le pré-commercialisation et le trading après le marché

Pourquoi Bittensor est-il le 'Bitcoin' sur la piste AI?

Y a-t-il une différence entre le bitcoin sud-coréen et le bitcoin domestique?

Programme Java pour trouver le volume de la capsule
