Java, Instanz für Anfänger

Einführung

Dieser Artikel ist ein Memorandum. Obwohl es sich um einen Inhalt auf Referenzebene handelt, lautet der in diesem Artikel zu veröffentlichende Code ~~ ** Der Fehler ** ist das Zentrum. Dies dient dazu, den Teil zu veröffentlichen, der beim Codieren tatsächlich falsch war, und ihn zur Selbstreflexion zu veröffentlichen. ~~ Außerdem werde ich hier nicht auf den tiefen Teil eingehen, da ich ihn später überprüfen werde, während ich auch die Fragen zur Java Silver-Prüfung studiere.

Umgebung

Sprache: Java11, JDK13.0.2 Betriebsumgebung: Windows 10

Beispiel

Ich erinnere mich, dass ich vorher verwirrend über Objekte und Instanzen gesprochen habe, aber ich würde sie gerne noch einmal ansprechen. Bereiten Sie zuerst die "Cat" -Klasse wie gewohnt vor.

Cat.java


class Cat
{
  public static int sumCats = 0;

  private int age;
  private double weight;

  public Cat()
  {
    age = 0;
    weight = 0.0;
    sumCats++;
    System.out.println("Eine neue Katze ist angekommen!");
  }

  public void setCat(int a,double w)
  {
    age = a;
    weight = w;

    System.out.println("Diese Katze ist alt" + age + "Alter, Gewicht" + weight + "Es ist kg.");
  }

  public static void showSumCats()
  {
    System.out.println("Jetzt insgesamt" + sumCats + "Es gibt zwei Katzen.");
  }
}

Stellen Sie sich den Fall vor, in dem zwei Katzen mit dieser Katzenklasse vorbereitet werden.

Im obigen Fall verwenden die beiden Katzen die ** Instanzvariable **, bei der es sich um das jedem Objekt zugeordnete Feld handelt, und die ** Instanzmethode **, bei der es sich um die dem Objekt zugeordnete Methode handelt. Haben. Diese Instanzvariablen und -methoden "werden nach dem Erstellen des Objekts zugänglich ( new) ".

Missverständnisse hatte ich bisher ・ Objekt ≒ Instanz

⇒ Feldmethode für jedes Objekt = Instanzvariablenmethode * neu !! *

Klassenvariablen / Klassenmethoden

Es gibt jedoch einige Elemente (Feldmethoden), die Sie behandeln möchten, bevor das Objekt erstellt wird. Daher können Mitglieder, die der Klasse selbst zugeordnet sind, als statisch deklariert und verwendet werden.

public static void showSumCats () ist Beziehen Sie sich auf die ** Klassenvariable sumCats **, die als public static int sumCats = 0; deklariert ist, und der ** Konstruktor Cat () ** wird jedes Mal aufgerufen, wenn new ausgeführt wird, und er wird automatisch inkrementiert. Es ist geworden. Dies verknüpft "wie oft Katzenobjekte erstellt wurden" mit "Gesamtzahl der Katzen". Da "showSumCats ()" statisch "ist, kann diese Methode auch dann aufgerufen werden, wenn" das Cat-Objekt noch nie erstellt wurde ". Daher kann "0 Katzen" angezeigt werden.

Was ist das.

** Nur innerhalb der Instanzmethoden ** können this.age und this.weight geschrieben werden, um nur die dem Objekt zugeordneten Feldwerte anzugeben. Die Geschichte der lokalen Variablen wird weggelassen.

Am Ende

Wenn Sie nicht genau verstehen, ob die Variablen / Methoden, die Sie in der Hauptfunktion behandeln werden, klassenbezogen oder objektbezogen sind, gibt es hier eine ganze Reihe von Problemen, die auftreten können.

Referenz

Ich schreibe und kompiliere Variablen und Ausdrücke so oft wie möglich selbst. Wenn ich sie also vollständig zitieren möchte, werde ich sie beschreiben.

Easy Java 7th Edition Java SE11 Silver Problem Collection (allgemein bekannt als Kuromoto)

Recommended Posts

Java, Instanz für Anfänger
Java ab Anfänger überschreiben
Java ab Anfänger, Vererbung
Java, Überlastungskonstruktor ab Anfänger
Java für Anfänger, Variablen und Typen
Java ab Anfänger, verschachtelt / Pause / Weiter
Java, if-Anweisung / switch-Anweisung ab Anfänger
Java, für Anweisung / while-Anweisung ab Anfänger
Java ab Anfänger, Klassendeklaration / Objekterzeugung
Java-Leben von vorne anfangen
Java Anfänger 4
Java Anfänger 3
Java Anfänger
Java, abstrakte Klasse für Anfänger
Java, Schnittstelle für Anfänger
IntelliJ ab 1
[Java] Ausnahmeinstanz
Java ab Anfänger, logischer Operator / bedingter Operator
Einführung in Java ab 0 Teil 1
Java-Übung "Anfänger"
Für Java-Ingenieure, die ab sofort Kotlin starten
Rufen Sie Java von JRuby aus auf
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Eval Java-Quelle von Java
Greifen Sie über Java auf API.AI zu
Von Java zu Ruby !!
[Anfänger] Java objektorientiert / Instanzfeld / Instanzmethode / Überladung [Anmerkung 24]
[Java] Plattformen zur Auswahl für die Java-Entwicklung ab sofort (2020)
Migration von Cobol nach JAVA
Progate Java (Anfänger) Review & Zusammenfassung
Elastic Search Indexerstellung aus Java
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
Verwenden von Docker von Java Gradle
Von ineffektivem Java zu effektivem Java
JavaScript von Java aus gesehen
[Anfänger] Java grundlegende "Array" Beschreibung
Führen Sie Nicht-Java-Anweisungen von Java aus
[Java-Zweig] Ändern und Hinzufügen des Verhaltens der Instanz von außen (Proxy Black Magic)
Löse den AtCoder-Anfängerwettbewerb 151 mit Java
Rufen Sie Kotlins versiegelte Klasse von Java aus an
Löse den AtCoder Beginner Contest 150 mit Java
Code Java von Emacs mit Eclim
Löse den AtCoder-Anfängerwettbewerb 153 mit Java
[Java-Anfänger] Über Abstraktion und Schnittstelle
Land von IP-Adresse abrufen (Java)
Führen Sie eine Batchdatei von Java aus
[Java] Entfernen Sie Leerzeichen in Zeichenfolgen
Akka praktische Vorbereitungsprozedur aus Java
[Java-Anfänger] == Operator und Gleiche Methode
Greifen Sie über eine Java-Anwendung auf Teradata zu
Löse den AtCoder-Anfängerwettbewerb 175 mit Java
Verwenden Sie Chrome Headless von Selenium / Java
Java soll ab heute dabei sein
Von Java zu VB.NET-Writing Kontrastmemo-
Löse den AtCoder-Anfängerwettbewerb 160 mit Java
Messen des Instanznutzungsspeichers in Java
Arbeiten Sie mit Google-Tabellen aus Java
Löse den AtCoder-Anfängerwettbewerb 152 mit Java
[Java] So legen Sie den Proxy beim Starten von Java fest