À propos de la division de classe (Java)

Besoin de division de classe

Si vous écrivez le code redondant suivant, la lisibilité se détériorera. En effet, la partie exécution et la partie logique sont décrites dans le même fichier. Dans cet article, la procédure de division de la partie exécution en classe Main et de la partie logique en classe person est décrite dans l'ordre suivant.

  1. Définition de la classe Person
  2. Déplacez la méthode de la partie logique vers la classe Person
  3. Changé d'appeler la méthode de la classe Person

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("mon nom est" + name + "est");
    System.out.println("L'âge est" + age + "je suis vieux");
    System.out.println("Quelle est votre taille" + height + "m");
    System.out.println("Poids" + weight + "kg");

    double bmi = bmi(height, weight);
    System.out.println("IMC" + bmi + "est");

    if (isHealthy(bmi)) {
      System.out.println("Valeur standard");
    } else {
      System.out.println("Hors de la plage de valeurs standard");
    }
  }

  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;
  }
}

Définition de la classe Person

Le fichier Main.java ci-dessus est décrit avec la configuration suivante.

--Partie d'exécution

Tout d'abord, créez Person.java et définissez la classe Person

Person.java


 class Person {
}

Déplacer la méthode de la partie logique vers la classe Person

Ensuite, déplacez la partie logique de la classe principale vers la classe Person.

--Partie logique --printData, méthode --fullName méthode

Person.java


 class Person {
   public static void printData(String name, int age, double height, double weight) {
    System.out.println("mon nom est" + name + "est");
    System.out.println("L'âge est" + age + "je suis vieux");
    System.out.println("Quelle est votre taille" + height + "m");
    System.out.println("Poids" + weight + "kg");

    double bmi = bmi(height, weight);
    System.out.println("IMC" + bmi + "est");

    if (isHealthy(bmi)) {
      System.out.println("Valeur standard");
    } else {
      System.out.println("Hors de la plage de valeurs standard");
    }
  }

  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);
  }
}

Modification de la méthode d'appel de la classe Person

J'ai pu le diviser, mais si j'exécute la classe Main telle quelle, une erreur se produira. Enfin, ajoutez la description suivante à la classe Main pour appeler la méthode de la classe Person.

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);
  }
}

Vous pouvez maintenant l'exécuter sans aucun problème.

Recommended Posts

À propos de la division de classe (Java)
À propos de la classe Java
À propos de la classe Java StringBuilder
[Java] À propos de la classe Singleton
À propos de la classe Java String
À propos de la classe abstraite de Java
À propos des types de chargeur de classe Java
Méthode de classe variable de classe Java
À propos de l'interface Java
Méthodes de classe Java
[Java] À propos des fonctionnalités de Java 12
[Java] Héritage de classe
classe Scanner java
Classe Java HashMap
[Java] À propos des tableaux
À propos de l'héritage de classe.
java (classe abstraite)
Quelque chose à propos de java
Où est Java
À propos des fonctionnalités Java
[Java] Classe imbriquée
Classe anonyme Java
À propos des threads Java
Interface [Java]
À propos des tableaux Java
À propos de l'héritage Java
À propos de l'interface, interface java
[java] Classe abstraite
[Java] Classe d'objets
Classe locale Java
À propos de Java Var
À propos de Java Literal
À propos des commandes Java
À propos de la sortie du journal Java
À propos de l'interface fonctionnelle Java
Java, à propos d'un tableau à deux dimensions
À propos de la classe StringBuilder
À propos de [Java] [StreamAPI] allMatch ()
À propos de la liaison de méthode Java
[Java] À propos des classes anonymes
A propos des méthodes de fractionnement (Java)
Examen de la classe interne Java
[Java Silver] À propos de l'initialisation
A propos de la liste des baies Java
À propos du polymorphisme Java Super ()
[Swing] À propos de la classe JFrame
Champ de type de classe Java
À propos de l'héritage (Java Silver)
Programmation Java (méthode de classe)
À propos des modificateurs d'accès Java
À propos des expressions Java lambda
À propos des points d'entrée Java
Prise en charge de Java 10 Docker
Résumé personnel sur Java
A propos du tri de la classe java.util.Arrays
Programmation Java (structure de classe)
Tout sur la programmation Java
[Java] Référence de classe de wrapper Integer