day11-ArrayList Java学生信息管理系统 day13-面向对象进阶-继承 静态 子类有参构造前如果没有super就默认一句super();父类无参构造
ArrayList-01-基本使用
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
//1.创建一个集合
ArrayList<String> list = new ArrayList<>();
//2.添加元素
list.add("aaa");
list.add("aaa");
list.add("bbb");
list.add("ccc");
//3.删除元素
/*
boolean result = list.remove("aa");
System.out.println(result);
String str = list.remove(0);
System.out.println(str);
//修改元素 return 被修改元素
String result = list.set(1, "ddd");
System.out.println(result);
//查询元素 return 查询到的元素
String s = list.get(0);
System.out.println(s);
*/
//集合遍历
for (int i = 0; i < list.size(); i++) {
//list.get(i);表示集合里的每个元素
String s = list.get(i);
System.out.println(s);
}
System.out.println(list);
}
}
ArrayList-02-集合练习-添加字符串和整数并遍历
ArrayList-03-集合练习-添加学生对象并遍历的两个练习
后面是键盘录入版
ArrayList-04-集合练习-查找用户是否存在
ArrayList-05-集合练习-返回多个数据
技巧: if要return多个数据 ,可以把这些数据放到一个 集合 当中,再把 集合 返回;
学生管理系统-01-业务分析并搭建主菜单
学生管理系统-02-查询和添加
学生管理系统-03-删除和修改
import java.util.ArrayList;
import java.util.Scanner;
public class StudentSystem {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
loop:
while (true) {
System.out.println("-------------欢迎来到黑马学生管理系统----------");
System.out.println("1:添加学生");
System.out.println("2:删除学生");
System.out.println("3:修改学生");
System.out.println("4:查询学生");
System.out.println("5:退出");
System.out.println("请输入您的选择: ");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose) {
case "1" -> addStudent(list);
case "2" -> deleteStudent(list);
case "3" -> updateStudent(list);
case "4" -> queryStudent(list);
case "5" -> {
System.out.println("退出");
//break loop; 退出循环
System.exit(0);//停止虚拟机运行
}
default -> System.out.println("没有这个选项");
}
}
}
//添加学生
public static void addStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生学号");
String id = sc.next();
System.out.println("请输入学生姓名");
String name = sc.next();
System.out.println("请输入学生年龄");
int age = sc.nextInt();
System.out.println("请输入学生地址");
String address = sc.next();
if (!contains(list, id)) {
Student s = new Student(id, name, age, address);
list.add(s);
System.out.println("学生信息添加成功");
} else {
System.out.println("id已存在,请重新输入");
}
}
//删除学生
public static void deleteStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的id");
String id = sc.next();
int index = getIndex(list, id);
if (index != -1) { //存在id 删除
list.remove(index);
System.out.println("id为" + id + "的学生删除成功");
} else {
System.out.println("id不存在,请重新输入");
}
}
//修改学生
public static void updateStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的id");
String id = sc.next();
int index = getIndex(list, id);
if (index == -1) {
System.out.println("要修改的id" + id + "不存在,请重新输入");
return;
}
Student stu = list.get(index);
list.remove(index);
System.out.println("请输入要修改的学生姓名");
String name = sc.next();
System.out.println("请输入要修改的学生年龄");
int age = sc.nextInt();
System.out.println("请输入要修改的学生地址");
String address = sc.next();
Student s = new Student(id, name, age, address);
list.add(s);
System.out.println("学生信息修改成功");
}
//查询学生
public static void queryStudent(ArrayList<Student> list) {
System.out.println("查询学生");
if (list.size() == 0) {
System.out.println("当前无学生信息,请添加后再查询");
return;
}
System.out.println("id\t姓名\t年龄\t家庭住址");
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getIg() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());
}
}
//判断id唯一性
public static boolean contains(ArrayList<Student> list, String id) {
/*for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
String sid = stu.getIg();
if (sid.equals(id)) {//重复
return true;
}
}
return false;*/
/*if (getIndex(list, id) == -1) return false;
else return true;
*/
return (getIndex(list, id) >= 0);
}
//通过id获取索引
public static int getIndex(ArrayList<Student> list, String id) {
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
String sid = stu.getIg();
if (sid.equals(id)) {//重复
return i;
}
}
return -1;
}
}
Day13
竖着选择的小技巧:
左键按住&滑动滚轮; or 左键按住&按住Alt键.
面向对象进阶-01-static-静态变量
静态变量是随着类的加载而加载的,优先于对象出现在内存中的
面向对象进阶-02-static-静态方法和工具类
public class ArrayUtil {
//私有化构造方法 目的:不让外界创建他的对象
private ArrayUtil() {
}
public static String printArr(int[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1)
sb.append(arr[i]);
else
sb.append(arr[i]).append(", ");
}
sb.append("]");
return sb.toString();
}
public static double getAverage(double[] arr) {
double sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum / arr.length;
}
//TestDemo 测试工具类
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
String str = ArrayUtil.printArr(arr1);
System.out.println(str);
double[] arr2 = {1.5, 3.7, 4.9, 5.8, 6.6};
System.out.println(ArrayUtil.getAverage(arr2));
}
}
面向对象进阶-03-static的注意事项
面向对象进阶-04-继承的概述
封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为
面向对象进阶-05-继承的特点和继承体系的设计
面向对象进阶-06-子类到底能继承父类中的哪些内容
面向对象进阶-07-继承中成员变量和成员方法的访问特点
成员变量: 就近原则
this.hobby 先在本类成员位置找没找到再去父类
面向对象进阶-08-继承中的构造方法和thissuper关键字
数据做默认值的时候会用到 this 本类其它构造
本文来自博客园,作者:软工菜鸡,转载请注明原文链接:https://www.cnblogs.com/SElearner/p/17676728.html