Génération d'instances de classe Java, partie 2

À propos de la rédaction d'un article

Je ne fais pas référence aux diapositives de classe, donc je pense que c'est expliqué sous un angle différent. Peut-être que je le dis (devrait).

S'il vous plaît laissez-moi savoir si vous pouvez faire une erreur car il s'agit d'une librairie publicitaire!

Il se compose de 4 parties

Part.1 Créons une instance Part.2 Cleaner avec constructeur ← Imakoko Part.3 Contrôlons l'accès et limitons la valeur entrante Part.4 Essayez d'utiliser des variables / méthodes de classe

Attache

Dans la partie 1, j'ai écrit une carte d'étudiant numérique en tant que classe et créé la carte d'étudiant de Tanaka-kun et Noguchi-kun comme exemple. Je continuerai également à utiliser ce code cette fois-ci.

DigitalStudentCard.java


class DigitalStudentCard{
  //Numéro d'étudiant
  int num;

  //Nom
  String name;

  //Méthode de sortie (obtenir une auto-introduction)
  String getSelfIntroduction(){
    return "Numéro d'étudiant: " + num + "Nom: " + name);
  }
}
class UseClass{
  public static void main(String[] args){

    //Génération d'instance
    DigitalStudentCard tanaka = new DigitalStudentCard();

    //Attribuer à la variable d'instance
    tanaka.num = 118114;
    tanaka.name = "Kakuei Tanaka";


    //Créer une autre instance
    DigitalStudentCard noguchi = new DigitalStudentCard();

    //Affecter à la variable de l'instance nouvellement créée
    noguchi.num = 118514;
    noguchi.name = "Hideyo Noguchi";

    //production
    System.out.println(tanaka.getSelfIntroduction);
        //Numéro d'étudiant:118114 Nom:Kakuei Tanaka

    System.out.println(noguchi.getSelfIntroduction);
        //Numéro d'étudiant:118514 Nom:Hideyo Noguchi
  }
}

Cette fois, utilisons un constructeur </ b> pour écrire ces codes plus intelligemment.

Qu'est-ce qu'un constructeur?

Un constructeur est une méthode qui n’est appelée qu’une seule fois lors de la création d’une instance </ b>. C'est comme si la fonction void setup () de Processing était une fonction qui n'est exécutée qu'une seule fois au démarrage de l'application.

Il est utilisé lorsque vous souhaitez insérer une valeur ensemble lors de la création d'une instance.

j'écrirai

Essayez d'ajouter un constructeur à DigitalStudentCard. C'est ennuyeux de le mettre plus tard, vous pouvez donc définir num et name lors de la création d'une instance

Le constructeur peut être implémenté en écrivant simplement le nom de la classe tel quel </ b>. Si vous souhaitez recevoir un argument, vous pouvez écrire un argument formel de la même manière qu'une méthode.

DigitalStudentCard.java


class DigitalStudentCard{
  //Numéro d'étudiant
  int num;

  //Nom
  String name;

  //constructeur
  DigitalStudentCard(int num, String name){
    //Argument num à l'instance num(this.num)Remplacer par
    this.num = num;

    //Aussi
    this.name = name;
  }

  //Méthode de sortie (obtenir une auto-introduction)
  String getSelfIntroduction(){
    return "Numéro d'étudiant: " + num + "Nom: " + name);
  }
}

Lorsque vous l'utilisez, donnez un argument à new DigitalStudentCard ().

class UseClass{
  public static void main(String[] args){

    //Génération d'instance
    DigitalStudentLicense tanaka = new DigitalStudentCard(118114, "Kakuei Tanaka");

    //Créer une autre instance
    DigitalStudentLicense noguchi = new DigitalStudentCard(118514, "Hideyo Noguchi");

    //production
    System.out.println(tanaka.getSelfIntroduction);
        //Numéro d'étudiant:118114 Nom:Kakuei Tanaka

    System.out.println(noguchi.getSelfIntroduction);
        //Numéro d'étudiant:118514 Nom:Hideyo Noguchi
  }
}

En utilisant le constructeur, j'ai pu raccourcir encore plus le code.

Au fait

Comme le constructeur peut être surchargé comme la méthode, vous pouvez en écrire plusieurs et brancher le processus.

DigitalStudentCard.java


class DigitalStudentCard{
  //Numéro d'étudiant
  int num;

  //Nom
  String name;

  //constructeur
  DigitalStudentCard(int num, String name){
    //Argument num à l'instance num(this.num)Remplacer par
    this.num = num;

    //Aussi
    this.name = name;
  }

  DigitalStudentCard(){
    //Part.Rendre possible de l'utiliser de la même manière que 1.
  }

  //Méthode de sortie (obtenir une auto-introduction)
  String getSelfIntroduction(){
    return "Numéro d'étudiant: " + num + "Nom: " + name);
  }
}

la prochaine fois

Ensuite, accédons aux modificateurs! Suivant → Part.3 Contrôler l'accès pour limiter les valeurs entrantes