JavaSE - focalisation sur les classes et les objets

ced485cbb11e458d81a746890b32cf3f.gif

Auteur: Rukawa Maple Knock Code

Page d' accueil du blog : Blog de Rukawa Kaede

Chronique : Apprendre java avec moi

Citation : Restez affamé, restez stupide

Si vous voulez faire de bonnes choses, vous devez d'abord affûter vos outils. Laissez-moi vous présenter un outil super puissant pour gagner des offres de grands fabricants - Niuke.com

Cliquez pour vous inscrire gratuitement et effleurez les questions avec moi  

Annuaire d'articles

1. Orienté objet et orienté processus

2. Notes sur les cours

3. Instanciation de classe

4. cette référence

5. Constructeur

6. Emballage

7. Sacs


1. Orienté objet et orienté processus

Orienté processus : analyser les étapes nécessaires pour résoudre un problème, puis mettre en œuvre ces étapes avec de nombreuses fonctions

Avantages : performances supérieures à celles orientées objet , car les appels de classe doivent être instanciés, la surcharge est relativement importante et les ressources sont consommées ; par exemple, le développement monopuce, embarqué, Linux/Unix, etc. adopte généralement le développement orienté processus , et la performance est le facteur le plus important.
Inconvénients : non Orienté objet, facile à entretenir, facile à réutiliser, facile à étendre

Orienté objet : décompose la transaction qui constitue le problème en divers objets. Le but de la création d'un objet n'est pas de terminer une étape, mais de décrire le comportement de quelque chose dans l'ensemble de l'étape de résolution du problème.

Avantages : maintenance, réutilisation et extension faciles. En raison des caractéristiques d'encapsulation, d'héritage et de polymorphisme orientés objet, un système à faible couplage peut être conçu, ce qui rend le système plus flexible et plus facile à gérer
. Inconvénients : performances inférieures à orienté processus

Orienté objet est un degré élevé d'abstraction physique, et orienté processus est une programmation descendante

L'orientation objet est une sorte d'idée de résolution de problèmes, qui repose principalement sur l'interaction entre les objets pour accomplir une chose. L'orientation processus ressemble à la manière traditionnelle de laver les vêtements. L'ensemble du processus ne peut résoudre ce problème sans un lien. L'écriture de code de cette manière sera plus difficile à développer ou à maintenir à l'avenir, tandis que l'orientation objet ressemble davantage au lavage moderne. Dans le processus de vêtements, nous pouvons abstraire quatre objets, à savoir : les personnes, les vêtements, la lessive en poudre et les machines à laver. Le processus de lavage des vêtements est complété par l'interaction entre les quatre objets, et les gens n'ont pas besoin de se soucier du processus. de laver les vêtements.

L'orienté processus et l'orienté objet ne sont pas un langage, mais une méthode de résolution de problèmes. Il n'y a pas de bon ou de mauvais, et ils ont tous leurs propres scénarios d'application particuliers.

Java est un pur langage orienté objet (Object Oriented Program, héritant de la POO), dans le monde orienté objet, tout est objet

2. Notes de cours

Une classe est utilisée pour décrire une entité (objet), décrivant principalement les attributs (taille d'apparence, etc.) de l'entité (objet)

Format de définition de classe :

class ClassName{
    field; //字段(属性)或者成员变量
    method; //行为或者成员方法
}

class est un mot clé pour définir une classe, ClassName est le nom de la classe et {} est le corps de la classe

Ce qui est contenu dans une classe s'appelle un membre de la classe

Les attributs sont principalement utilisés pour décrire des classes, appelés attributs de membre de classe ou variables de membre de classe

La méthode décrit principalement les fonctions de la classe, qui s'appelle la méthode membre de la classe

Précautions:

Faites attention à l'utilisation d'un grand boîtier de chameau pour les noms de classe

Avant de définir les membres, la méthode d'écriture est unifiée en public

Généralement, une seule classe est définie dans un fichier

La classe où se trouve la méthode principale doit généralement être modifiée avec public (Remarque : Eclipse trouvera la méthode principale dans la classe publique modifiée par défaut)

 La classe modifiée par public doit avoir le même nom que le fichier

Ne modifiez pas facilement le nom de la classe modifiée par public. Si vous souhaitez le modifier, modifiez-le via les outils de développement.

3. Instanciation de la classe

Reconnaître l'instanciation :

Le processus de création d'un objet avec un type de classe est appelé instanciation d'une classe. En Java, le nouveau mot-clé est utilisé et l'objet est instancié avec le nom de la classe.

Le nouveau mot clé est utilisé pour créer une instance d'un objet

Utilisez . pour accéder aux propriétés et aux méthodes des objets

Plusieurs instances de la même classe peuvent être créées

Description de la classe et de l'objet :

1. Une classe est une chose semblable à un modèle, qui est utilisée pour décrire une entité et définit quels membres de la classe sont

2. Une classe est un type personnalisé qui peut être utilisé pour définir des variables

3. Une classe peut instancier plusieurs objets. Les objets instanciés occupent l'espace physique réel et stockent les variables membres de la classe.

4. Les objets instanciés par une classe ressemblent à la construction d'une maison à l'aide de dessins de conception architecturale. Une classe est comme un dessin de conception. Elle ne conçoit que ce qui est nécessaire, mais il n'y a pas de bâtiment physique. De même, une classe n'est qu'une conception, instancié Seuls les objets exportés peuvent réellement stocker des données, occupant de l'espace physique

4. cette référence

variable de membre this.

this. accéder aux variables membres

this(); constructeur d'accès

Voyons une question : 

Le nom du paramètre formel est accidentellement le même que le nom de la variable membre :

public class Test {
    public int year;
    public int month;
    public int day;
    public void setDay(int year,int month,int day){
        year = year;
        month = month;
        day = day;
    }
    public void printDay(){
        System.out.println(year+"-"+month+"-"+day);
    }
    public static void main(String[] args) {
        Test test = new Test();
        test.setDay(2022,7,25);
        test.printDay();
    }
}

 La méthode setDay a été appelée dans la méthode main et a passé des paramètres, et printDay n'imprime pas la date. Cela est dû au fait que la variable locale est prioritaire, mais que le paramètre formel est affecté à lui-même, et non à la variable membre. À ce moment, utilisez ceci

public class Test {
    public int year;
    public int month;
    public int day;
    public void setDay(int year,int month,int day){
        this.year = year;
        this.month = month;
        this.day = day;
    }
    public void printDay(){
        System.out.println(year+"-"+month+"-"+day);
    }
    public static void main(String[] args) {
        Test test = new Test();
        test.setDay(2022,7,25);
        test.printDay();
    }
}

500

 cette citation:

Pointe vers l'objet actuel (l'objet qui appelle la méthode membre lorsque la méthode membre s'exécute) et toutes les opérations de variable membre dans la méthode membre sont accessibles via cette référence. C'est juste que toutes les opérations sont transparentes pour l'utilisateur, c'est-à-dire que l'utilisateur n'a pas besoin de le passer et que le compilateur le complète automatiquement

Fonctionnalités référencées par ceci :

1. Le type de ceci : la référence de type de classe correspondante, c'est-à-dire quel objet est appelé est le type de référence de quel objet

2. cela ne peut être utilisé que dans les "méthodes membres"

3. Dans la "méthode membre", cela ne peut faire référence qu'à l'objet courant et ne peut plus faire référence à d'autres objets

4. c'est le premier paramètre caché de la "méthode membre", et le compilateur le passera automatiquement.Lorsque la méthode membre est exécutée, le compilateur sera chargé de passer la référence de l'objet de la méthode membre appelante à la méthode membre, et c'est responsable de la réception, comme l'image:

5. Constructeur

Lors de la définition d'une variable locale dans une méthode Java, elle doit être initialisée, sinon la compilation échouera

Un constructeur (également appelé constructeur) est une méthode membre spéciale dont le nom doit être le même que le nom de la classe. Il est automatiquement appelé par le compilateur lors de la création d'un objet et n'est appelé qu'une seule fois dans le cycle de vie complet de l'objet.

Remarque : La fonction du constructeur est d'initialiser les membres dans l'objet, et il n'est pas responsable de l'ouverture de l'espace pour l'objet

caractéristique:

1. Le nom doit être le même que le nom de la classe

2. Il n'y a pas de type de valeur de retour, et le définir sur void ne fonctionnera pas

3. Il est automatiquement appelé par le compilateur lors de la création de l'objet, et il n'est appelé qu'une seule fois dans le cycle de vie de l'objet (équivalent à la naissance d'une personne, chaque personne ne peut naître qu'une seule fois)

4. Le constructeur peut être surchargé (les utilisateurs fournissent des constructeurs avec des paramètres différents selon leurs propres besoins). Les deux constructeurs suivants ont le même nom et des listes de paramètres différentes, ils constituent donc une surcharge de méthode

public class Test {

    public int year;
    public int month;
    public int day;

    //无参构造方法
    public Test(){
        this.year=1900;
        this.month=1;
        this.day=1;
    }
    //带有三个参数的构造方法
    public Test(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }
}

5. Si l'utilisateur ne le définit pas explicitement, le compilateur générera un constructeur par défaut et le constructeur par défaut généré ne doit avoir aucun paramètre.

public class Test {

    public int year;
    public int month;
    public int day;
    //带有三个参数的构造方法
    public Test(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }
    public void printDate(){
        System.out.println(year+"-"+month+"-"+day);
    }

    public static void main(String[] args) {
        //报错
        Test t = new Test();
        t.printDate();
    }
}

Remarque : Une fois défini par l'utilisateur, le compilateur ne génère plus

Si le compilateur le génère, le constructeur généré est sans paramètre et l'objet créé ici peut également être compilé. La situation réelle est une erreur, donc une fois que l'utilisateur l'a défini, le compilateur ne générera plus le constructeur par défaut.

 6. Dans le constructeur, vous pouvez appeler d'autres constructeurs pour simplifier le code

this(); constructeur d'accès

public class Test {

    public int year;
    public int month;
    public int day;

    public Test() {
        //调用本类中的其他构造方法        
        this(2022,8,4);
        System.out.println("不带参数的构造方法");
    }

    //带有三个参数的构造方法
    public Test(int year, int month, int day) {
        System.out.println("带参数的构造的方法");
        this.year = year;
        this.month = month;
        this.day = day;
    }
    
    public static void main(String[] args) {
        Test t = new Test();

    }
}

 Remarquer:

this(...) doit être la première instruction du constructeur et une erreur sera signalée sur les autres lignes

Un anneau ne peut pas être formé, l'appel de boucle signalera une erreur

public Date(){
    this(1900,1,1);
}
public Date(intyear,intmonth,intday){
    this();
}
/*无参构造器调用三个参数的构造器,而三个参数构造器有调用无参的构造器
形成构造器的递归调用编译报错:Error:(19,12)java: 递归构造器调用*/

7. Dans la plupart des cas, utilisez public pour modifier, et dans des cas particuliers, il sera modifié par private

Remarque : Une fois le code compilé, le compilateur ajoutera toutes ces instructions pour l'initialisation des membres à chaque constructeur.

6. Emballage

Les programmes orientés objet ont trois caractéristiques principales : l'encapsulation, l'héritage et le polymorphisme. La phase classe et objet, la recherche principale porte sur les caractéristiques d'encapsulation . Qu'est-ce que l'encapsulation ? En termes simples, ce sont les détails de blindage du boîtier.

Le concept d'encapsulation : combiner de manière organique les données et les méthodes de manipulation des données, masquer les attributs et les détails de mise en œuvre des objets et exposer uniquement les interfaces pour interagir avec les objets

En Java, l' encapsulation est principalement réalisée via des classes et des droits d'accès : les classes peuvent combiner des données et des méthodes d'encapsulation de données, ce qui est plus conforme à la cognition humaine des choses, et les droits d'accès sont utilisés pour contrôler si des méthodes ou des champs peuvent être utilisés directement à l'extérieur. la classe.

Il existe quatre qualificatifs d'accès disponibles en Java :

Non

portée privé défaut protégé Publique
1 même classe dans le même paquet  ✔
2 Différentes classes dans le même forfait
3 Sous-classes dans différents packages
4 Non-sous-classes dans différents packages

public (public): a les droits d'accès les plus étendus et peut accéder à n'importe quelle classe, interface, exception, etc. sous le CLASSPATH. Il est souvent utilisé dans des situations externes, c'est-à-dire sous la forme d'une interface externe d'un objet ou d'une classe

default (par défaut): l'autorisation par défaut lorsque rien n'est écrit, toutes les classes, interfaces, exceptions, etc. sous ce package peuvent accéder les unes aux autres

protected (protected) : modificateur protected, sa fonction principale est de protéger les sous-classes

Privé (privé) : les droits d'accès sont limités à l'intérieur de la classe, ce qui est une manifestation de l'encapsulation. Par exemple, la plupart des variables membres sont décorées avec private, et elles ne veulent pas être accessibles par d'autres classes externes.

Après le nom de modification privé, seule la même classe dans le même package peut être appelée, sinon une erreur sera signalée

Si vous voulez l'appeler dans d'autres classes, vous devez définir la méthode, utilisez la méthode

public class Person {
    private String name;
    public int age;
    public void setName(String name){
        this.name = name;
    }

    public static void main(String[] args) {
        Person person = new Person();
        person.setName("hahaha");
    }
}

Remarque : En général, les variables membres sont définies sur private et les méthodes membres sont définies sur public

 Les méthodes get, set peuvent être générées automatiquement par le compilateur :

7. Sacs

Pour mieux gérer les classes, plusieurs classes sont regroupées dans un groupe appelé package. Un peu comme un répertoire. Par exemple, afin de mieux gérer les chansons dans l'ordinateur, un bon moyen est de mettre les chansons avec les mêmes attributs dans le même fichier, et vous pouvez également classer la musique dans un certain dossier plus en détail.

Un package est l'incarnation du mécanisme d'encapsulation pour les classes, les interfaces, etc. C'est un bon moyen d'organiser les classes ou les interfaces. Par exemple, les classes d'un package ne veulent pas être utilisées par les classes d'autres packages. Les packages ont également un rôle important : les classes portant le même nom sont autorisées à exister dans le même projet, tant qu'elles se trouvent dans des packages différents.

 Forfait personnalisé :

1. Créez un nouveau package dans IDEA : cliquez avec le bouton droit sur src -> Nouveau -> Package

2. Entrez le nom du package dans la boîte de dialogue contextuelle

3. Créez une classe dans le package, cliquez avec le bouton droit sur le nom du package -> Nouveau -> Classe, puis entrez le nom de la classe

4. À ce stade, vous pouvez voir que la structure de répertoires sur notre disque a été automatiquement créée par IDEA

5. Dans le même temps, nous voyons également qu'en haut du fichier Test.java nouvellement créé, une instruction de package apparaît

 paquet commun

1. java.lang : Classes de base couramment utilisées (String, Object) du système, ce package est automatiquement importé de JDK1.1

2. java.lang.reflect : package de programmation de réflexion java

3. java.net : kit de développement de programmation réseau

4. java.sql : package de support pour le développement de bases de données

5. java.util : il s'agit d'un package d'outils (classe de collection, etc.) fourni par java. Il est très important

6. java.io : kit de développement de programmation d'E/S

Joyeux Tanabata à tous ! ! Et moi et Xiao Wang sommes également heureux!

 « Le partage de ce numéro est là, pensez à donner un trois-lien au blogueur, votre soutien est le plus grand moteur de ma création !

ced485cbb11e458d81a746890b32cf3f.gif

Je suppose que tu aimes

Origine blog.csdn.net/chenchenchencl/article/details/126159789
conseillé
Classement