[Java] Divers résumés joints aux chefs de classe et aux membres

Membre statique

Mettez simplement «statique» au début. L'exemple ci-dessous est une image de plusieurs personnes tenant un portefeuille. Dans ce cas, l'idée est que la classe «Human» a des champs, plutôt que chaque instance Human «h1», «h2» ayant un champ. Les champs statiques sont donc également appelés ** variables de classe **.

Human.java


public class Human{
     static int money=100;
}

Main.java


public class Main{
     public static void main(String[] args){
          //Créer la première instance
          Human h1 = new Human();
          //Créer une seconde instance
          Human h2 = new Human();

          // h1.Réécrire la variable de classe monétaire
          h1.money=200;

          // h2.Afficher la variable monétaire
          System.out.println(h2.money);
          //Puisque l'argent est une variable de classe, il doit être affiché comme 200
     }
}

Les méthodes statiques peuvent être appelées sans créer d'instance. Donc, dans l'exemple ci-dessus, soudainement

Main.java


System.out.println(Human.money);

C'est normal d'écrire quelque chose comme ça. C'est pourquoi la méthode main est une méthode statique.

Encapsulation

Une façon de réaliser l'encapsulation consiste à ajouter des modificateurs d'accès aux classes et aux membres pour définir la visibilité.

--public: Toutes les classes --protected: Classes qui appartiennent au même package que vous ou héritent de vous --packaged private (par défaut): les classes qui appartiennent au même package que vous --private: Seulement votre propre classe

Test.java


public class Test{
     private int i=1;
     public void calc(int j){
          return this.i+j;
     }
}

getter et setter

Définissez le champ sur private et la méthode sur public, et écrivez la manière de base de transmettre des valeurs avec getter et setter.

Test.java


public class Test{
    private int num;

    public int getNum(){
        return this.num;
    }

    public void setNum(int num){
        this.num = num;
    }
}

Héritage / implémentation

--Héritage: ʻexetends`

Héritage (exetends)

Ici, la relation d'héritage de ʻInuShibainu. Notez que la méthode ʻosuwari est abstraite et doit être remplacée par la classe Shibainu.

Inu.java


public abstract class Inu{
    public void ote(){
        System.out.println("Tends ta main gauche");
    }
    
    public abstract void osuwari();
        //Je n'écris rien ici
}

Shibainu.java


public class Shibainu extends Inu{
    public void osuwari(){
        System.out.println("Asseyez-vous sur le sol");
    }

    public void mate(){
        System.out.println("Accepte le riz");
    }
}

Main.java


public class Main{
    public static void main(Strgin[] args){
        Shibainu dog = new Shibainu();

        dog.ote();      //Méthode dérivée d'Inu
        dog.osuwari();  // Inu(←Shibainu)Méthode d'origine
        dog.mate();     //Méthode dérivée de Shibainu
    }
}

Utilisation du ** polymorphisme **

Main.java


Inu dog = new Shibainu();

dog.osuwari();

Vous pouvez aussi le dire.

Dans ce cas, les seules méthodes qui peuvent être appelées sont celles que possède la classe ʻInu. Par conséquent, dog.mate ne peut pas être appelé même si l'instance réellement créée est Shibainu. Lorsque la méthode ʻosuwari est appelée, la méthode de Shibainu est traitée à la place de la méthode de ʻInu`.

En utilisant ce polymorphisme, le traitement suivant peut également être écrit.

Main.java


Inu[] dogs = new Inu[3];

Inu[0] = new Shibainu();
Inu[1] = new Akitaken();
Inu[2] = new Tosaken();

for (Inu d: dogs){
    d.osuwari();
}

C'est très pratique lorsque le contenu de la même méthode mate, comme" s'asseoir sur le sol "," dormir "et" ne pas écouter ", diffère selon la classe.

Implémentations

Deux conditions peuvent faire d'une classe une interface.

"Fondamentalement", c'est parce que seuls les champs (constantes) avec public static final sont autorisés à être déclarés. Cependant, dans ce cas, «public static final» peut être omis.

Déclarez ʻinterface au lieu de class`.

Animal.java


public interface Animal{
    void run();
}

Inu.java


public class Neko implements Animal{
    void run(){
        System.out.println("Courir sur quatre jambes");
    }
}

Puisque l'interface permet plusieurs implémentations

Neko.java


public calss Neko extends Mammal implements Animal, Organic{
    //Il a la classe mammifère, l'interface animale et l'interface organique en tant que parents.
}

Vous pouvez également écrire comme ça. La classe des chats a une classe de mammifères comme parent et a une interface entre les animaux et les substances organiques. Ce n'est pas un très bon exemple.

La beauté de l'interface / méthode abstraite est

Un tel endroit.

Livre de référence

[Introduction à Java 2nd Edition] (https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1-%E6%B8%85%E5%96%AC/dp/484433638X) Pp.332-524

Recommended Posts

[Java] Divers résumés joints aux chefs de classe et aux membres
Classes et instances Java comprises dans la figure
J'ai essayé de résumer les bases de kotlin et java
Commande pour vérifier le nombre et l'état des threads Java
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
J'ai essayé de résumer les méthodes de Java String et StringBuilder
Sortie du livre "Introduction à Java"
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
[Cas d'amélioration Java] Comment atteindre la limite de l'auto-apprentissage et au-delà
J'ai essayé de traduire la grammaire de R et Java [Mis à jour de temps en temps]
À propos de l'idée des classes anonymes en Java
[Java] Résumé personnel des classes et méthodes (basique)
[Java] La partie déroutante de String et StringBuilder
J'ai comparé les caractéristiques de Java et .NET
JAVA: réalise la génération et la numérisation de divers types de codes à barres
Java Bienvenue dans le marais des tableaux bidimensionnels
Différence entre Java, C # et JavaScript (comment trouver le degré d'obésité)
[Java] Comment obtenir l'URL de la source de transition
Les ingénieurs Java comparent maintenant pour apprendre la grammaire de base de Ruby Part 2 (classes, méthodes)
Comment écrire Scala du point de vue de Java
[Java] Types de commentaires et comment les rédiger
Veuillez noter la division (division) de java kotlin Int et Int
La comparaison d'énumération est ==, et equals est bonne [Java]
Convertit le tableau d'erreurs.full_messages en caractères et sortie
Organiser l'état actuel de Java et envisager l'avenir
Langage Java du point de vue de Kotlin et C #
[Java] Comment obtenir la valeur maximale de HashMap
J'ai résumé les types et les bases des exceptions Java
Java: utilisez Stream pour trier le contenu d'une collection
Comparaison équivalente de la classe wrapper Java et du type primitif
java (classe et instance)
Méthode de paramétrage pour lier Java d'Eclipse et Github / septembre 2017
[Pour les débutants] Explication des classes, des instances et des statiques en Java
[Note] Sortie Java de la somme des éléments pairs et impairs
Générer et exécuter le fichier Jar du fichier Java appartenant au package
Je n'ai pas vraiment compris le comportement de Java Scanner et .nextLine ()
Différence entre Java et JavaScript (comment trouver la moyenne)
Accédez à l'abréviation à partir de 5 exemples de listes Java en italique
20190803_Java & k8s sur Azure L'histoire d'aller au festival
Les débutants en Java ont brièvement résumé le comportement de Array et ArrayList
[Java] Pour connaître les informations de type des paramètres de type à l'exécution
Comment dériver le dernier jour du mois en Java
[Java] Utilisez ResolverStyle.LENIENT pour bien gérer la date et l'heure
Je veux implémenter diverses fonctions avec kotlin et java!
L'histoire de la transmission de Java à Heroku à l'aide du pipeline BitBucket
Comment vérifier l'extension et la taille des fichiers téléchargés
Assurez-vous de comparer le résultat Java compareTo avec 0
Réintroduction à Java for Humanities 0: Comprendre l'acte de programmation
[Java] J'ai réfléchi aux mérites et aux utilisations de "interface"
[Java] Classe générique et méthode générique
[Java] Classes, constructeurs, membres statiques
Avantages et inconvénients de Java
Méthodes et classes abstraites Java
Entrée dans la console Java
Lisez les données de Shizuoka Prefecture Point Cloud DB avec Java et essayez de détecter la hauteur de l'arbre.
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
[Swift5] Comment obtenir un tableau et un ensemble de différences entre les tableaux