2. Similitudes et différences entre les classes Java et les structures du langage C
Nous pouvons constater que les classes en Java sont en fait très similaires aux structures du langage C, alors quelles sont les différences entre elles ?
La structure du langage C est l'empaquetage des données. Regrouper un ensemble de données conceptuellement liées pour faciliter le traitement global. Le monde extérieur peut lire et écrire ces données à volonté
Les objets Java peuvent être des packages de données ou de responsabilités
2 Les emplacements de stockage sont différents
Les structures du langage C peuvent être stockées sur la pile ou exister sur le tas
Les objets Java. ne peut exister que sur le tas
3 Classes et instanciation de classes
Les membres d'une classe peuvent inclure les éléments suivants : des champs, des méthodes, des blocs de code, des classes et des interfaces internes, etc.
Déclarer une classe équivaut en fait à personnaliser un nouveau type, un type référence
Déclaration d'une classe
Basique formulaire :
nom de la classe {Champ (variable/propriété membre);
Méthode (méthode membre);}Éléments de la classe : attributs (à l'intérieur du classe, en dehors de la méthode)
La classe ici est le mot-clé de la classe
Méthodes dans la classe : méthodes membres
L'exemple suivant :
public class Dog { public String name; public int age; public void bark() { System.out.println("汪汪"); } }
Grâce au code ci-dessus, une classe de chien est créée, avec deux attributs : nom et âge, et le comportement est appelé
Le public devant la propriété est un objet instancié sans ajouter de statique
devant la méthode du modificateur d'accès
Les membres suivent les règles de valeur par défaut
Règles de valeur par défaut : déformation de 0
Type de référence. : null
boolean: false
char: 'u0000' (caractère nul)
Instanciation de la classe
class Dog { public String name; public int age; public boolean are; public static int a; public void bark() { System.out.println("汪汪"); } } public class Practice { public static void main(String[] args) { Dog dog = new Dog(); // 实例化一个对象 System.out.println(dog.are); // 通过.来访问 } }
Ici, un objet est instancié via new, et la référence de l'objet est utilisée. les variables sont utilisées pour accéder aux variables membres et les méthodes ordinaires sont accessibles via la référence de l'objet
sont définies à l'intérieur de la classe, en dehors de la méthode, ajoutez une modification statique
.class Dog { public String name; public int age; public boolean are; public static int a; // 静态属性 public void bark() { System.out.println("汪汪"); } }
Remarque : les propriétés statiques suivent toujours les règles de valeur par défaut
Comment accéder :
Vous devez savoir que les variables membres statiques n'appartiennent pas à des objets, mais à des classes, nous ne pouvons donc pas y accéder via un objet Les variables membres sont accessibles via les noms de classe. Les propriétés statiques sont accessibles via des méthodes statiques, et les méthodes statiques sont accessibles via les noms de classe
Comme suit :
System.out.println(Dog.a);
Exemple d'erreur :
System.out.println(dog.a);
Vous n'avez pas besoin d'un objet pour accéder au statique. propriétés de la classe, vous pouvez y accéder directement
Remarque :
Les propriétés statiques existent dans la zone de méthode
Peu importe le nombre d'objets nouveaux, il n'y a qu'une seule copie des propriétés statiques
Vous Vous ne pouvez pas accéder aux valeurs des données membres non statiques à l'intérieur d'une méthode statique, et vous ne pouvez pas non plus appeler des méthodes non statiques
Les méthodes statiques ne dépendent pas des objets
Quatre méthodes de construction
Allouer de la mémoire pour l'objet
Appeler le constructeur approprié
Lorsque nous utilisons new pour instancier l'objet, le constructeur sera automatiquement appelé pour terminer l'opération d'initialisation
Aucune déclaration de type de valeur de retour
Chaque classe a au moins un constructeur (lorsqu'elle n'est pas définie, le système génère automatiquement un constructeur sans paramètre)
Ce qui suit code:
class Dog { public String name; public int age; public boolean are; public static int a; public Dog() { } public Dog(String name) { this.name = name; } public void bark() { System.out.println("汪汪"); } } public class Practice { public static void main(String[] args) { Dog dog = new Dog("旺财"); System.out.println(dog.name); } }
.
On peut donc voir que le constructeur appelé dépend des paramètres passés dans newRemarque :
Lorsqu'il n'y a pas de constructeur dans la classe, le système remplira automatiquement une méthode de constructeur sans paramètre, mais lorsque vous écrivez le constructeur vous-même, vous ne compenserez pas le constructeur sans argument. Si vous devez utiliser le constructeur sans argument, vous devez l'écrire manuellement. Le constructeur prend également en charge la surcharge. Dans de nombreux cas, quelqu'un peut penser à tort qu'il s'agit de l'objet actuel, mais en fait il s'agit d'une référence à l'objet actuel
Pourquoi ce n'est pas un objet, mais une référence :
Nous devons savoir que la méthode constructeur est utilisée pour créer un objet, donc pendant le processus d'appel de la méthode constructeur pour créer un objet, l'objet n'existe toujours pas. D'où vient l'idée d'un objet
Nous pouvons donc accéder aux propriétés, aux méthodes membres et aux constructeurs via cela (lors de l'appel du constructeur, il ne peut être placé que sur la première ligne, ne peut être écrit que dans le constructeur, et ne peut être utilisé qu'une seule fois)
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!