关于方法的分割(Java)
将方法分解为几个步骤
我写了冗长的代码,导致可读性变差。
我想按照以下步骤来拆分方法。
-
- 创建printData方法和fullName方法。
-
- 编写fullName方法的代码。
-
- 编写printData方法的代码。
- 编写调用printData方法的代码。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("名前:");
String firstName = scanner.next();
System.out.print("名字:");
String lastName = scanner.next();
String name = firstName + " " + lastName;
System.out.print("年齢:");
int age = scanner.nextInt();
System.out.print("身長(m):");
double height = scanner.nextDouble();
System.out.print("体重(kg):");
double weight = scanner.nextDouble();
System.out.println("名前は" + name + "です");
System.out.println("年齢は" + age + "歳です");
if (age >= 20) {
System.out.println("成年者です");
} else {
System.out.println("未成年者です");
}
System.out.println("身長は"+ height + "mです");
System.out.println("体重は" + weight + "kgです");
}
}
创建printData方法和fullName方法
首先,创建printData方法和fullName方法。
内部内容可以为空。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
//長いので省略
}
public static void printData(String firstName, String lastName, int age, double height, double weight) {
}
public static String fullName(String firstName, String lastName) {
}
}
請描述fullName方法的內容
将 firstName 和 lastName 进行连接,作为 fullName 方法的返回值。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("名前:");
String firstName = scanner.next();
System.out.print("名字:");
String lastName = scanner.next();
// 不要になったので削除です↓
//String name = firstName + " " + lastName;
System.out.print("年齢:");
int age = scanner.nextInt();
System.out.print("身長(m):");
double height = scanner.nextDouble();
System.out.print("体重(kg):");
double weight = scanner.nextDouble();
System.out.println("名前は" + name + "です");
System.out.println("年齢は" + age + "歳です");
if (age >= 20) {
System.out.println("成年者です");
} else {
System.out.println("未成年者です");
}
System.out.println("身長は"+ height + "mです");
System.out.println("体重は" + weight + "kgです");
}
public static void printData(String firstName, String lastName, int age, double height, double weight) {
}
public static String fullName(String firstName, String lastName) {
// firstName と lastName を連結し、fullNameメソッドの戻り値とします
return firstName + " " + lastName;
}
}
请写下printData方法的内容。
使用fullName方法输出全名。同时,从main方法中复制粘贴其他输出,如年龄等。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("名前:");
String firstName = scanner.next();
System.out.print("名字:");
String lastName = scanner.next();
System.out.print("年齢:");
int age = scanner.nextInt();
System.out.print("身長(m):");
double height = scanner.nextDouble();
System.out.print("体重(kg):");
double weight = scanner.nextDouble();
// 不要になったので削除です↓
// System.out.println("名前は" + name + "です");
// System.out.println("年齢は" + age + "歳です");
// if (age >= 20) {
// System.out.println("成年者です");
// } else {
// System.out.println("未成年者です");
// }
// System.out.println("身長は"+ height + "mです");
// System.out.println("体重は" + weight + "kgです");
}
public static void printData(String firstName, String lastName, int age, double height, double weight) {
// fullNameメソッドを呼び出し、出力
System.out.println("名前は" + fullName(firstName, lastName) + "です");
// 年齢を出力(mainメソッドからコピペ)
System.out.println("年齢は" + age + "歳です");
// 未成年か否かの条件分岐(mainメソッドからコピペ)
if (age >= 20) {
System.out.println("成年者です");
} else {
System.out.println("未成年者です");
}
// 身長と体重を出力(mainメソッドからコピペ)
System.out.println("身長は" + height + "mです");
System.out.println("体重は" + weight + "kgです");
}
public static String fullName(String firstName, String lastName) {
return firstName + " " + lastName;
}
}
调用printData方法的代码。
我们将在main方法中添加调用printData方法的代码。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("名前:");
String firstName = scanner.next();
System.out.print("名字:");
String lastName = scanner.next();
System.out.print("年齢:");
int age = scanner.nextInt();
System.out.print("身長(m):");
double height = scanner.nextDouble();
System.out.print("体重(kg):");
double weight = scanner.nextDouble();
// printDataメソッドを呼び出します
printData(firstName, lastName, age, height, weight);
}
public static void printData(String firstName, String lastName, int age, double height, double weight) {
System.out.println("名前は" + fullName(firstName, lastName) + "です");
System.out.println("年齢は" + age + "歳です");
if (age >= 20) {
System.out.println("成年者です");
} else {
System.out.println("未成年者です");
}
System.out.println("身長は" + height + "mです");
System.out.println("体重は" + weight + "kgです");
}
public static String fullName(String firstName, String lastName) {
return firstName + " " + lastName;
}
}
我认为通过这样做,可读性有所改善。