La réutilisation du code est l'une des nombreuses fonctionnalités intéressantes de Java. Mais pour qu'un langage soit révolutionnaire, il ne suffit pas de pouvoir copier du code et de le modifier ; il doit être capable de faire plus. >
Syntaxe de composition
Placez simplement la référence de l'objet dans la nouvelle classe
Initialisez la référence Où les objets sont définis . , ils peuvent toujours être initialisés avant l'appel du constructeur Dans le constructeur d'une classe juste avant que les objets ne soient utilisés, --- Initialisation paresseuse . Initialisation de l'instance Syntaxe d'héritage À moins qu'il ne soit explicitement indiqué que vous souhaitez hériter d'autres classes, vous héritez implicitement de la classe racine standard de Java Object hérite.Initialiser la classe de base
Proxy
Le langage Java ne prend pas directement en charge les proxys.
Choisissez entre les collections et l'héritage
La composition et l'héritage permettent de placer des sous-objets dans une nouvelle classe. La composition se fait explicitement, l'héritage se fait implicitement
mot-clé protégé <.>
est privé en ce qui concerne l'utilisateur de la classe, pour toute classe dérivée qui hérite de cette classe ou de tout autre élément de la même classe. Pour les classes du package, il est accessible. Transformation vers le haut
Votre classe exportée est convertie en accumulation et se déplace vers le haut sur le graphique d'héritage, devenant Upcasting.
L'upcasting est une conversion d'un type plus spécialisé vers un type plus type général, donc il est toujours sûr.
mot-clé final
Ne peut pas être modifié
données finales
Un champ à la fois statique et final n'occupe qu'un espace de stockage qui ne peut pas être modifié.
Pour les types de base, les valeurs finales sont constantes. final rend la référence constante. Une fois qu'une référence est initialisée pour pointer vers un objet, elle ne peut pas être modifiée pour pointer vers un autre objet.
Java le fait. ne fournit pas de moyen de rendre un objet immuable.
Cette restriction s'applique également aux tableaux, qui sont également des objets.
Par convention, les champs à la fois statiques et finaux seront exprimés en lettres majuscules , avec des traits de soulignement séparant chaque mot.
Finale viergeLa soi-disant finale vierge signifie qu'il est déclaré Un champ qui est final mais n'a aucune valeur initiale donnée.
Dans tous les cas, le compilateur s'assure qu'un final vierge doit être initialisé avant utilisation.
paramètres finauxPermet de déclarer le paramètre final dans la liste des paramètres. Cela signifie que vous ne pouvez pas modifier l'objet pointé par la référence du paramètre dans la méthode.
méthode finale
1 Verrouillez la méthode pour empêcher. toute classe héritée de modifier sa signification.
2 Efficacité, au début de l'implémentation, si vous spécifiez une méthode comme finale, vous acceptez que tous les appels aux méthodes soient convertis en appels en ligne.
Mots-clés final et privésToutes les méthodes privées d'une classe sont implicitement désignées comme finales
Puisque la méthode privée ne peut pas être utilisée, elle ne peut pas. être remplacé. Vous pouvez ajouter le modificateur final à la méthode privée, mais cela n'ajoute aucune signification supplémentaire à la méthode.
"Override" ne se produit que lorsqu'une méthode fait partie de la méthode. interface d'une classe de base.
Doit convertir un objet en son type de base et appeler la même méthode.
La classe finalen'est pas autorisée à être hérité et n'a pas de sous-classes.
Toutes les méthodes de toutes les classes finales sont implicitement désignées comme finales et ne peuvent pas être remplacées.
Initialisation et chargement de classeclass Insect { private int i = 9 ; protected int j ; Insect(){ System.out.println("Insect constructor."); System.out.println("i= "+i+", j="+j); j = 39 ; } static int printInit(String s){ System.out.println(s); return 47 ; } } public class Beetle extends Insect { private int k = printInit("Beetle.k initialized . "); public Beetle(){ System.out.println("k = "+ k); System.out.println("j = " + j); } private static int x2 = printInit("static Beetle.x2 initialized ") ; public static void main(String[] args) { System.out.println("Beetle constructor."); Beetle b = new Beetle(); } } 输出: static Beetle.x2 initialized Beetle constructor. Insect constructor. i= 9, j=0 Beetle.k initialized . k = 47 j = 39
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!