1、重载:重载发生在同一个类中,两个方法的方法名相同,参数列表不同(类型、个数、一致),和返回类型无关。
2、抽象:将不同方法之间类似的代码,提出来写成一个新的方法。使用时调用即可。
<span style="font-size:18px;"> /**
* <span style="background-color: rgb(255, 255, 255);">通过姓名返回下标,实现代码重用。删除、查找、修改都有一段类似的代码。</span></span>
<span style="font-size:18px;"> */
public static int findbyname() {
String name = JOptionPane.showInputDialog(null, "请输入姓名");
for (int i = 0; i < count; i++) {
if (name.equals(nameArray[i])) {
return i;
}
}
JOptionPane.showMessageDialog(null, "查无此人");
return -1;
}
/**
* 删除
*/
public static void delete() {
int index = findbyname();//调用findbyname()
if (index != -1) {
for (int i = index; i < count; i++) {
nameArray[i] = nameArray[i + 1];
idArray[i] = idArray[i + 1];
gradeArray[i] = gradeArray[i + 1];
}
count--;
JOptionPane.showMessageDialog(null, "删除成功");
show();
return;
}
}
/**
* 查找
*/
public static void look() {
int index = findbyname();//调用findbyname()
if (index != -1) {
String str = "学号:" + idArray[index] + " 姓名:" + nameArray[index]
+ " 成绩:" + gradeArray[index];
JOptionPane.showMessageDialog(null, str);
return;
}
}
/**
* 修改
*/
public static void modify() {
int index = findbyname();//调用findbyname()
if (index != -1) {
String s1 = JOptionPane.showInputDialog(null, "请输入学号");
int id = Integer.parseInt(s1);
// if (id == idArray[i]) {
// continue;
// }
idArray[index] = id;
String name = JOptionPane.showInputDialog(null, "请输入姓名");
nameArray[index] = name;
String s2 = JOptionPane.showInputDialog(null, "请输入成绩");
gradeArray[index] = Integer.parseInt(s2);
show();
return;
}
} </span>