关于Java的类的分割
类的需求进行分割
写这样冗长的代码会降低可读性,因为执行部分和逻辑部分被写在同一个文件中。
本文按照以下顺序描述了将执行部分写在Main类中,将逻辑部分写在person类中的步骤。
-
- 将Person类进行定义
-
- 将Person类的逻辑部分方法移动
- 修改为调用Person类的方法
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("私の名前は" + name + "です");
System.out.println("年齢は" + age + "歳です");
System.out.println("身長は" + height + "mです");
System.out.println("体重は" + weight + "kgです");
double bmi = bmi(height, weight);
System.out.println("BMIは" + bmi + "です");
if (isHealthy(bmi)) {
System.out.println("標準値です");
} else {
System.out.println("標準値の範囲外です");
}
}
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;
}
}
Person类的定义
上述的Main.java是按以下结构编写的。
-
- 実行部分
mainメソッド
ロジック部分
printDataメソッド
fullNameメソッド
bmiメソッド
isHealthyメソッド
首先,创建Person.java文件并定义Person类。
class Person {
}
将Person类中的逻辑部分方法移动
下一步,将main类的逻辑部分移动到Person类中。
-
- ロジック部分
printDataメソッド
fullNameメソッド
bmiメソッド
isHealthyメソッド
class Person {
public static void printData(String name, int age, double height, double weight) {
System.out.println("私の名前は" + name + "です");
System.out.println("年齢は" + age + "歳です");
System.out.println("身長は" + height + "mです");
System.out.println("体重は" + weight + "kgです");
double bmi = bmi(height, weight);
System.out.println("BMIは" + bmi + "です");
if (isHealthy(bmi)) {
System.out.println("標準値です");
} else {
System.out.println("標準値の範囲外です");
}
}
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;
}
}
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);
}
}
修改为调用Person类的方法的方式
分割成功,但是如果直接执行Main类会出现错误。
最后,我们将添加以下语句来调用Person类的方法。
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);
}
}
这个可以顺利执行。