Über die Klassenteilung (Java)

Notwendigkeit einer Klassenteilung

Wenn Sie den folgenden redundanten Code schreiben, verschlechtert sich die Lesbarkeit. Dies liegt daran, dass der Ausführungsteil und der Logikteil in derselben Datei beschrieben werden. In diesem Artikel wird die Vorgehensweise zum Aufteilen des Ausführungsteils in die Hauptklasse und des Logikteils in die Personenklasse in der folgenden Reihenfolge beschrieben.

  1. Definition der Personenklasse
  2. Verschieben Sie die Methode des Logikteils in die Person-Klasse
  3. Geändert, um die Methode der Personenklasse aufzurufen

Main.java


public class Main {
  public static void main(String[] args) {
    printData(fullName("Kate", "Jones"), 27, 1.6, 50.0);
    printData(fullName("John", "Christopher", "Smith"), 65, 1.75, 80.0);
  }
  
  public static void printData(String name, int age, double height, double weight) {
    System.out.println("mein Name ist" + name + "ist");
    System.out.println("Alter ist" + age + "ich bin alt");
    System.out.println("Wie groß bist du" + height + "m");
    System.out.println("Gewicht" + weight + "kg");

    double bmi = bmi(height, weight);
    System.out.println("BMI" + bmi + "ist");

    if (isHealthy(bmi)) {
      System.out.println("Standardwert");
    } else {
      System.out.println("Außerhalb des Standardwertbereichs");
    }
  }

  public static String fullName(String firstName, String lastName) {
    return firstName + " " + lastName;
  }

  public static String fullName(String firstName, String middleName, String lastName) {
    return firstName + " " + middleName + " " + lastName;
  }
  
  public static double bmi(double height, double weight) {
    return weight / height / height;
  }

  public static boolean isHealthy(double bmi) {
    return bmi >= 18.5 && bmi < 25.0;
  }
}

Definition der Personenklasse

Die obige Main.java wird mit der folgenden Konfiguration beschrieben.

Erstellen Sie zunächst Person.java und definieren Sie die Person-Klasse

Person.java


 class Person {
}

Verschieben Sie die Logikteilmethode in die Personenklasse

Verschieben Sie als Nächstes den logischen Teil der Hauptklasse in die Person-Klasse.

--Logischer Teil --printData Methode --fullName Methode --bmi Methode

Person.java


 class Person {
   public static void printData(String name, int age, double height, double weight) {
    System.out.println("mein Name ist" + name + "ist");
    System.out.println("Alter ist" + age + "ich bin alt");
    System.out.println("Wie groß bist du" + height + "m");
    System.out.println("Gewicht" + weight + "kg");

    double bmi = bmi(height, weight);
    System.out.println("BMI" + bmi + "ist");

    if (isHealthy(bmi)) {
      System.out.println("Standardwert");
    } else {
      System.out.println("Außerhalb des Standardwertbereichs");
    }
  }

  public static String fullName(String firstName, String lastName) {
    return firstName + " " + lastName;
  }

  public static String fullName(String firstName, String middleName, String lastName) {
    return firstName + " " + middleName + " " + lastName;
  }
  
  public static double bmi(double height, double weight) {
    return weight / height / height;
  }

  public static boolean isHealthy(double bmi) {
    return bmi >= 18.5 && bmi < 25.0;
  }
}

Main.java


public class Main {
  public static void main(String[] args) {
    printData(fullName("Kate", "Jones"), 27, 1.6, 50.0);
    printData(fullName("John", "Christopher", "Smith"), 65, 1.75, 80.0);
  }
}

Geändert, um die Methode der Personenklasse aufzurufen

Ich konnte es teilen, aber wenn ich die Hauptklasse so ausführe, wie sie ist, tritt ein Fehler auf. Fügen Sie abschließend der Hauptklasse die folgende Beschreibung hinzu, um die Methode der Person-Klasse aufzurufen.

Main.java


public class Main {
  public static void main(String[] args) {
    Person.printData(Person.fullName("Kate", "Jones"), 27, 1.6, 50.0);
    Person.printData(Person.fullName("John", "Christopher", "Smith"), 65, 1.75, 80.0);
  }
}

Jetzt können Sie es ohne Probleme ausführen.

Recommended Posts

Über die Klassenteilung (Java)
Über die Java-Klasse
Informationen zur Java StringBuilder-Klasse
[Java] Über Singleton Class
Informationen zur Java String-Klasse
Über die abstrakte Klasse von Java
Informationen zu Java Class Loader-Typen
Java-Klasse Variable Klassenmethode
Über die Java-Schnittstelle
Java-Klassenmethoden
[Java] Informationen zu Java 12-Funktionen
[Java] Klassenvererbung
Java-Scanner-Klasse
Java HashMap-Klasse
[Java] Über Arrays
Informationen zur Klassenvererbung.
Java (abstrakte Klasse)
Etwas über Java
Wo ist mit Java?
Informationen zu Java-Funktionen
[Java] Verschachtelte Klasse
Anonyme Java-Klasse
Über Java-Threads
[Java] -Schnittstelle
Informationen zu Java-Arrays
Über Java-Vererbung
Über Schnittstelle, Java-Schnittstelle
[Java] Abstrakte Klasse
[Java] Objektklasse
Lokale Java-Klasse
Über Java Var
Über Java Literal
Informationen zu Java-Befehlen
Informationen zur Java-Protokollausgabe
Informationen zur Java-Funktionsschnittstelle
Java, über zweidimensionales Array
Informationen zur StringBuilder-Klasse
Über [Java] [StreamAPI] allMatch ()
Informationen zur Bindung von Java-Methoden
[Java] Über anonyme Klassen
Informationen zu Aufteilungsmethoden (Java)
Überprüfung der Java-Innenklasse
[Java Silver] Informationen zur Initialisierung
Informationen zur Java-Array-Liste
Über Java-Polymorphismus super ()
[Swing] Über die JFrame-Klasse
Feld für den Java-Klassentyp
Informationen zur Vererbung (Java Silver)
Java-Programmierung (Klassenmethode)
Informationen zu Java-Zugriffsmodifikatoren
Über Java-Lambda-Ausdrücke
Informationen zu Java-Einstiegspunkten
Java 10 Docker-Unterstützung
Persönliche Zusammenfassung über Java
Informationen zum Sortieren der Klasse java.util.Arrays
Java-Programmierung (Klassenstruktur)
[Java] Integer-Wrapper-Klassenreferenz