Maison >Java >javaDidacticiel >Notes de réflexion sur la programmation JAVA : Réutiliser les classes

Notes de réflexion sur la programmation JAVA : Réutiliser les classes

(*-*)浩
(*-*)浩avant
2019-10-17 15:59:322167parcourir

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. >

Notes de réflexion sur la programmation JAVA : Réutiliser les classesSyntaxe 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

Notes de réflexion sur la programmation JAVA : Réutiliser les classesNe 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 vierge

La 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 finaux

Permet 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és

Toutes 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 finale

n'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 classe

class 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer