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-继承中成员变量和成员方法的访问特点
面向对象进阶-07-继承中成员变量和成员方法的访问特点
 
 成员变量: 就近原则
![]()
![]() this.hobby 先在本类成员位置找没找到再去父类
this.hobby 先在本类成员位置找没找到再去父类![]()
![]()
![]()
![]()
![]()
![]()
 
面向对象进阶-08-继承中的构造方法和thissuper关键字
![]()
![]()
数据做默认值的时候会用到 this 本类其它构造
![]()
![]()
![]()
                
本文来自博客园,作者:软工菜鸡,转载请注明原文链接:https://www.cnblogs.com/SElearner/p/17676728.html
 
                     
                    
                 
                    
                






















 
 



 this.hobby 先在本类成员位置找没找到再去父类
this.hobby 先在本类成员位置找没找到再去父类










 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号