Java-Class Instance Generation Part.4

Informationen zum Schreiben eines Artikels

Ich beziehe mich nicht auf Klassenfolien, daher denke ich, dass dies aus einer anderen Perspektive erklärt wird. Vielleicht sage ich es (sollte).

Bitte lassen Sie mich wissen, wenn Sie einen Fehler machen können, da es sich um eine Ad-lib handelt!

Es besteht aus 4 Teilen

Teil 1 Erstellen wir eine Instanz Teil 2 Reiniger mit Konstruktor Teil 3 Kontrollieren Sie den Zugriff und begrenzen Sie eingehende Werte Teil 4 Verwenden Sie Klassenvariablen / -methoden ← Imakoko

Leine

Im vorherigen Teil wurden Zugriffsmodifikatoren verwendet, um den Zugriff von außerhalb der Klasse einzuschränken.

class DigitalStudentCard{
  //Schülernummer
  private int num;

  //Name
  private String name;

  //Konstrukteur
  DigitalStudentCard(int num, String name){
    //Argument num zu Instanznummer(this.num)Ersatz für
    this.num = num;

    //Ebenfalls
    this.name = name;
  }

  //Methode für die Ausgabe (Selbsteinführung erhalten)
  String getSelfIntroduction(){
    return "Schülernummer: " + num + "Name: " + name);
  }
}

Mit dem Zugriffsmodifikator "privat" kann nur innerhalb der Klasse auf Variablen und Methoden zugegriffen werden. Durch Einschränken des Zugriffs können Sie Getter / Setter erstellen, Regeln beim Ändern von Werten erstellen oder Wertänderungen zunächst verhindern.

Was ist statisch?

Es scheint, dass "statisch" "statisch" bedeutet, wenn es ins Japanische übersetzt wird. Es ist nicht sexuell. </ s>

Es gibt so viele Instanzvariablen und Instanzmethoden wie Instanzen. Statische Variablen und statische Methoden werden nicht oft erstellt, sondern nur eine für eine Klasse.

Sie müssen keine Instanz erstellen, wenn Sie auf eine statische Methode oder Variable verweisen. </ b> Sie können es wie "Klassenname.Variablenname", "Klassenname.Methodenname ()" nennen.

ich werde schreiben

Erstellen Sie eine neue CardManager-Klasse, die die Anzahl der ausgestellten Studentenausweise zählt.

CardManager.java


class CardManager{
  static int totalCardCount;
  
  static int getTotalCount(){
    return totalCardCount;
  }

  static void countUpTotalCount(){
    totalCardCount++;
  }
}

Fügen wir also einen Mechanismus hinzu, um dem Konstruktor der Klasse "DigitalStudentCard" mitzuteilen, dass sie ausgegeben wurde.

DigitalStudentCard.java


class DigitalStudentCard{
  //Schülernummer
  private int num;

  //Name
  private String name;

  //Konstrukteur
  DigitalStudentCard(int num, String name){  
    //Argument num zu Instanznummer(this.num)Ersatz für
    this.num = num;

    //Ebenfalls
    this.name = name;

    //Rufen Sie die CardManager-Methoden auf
    CardManager.coutUpTotalCount();
  }

  /*Abkürzung*/
}

Auf diese Weise können Sie die Anzahl der Instanzen der Klasse "DigitalStudentCard" zählen.

class UseClass{
  public static void main(String[] args){
    //Entsprechend instanziieren
    DigitalStudentCard tanaka = new DigitalStudentCard(118114, "Kakuei Tanaka");
    DigitalStudentCard noguchi = new DigitalStudentCard(118514, "Hideyo Noguchi");
    DigitalStudentCard sakamoto = new DigitalStudentCard(118060, "Ryoma Sakamoto");
    DigitalStudentCard oda = new DigitalStudentCard(118010, "Oda Nobunaga");

    //Versuchen Sie, totalCount auszugeben
    System.out.println(CardManager.getTotalCount());
        // 4
  }
}

Apropos

Ich möchte den gleichen Wert an verschiedenen Stellen verwenden! Ich möchte die gleiche Methode anwenden! Was für eine günstige Zeit.

Beispielsweise scheinen Methoden organisiert zu sein, die Zeichenfolgen anordnen, und Methoden, die eine feste Berechnungsverarbeitung durchführen. Wenn Sie es für eine Methode einer Klasse verwenden, die keine Instanzvariable hat, müssen Sie sich nicht die Mühe machen, eine Instanz zu erstellen. Ich denke, das ist gut.

Aber ... seien Sie vorsichtig, da die Verwendung von viel Speicherplatz verschwendet.

Es ist nicht so gut, dass es viele Variablen mit einem großen Umfang oder statische Variablen gibt. Wenn Sie also "das ...?" Denken, sollten Sie eine Neugestaltung in Betracht ziehen.

Recommended Posts