类:具有相同属性和行为的一组对象和行为。
对象:对象是存在的具体实体,具有明确定义的特征和行为。
方法:就是对象的具体行为。
属性:就是对象的具体特征。
类是对象的抽象,对象是类的实例。
简单举例:
类:Person
属性: eyes mouth
方法:fuck
Person类就表示一个对象或者是一类对象 这里就是指“人”。
人都有眼睛、嘴巴,这些就是人的属性。
人能够做什么? 答: fuck fuck()方法就是人可以做什么。
就是这个对象的动作,方法中就是这个动作会产生什么样的效果。
方法的作用:
1、分而治之。将复杂的功能作分解,每个部分都实现简单的业务。达到功能明确,逻辑清晰的效果。
2、重用。方法定义了之后,通过多次调用达到代码重复使用的效果。
方法重载:在同一个类中,有两个以上的方法,方法名相同,参数列表不同(参数类型、参数个数、参数顺序),调用时会根据方法的参数,来决定执行哪个方法。
1 import javax.swing.JOptionPane; 2 3 public class StudentSystem { 4 public static void main(String[] args) { 5 // 学生管理系统:要求实现登陆,学生信息的添加、显示,删除,修改,查询,排序,退出功能。 6 JOptionPane.showMessageDialog(null, "欢迎光临学生管理系统"); 7 if (StudentMessage.login() == false) { 8 JOptionPane.showMessageDialog(null, "非法用戶"); 9 System.exit(0); 10 } 11 while (true) { 12 String item = JOptionPane.showInputDialog(null, "1、添加\n2、显示\n3、删除\n4、查找\n5、修改\n6、排序\n7、退出"); 13 switch (item) { 14 case "1": 15 StudentMessage.add(); 16 break; 17 case "2": 18 StudentMessage.show(); 19 break; 20 case "3": 21 StudentMessage.delete(); 22 break; 23 case "4": 24 StudentMessage.find(); 25 break; 26 case "5": 27 StudentMessage.update(); 28 break; 29 case "6": 30 StudentMessage.rank(); 31 break; 32 case "7": 33 System.exit(0); 34 break; 35 } 36 } 37 } 38 39 } 40 41 class StudentMessage { 42 // 学号 43 public int code; 44 // 姓名 45 public String name; 46 // 成绩 47 public int grade; 48 49 // 学生信息数组 50 public static StudentMessage[] message = new StudentMessage[200]; 51 52 // 统计用户输入的人数 53 public static int count = 0; 54 55 // 登陆 56 public static boolean login() { 57 for (int i = 0; i < 3; i++) { 58 String userName = JOptionPane.showInputDialog(null, "请输入用户名"); 59 String pwd = JOptionPane.showInputDialog(null, "请输入密码 "); 60 if (userName.equals("java") && pwd.equals("12345")) { 61 return true; 62 } else { 63 JOptionPane.showMessageDialog(null, "用户名或密码错误"); 64 } 65 } 66 return false; 67 } 68 69 // 添加 70 public static void add() { 71 StudentMessage x = new StudentMessage(); 72 x.code = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入学号")); 73 x.name = JOptionPane.showInputDialog(null, "请输入姓名"); 74 x.grade = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入成绩")); 75 message[count] = x; 76 count++; 77 } 78 79 // 显示 80 public static void show() { 81 String s = "学号 姓名 成绩\n"; 82 for (int i = 0; i < count; i++) { 83 s += message[i].code + " " + message[i].name + " " + message[i].grade + "\n"; 84 } 85 JOptionPane.showMessageDialog(null, s); 86 } 87 88 // 按姓名查找,如果没有找到,则返回-1 89 public static int findByName() { 90 String name = JOptionPane.showInputDialog(null, "请输入姓名"); 91 for (int i = 0; i < count; i++) { 92 if (message[i].name.equals(name)) { 93 return i; 94 } 95 } 96 JOptionPane.showMessageDialog(null, "没有找到该学生"); 97 return -1; 98 } 99 100 // 删除 101 public static void delete() { 102 int index = findByName(); 103 if (index != -1) { 104 for (int i = index; i < count - 1; i++) { 105 message[i] = message[i + 1]; 106 } 107 count--; 108 show(); 109 } 110 } 111 112 // 查找 113 public static void find() { 114 int index = findByName(); 115 if (index != -1) { 116 JOptionPane.showMessageDialog(null, 117 "学号:" + message[index].code + " 姓名:" + message[index].name + " 成绩:" + message[index].grade); 118 } 119 } 120 121 // 修改 122 public static void update() { 123 int index = findByName(); 124 if (index != -1) { 125 message[index].code = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入学号")); 126 message[index].name = JOptionPane.showInputDialog(null, "请输入姓名"); 127 message[index].grade = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入成绩")); 128 show(); 129 } 130 } 131 132 // 排序 133 public static void rank() { 134 for (int i = 0; i < count - 1; i++) { 135 for (int j = i + 1; j < count; j++) { 136 if (message[i].grade < message[j].grade) { 137 StudentMessage x = message[i]; 138 message[i] = message[j]; 139 message[j] = x; 140 } 141 } 142 } 143 show(); 144 } 145 }