Efficacité de Java 3rd Edition Chapitre 4 Classes et interfaces

[Effective Java 3rd Edition](https://www.amazon.co.jp/Effective-Java-%E7%AC%AC3%E7%89%88-%E3%], qui est un livre indispensable pour les utilisateurs Java intermédiaires et supérieurs. 82% B8% E3% 83% A7% E3% 82% B7% E3% 83% A5% E3% 82% A2% E3% 83% BB% E3% 83% 96% E3% 83% AD% E3% 83% 83% E3% 82% AF-ebook / dp / B07RHX1K53) a une version Kindle, donc je vais le résumer.

Précédent: Méthodes efficaces du chapitre 3 de Java 3rd Edition communes à tous les objets Suivant: Génériques du chapitre 5 de Java 3e édition efficaces

Point 15 Minimiser l'accessibilité aux classes et aux membres

Classes et interfaces de premier niveau

--Il y a public et package private, et il devrait être package private autant que possible. Parce qu'il ne s'agit plus d'une API publique pour les packages.

Membres (champs, méthodes, classes imbriquées, interfaces imbriquées)

//Faille de sécurité potentielle (le contenu de la baie peut être modifié)
public static final Thing[] VALUES = { ... };

//Solution 1. Renvoie une liste publique immuable
private static final Thing[] PRIVATE_VALUES = { ... };
public static final List<Thing> VALUES = 
  Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES));

//Solution 2. Renvoie une copie du tableau dans la méthode publique
private static final Thing[] PRIVATE_VALUES = { ... };
public static final Thing[] values() { 
  return PRIVATE_VALUES.clone();
}

Élément 16 Dans la classe publique, utilisez la méthode d'accesseur au lieu du champ public.

Point 17 Minimiser la variabilité

Rubrique 18 Sélectionnez la composition de l'héritage

Point 19 Conception et document pour l'héritage, sinon interdire l'héritage

Élément 20 Sélectionnez une interface sur une classe abstraite

Point 21 Concevoir l'interface du futur

Rubrique 22 Utiliser l'interface uniquement pour définir le type

--L'interface, lors de l'implémentation d'une classe, agit comme un type qui peut être utilisé pour référencer cette instance.

Élément 23 Sélectionnez une hiérarchie de classes plutôt qu'une classe balisée

Élément 24 Sélectionnez une classe de membre statique sur une classe de membre non statique

――Quatre types de classes imbriquées --Classe membre statique (classe interne)

classe de membre statique


class Outer {
    private int outerField;
    private static int a;

    //classe de membre statique
    static class Inner {
        void innerMethod() {
            //Uniquement disponible pour les membres de classe externes statiques
            a = 10;
        }
    }

    //Méthodes à l'intérieur de la classe externe
    void outerMethod() {
        Inner ic = new Inner();
    }
}

class Main {
    public static void main(String[] args) {
        // Outer.Utilisé en intérieur
        Outer.Inner ic = new Outer.Inner();
        ic.innerMethod();
    }
}

Classe de membre non statique


class Outer {
    private static int outerField;
    private int b;

    //Classe de membre non statique
    class Inner {
        void innerMethod() {
            outerField = 10;
            b = 5;
        }
    }

    //Méthodes à l'intérieur de la classe externe
    void outerMethod() {
        Inner ic = new Inner();
    }
}

class Main {
    public static void main(String[] args) {
        Outer o = new Outer();
        // o.Utilisé dans le neuf
        Outer.Inner in = o.new Inner();
    }
}

Élément 25 Limiter les fichiers source à une seule classe de premier niveau

Recommended Posts

Efficacité de Java 3rd Edition Chapitre 4 Classes et interfaces
Enum et annotations du chapitre 6 de Java 3rd Edition efficace
Efficace Java 3e édition Chapitre 7 Lambda et Stream
Efficacité de Java 3rd Edition Chapitre 5 Génériques
Méthodes efficaces du chapitre 8 de Java 3rd Edition
Effective Java 3rd Edition Chapitre 2 Création et disparition d'objets
Effective Java 3rd Edition Chapitre 9 Programme Général
Efficace Java 3rd Edition Chapitre 3 Méthodes communes à tous les objets
Ce qui a changé entre la 2e édition effective de Java et la 3e édition
Efficace Java Chapitre 2
Effective Java Chapitre 6 34-35
Effective Java Chapitre 4 15-22
Java efficace Chapitre 3
3ème résumé efficace de Java
java (classe et instance)
Efficacité de Java 3rd Edition Section 85 Choix d'une alternative à la sérialisation Java
[Java] Classe générique et méthode générique
Méthodes et classes abstraites Java
Java et fonctions principales - au-delà de l'interface fonctionnelle -
Java Generics (définit les classes et les méthodes)
Classes et instances Java pour les débutants
Une note sur les différences entre les interfaces et les classes abstraites en Java
Programmation Java (classes et instances, méthodes principales)
[Lire Java efficace] Chapitre 2 Item 7 "Eviter les finaliseurs"
Cours et méthodes abstraits d'histoire d'apprentissage JAVA
[Détails] Maîtrisons les classes abstraites et les interfaces! !!
[Java] Résumé personnel des classes et méthodes (basique)
Traitement parallèle et parallèle dans divers langages (édition Java)
Résumé de l'enquête sur les questions relatives à Java 2e édition efficace
Comprenez la différence entre les classes abstraites et les interfaces!
[Lire Java efficace] Chapitre 3 Item 10 "Always Override toString"
Différences dans l'écriture des classes Java, C # et Javascript
J'ai essayé d'expliquer Effective Java 3rd Edition "presque tous les chapitres" en "japonais facile à lire".
Java et JavaScript
XXE et Java
[Lire Java efficace] Chapitre 2 Item 6 "Supprimer les références d'objets obsolètes"
Classes et instances Java comprises dans la figure
Comparaison équivalente de la classe wrapper Java et du type primitif
Mises à jour des notes personnelles en vigueur de Java Third Edition 2nd Edition
J'écrirai un extrait de ce que j'ai trouvé intéressant en lisant Effective Java 3rd Edition