note_doit_day06

1.类class
    1.类的定义:
        类:类就是描述现实事物的,现实事物具备属性和功能(行为)  我们可以使用类的成员变量来描述
        类:描述的的一类事物的共性内容
        对象:根据类的描述 创建出来的 具体的实例
        事物的属性  类的成员方法 来描述事物的功能 我们今天只描述属性 不描述功能
         成员变量:定义在类中方法外的变量
         局部变量:定义在方法中 或者 for循环等等中的变量叫做局部变量
        
    2.类的定义格式
    public class 类名{
        数据类型 属性名;
        数据类型 属性名;
    }
    
    3.类的使用
        1.导包
            不同包下 需要导包 同一个包下不需要导包
        2.定义变量并赋值(创建对象)
            数据类型 变量名 = new 数据类型();
        3.访问属性
             变量名.属性名
     *注意:每个对象都有各自的属性值 所以实际上类中定义的成员变量的值是属于对象的
         
    Test:
            public class Test {
            public static void main(String[] args) {
                Person p = new Person();
                p.name = "柳岩";
                p.age = 38;
                p.sex = '女';
                p.height = 1.70;
                p.isLoveJava = true;

                System.out.println(p.name);
                System.out.println(p.age);
                System.out.println(p.sex);
                System.out.println(p.height);
                System.out.println(p.isLoveJava);

                System.out.println("------------");

                Person p2 = new Person();
                p2.name = "唐嫣";
                p2.age = 18;
                p2.age = 28;

                System.out.println(p2.name);
                System.out.println(p2.age);
                System.out.println(p2.sex);
                System.out.println(p2.height);
                System.out.println(p2.isLoveJava);


            }
        }
        
    Person:
            public class Person {
            String name;
            int age;
            char sex;
            double height;
            boolean isLoveJava;
            }    
    
    Test02:
        package com.doit.demo;

        /*
        定义一个Person类型数组  存储3个元素   求 年龄最大的那个人的姓名


        1.定义一个Person类型的数组
        2.添加三个对象
        3.循环获取最大年龄
        4.遍历判断 谁的年龄是最大年龄
         */
        public class Test03 {
            public static void main(String[] args) {

                Person[] arr = new Person[3];

                //创建Person对象
                Person p = new Person();
                p.name = "柳岩";
                p.age = 38;
                //为数组的0索引元素赋值
                arr[0] = p;


                Person p2 = new Person();
                p2.name = "唐嫣";
                p2.age = 18;
                arr[1] =p2;


                Person p3 = new Person();
                p3.name = "金莲";
                p3.age = 138;
                arr[2] =p3;


                //获取最大年龄
                /*
                     定义一个变量用来记录最大年龄
                     遍历数组 依次获取每个对象
                     使用记录的年龄 与每个人的年龄做比较
                         只要有人的年龄比记录的年龄大
                           则为记录的年龄重新赋值
                 */
                int maxAge =p.age;
                //遍历数组 依次获取每个对象
                for(int i = 0 ;i<arr.length;i++){
                    //依次获取每个对象
                    Person thisPerson = arr[i];
                    if(thisPerson.age >maxAge){
                        maxAge = thisPerson.age;
                    }
                }

                System.out.println(maxAge);

                //获取到最大年龄的对象
                /*
                    遍历数组 依次获取到每个对象
                      对象的年龄 和最大年龄做比较
                         如果相等  说明当前对象就是年龄最大的人
                              获取到姓名即可
                 */

                for(int i = 0;i<arr.length;i++){
                    Person thisPerson = arr[i];
                    if(thisPerson.age == maxAge){
                        //获取当前对象的姓名
                        System.out.println(thisPerson.name);
                    }
                }

            }
        }

2.二维数组:
      1.ArrayList集合的特点
         ArrayList集合长度可变
         ArrayList集合只能存储引用数据类型数据 如果要存基本类型 需要写基本类型对应的包装类型
         ArrayList集合底层是数组 所以也是有索引的 索引从0开始
      2.ArrayList集合的使用
          1.导包
               java.util.ArrayList
          2.定义变量并赋值(创建对象)
               数据类型 变量名 = new 数据类型();
               ArrayList<存储数据的数据类型>  list = new ArrayList<>();

          3.调用方法
               变量名.方法名();
    3.ArrayList操作:
        public void  add(int index,E   element):在此集合中的指定位置插入指定的元素。
        public boolean  remove(Object o):删除指定的元素,返回删除是否成功
        public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
        public void clear() :清空集合中所有元素
        public E   set(int index,E   element):修改指定索引处的元素,返回被修改
    Demo01:
            public class Demo01_ArrayList {
            public static void main(String[] args) {
                //定义一个ArrayList集合 存储 整数
                ArrayList<Integer>  list = new ArrayList<>();
                //定义一个存储小数的集合
                ArrayList<Double>  list2 = new ArrayList<>();
                //定义一个存储字符的集合
                ArrayList<Character> list3 = new ArrayList<>();
                //定义一个存储布尔的集合
                ArrayList<Boolean> list4 = new ArrayList<>();

                //定义一个存储Person的集合
                ArrayList<Person> list5 = new ArrayList<>();

            }
        }
        
    Demo02:
        package com.doit.demo02;
        /*
            二维数组
         */
        public class Demo01_Array {
            public static void main(String[] args) {
                int[][] arr = {{1,2},{3,4},{5,6,7}};
                //获取数组中2索引的小数组中 1索引的元素  6
                int num = arr[2][1];
                System.out.println(num);

                //先获取数组中0索引的元素  就是第一个小数组
                int[] arr2 = arr[0];
                //在获取小数组中 1索引的元素 就是 2
                int num2 = arr2[1];
                System.out.println(num2);

                //先获取大盒子中小盒子
                for(int i=0;i<arr.length;i++){
                   int[] thisArr =  arr[i];
                   //遍历小盒子获取数据
                   for(int j= 0;j<thisArr.length;j++){
                       System.out.println(thisArr[j]);
                   }
                }
                for(int i =0;i<arr.length;i++){
                    for(int j=0;j<arr[i].length;j++){
                        System.out.println(arr[i][j]);
                    }
                }

            }
        }
    
    Demo03:
        public class Demo03_ArrayList {
        public static void main(String[] args) {

            // ArrayList集合存储整数 并遍历
            ArrayList<Integer> list = new ArrayList<>();
            list.add(10);
            int num = 20;
            list.add(num);
            list.add(30);
            list.add(40);

            for(int i = 0;i<list.size();i++){
               int thisNum =   list.get(i);
                System.out.println(thisNum);
            }

            System.out.println("----------------------------");
            //ArrayList集合存储自定义类型 并遍历
            ArrayList<Student> studentList = new ArrayList<>();

            //创建学生对象 为学生对象的属性赋值
            Student s = new Student();
            s.id = "001";
            s.name = "柳岩";
            //将学生对象添加到集合中
            studentList.add(s);


            Student s2 = new Student();
            s2.id = "002";
            s2.name = "唐嫣";
            studentList.add(s2);

            for(int i = 0;i<studentList.size();i++){
                //根据索引获取元素
                Student student =  studentList.get(i);
                System.out.println("学号:"+student.id);
                System.out.println("姓名:"+student.name);
            }

        }
    }
    
3.Demo(随机点名器):
        public class Demo_RandomName {
        public static void main(String[] args) {
            //  2.定义一个集合用来存储学生类型
            ArrayList<Student> list = new ArrayList<>();

            //调用添加学生的方法
            addStudent(list);

            //调用遍历集合的方法
            show(list);


            //调用获取随机姓名的方法
            String name = getRandomName(list);

            System.out.println("今天你答题:"+name);

        }
        //定义一个获取随机姓名的方法
        public static String getRandomName(ArrayList<Student> list ){
            Random r = new Random();
            int index =  r.nextInt(list.size());

            Student student = list.get(index);

            return student.name;
        }

        //定义一个遍历集合的方法
        public static void show(ArrayList<Student> list){
            for(int i =0; i<list.size();i++){
                Student thisStudent = list.get(i);
                System.out.println(thisStudent.id+" "+thisStudent.name);
            }

        }

        //定义一个向集合中添加学生对象的方法
        public static void addStudent( ArrayList<Student> list){
            //循环向集合中添加学生  添加3个
            Scanner sc = new Scanner(System.in);
            for (int i = 1; i <= 3; i++) {

                Student s = new Student();
                System.out.println("请输入第"+i+"个学生的学号:");

                s.id = sc.next();
                System.out.println("请输入第"+i+"个学生的姓名:");
                s.name = sc.next();

                //将对象添加到集合中
                list.add(s);
            }
        }
    }

4.Demo(学生管理系统):
        package com.doit.demo05;

        import java.util.ArrayList;
        import java.util.Scanner;

        /**
         * @author dq_dsj
         **/
        public class StudentManager {
            /*
                1:用输出语句完成主界面的编写
                2:用Scanner实现键盘录入数据
                3:用switch语句完成操作的选择
                4:用循环完成再次回到主界面
                5.然后完成每个方法的编写
            */
            public static void main(String[] args) {
                //创建集合对象,用于保存学生数据信息
                ArrayList<Student> array = new ArrayList<Student>();
                //用循环完成再次回到主界面
                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实现键盘录入数据
                    Scanner sc = new Scanner(System.in);
                    String line = sc.next();

                    //用switch语句完成操作的选择
                    switch (line) {
                        case "1":
                            addStudent(array);
                            break;
                        case "2":
                            deleteStudent(array);
                            break;
                        case "3":
                            updateStudent(array);
                            break;
                        case "4":
                            findAllStudent(array);
                            break;
                        case "5":
                            System.out.println("886您那!!!");
                            System.exit(0); //JVM退出
                    }
                }
            }

            //定义一个方法,用于添加学生信息
            public static void addStudent(ArrayList<Student> array) {
                //键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
                Scanner sc = new Scanner(System.in);

                String sid;

                while (true) {
                    System.out.println("请输入学生学号:");
                    sid = sc.next();

                    boolean flag = isUsed(array, sid);
                    if (flag) {
                        System.out.println("你输入的学号已经被占用,请重新输入");
                    } else {
                        break;
                    }
                }

                System.out.println("请输入学生姓名:");
                String name = sc.next();
                System.out.println("请输入学生年龄:");
                String age = sc.next();
                System.out.println("请输入学生居住地:");
                String address = sc.next();

                //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
                Student s = new Student();
                s.sid=sid;
                s.name = name;
                s.age = age;
                s.address = address;

                //将学生对象添加到集合中
                array.add(s);

                //给出添加成功提示
                System.out.println("添加学生成功");
            }
            //定义一个方法,判断学号是否被使用
            public static boolean isUsed(ArrayList<Student> array, String sid) {
                //如果与集合中的某一个学生学号相同,返回true;如果都不相同,返回false
                boolean flag = false;

                for(int i=0; i<array.size(); i++) {
                    Student s = array.get(i);
                    if(s.sid.equals(sid)) {
                        flag = true;
                        break;
                    }
                }

                return flag;
            }


            //定义一个方法,用于查看学生信息
            public static void findAllStudent(ArrayList<Student> array) {
                //判断集合中是否有数据,如果没有显示提示信息
                if (array.size() == 0) {
                    System.out.println("无信息,请先添加信息再查询");
                    //为了让程序不再往下执行,我们在这里写上return;
                    return;
                }

                //显示表头信息
                //\t其实是一个tab键的位置
                System.out.println("学号\t\t\t姓名\t\t年龄\t\t居住地");

                //将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”
                for (int i = 0; i < array.size(); i++) {
                    Student s = array.get(i);
                    System.out.println(s.sid + "\t\t\t" + s.name + "\t\t" + s.age + "岁\t\t" + s.address);
                }
            }

            //定义一个方法,用于删除学生信息
            public static void deleteStudent(ArrayList<Student> array) {
                //键盘录入要删除的学生学号,显示提示信息
                Scanner sc = new Scanner(System.in);

                System.out.println("请输入你要删除的学生的学号:");
                String sid = sc.next();

                //在删除/修改学生操作前,对学号是否存在进行判断
                //如果不存在,显示提示信息
                //如果存在,执行删除/修改操作

                int index = -1;

                for (int i = 0; i < array.size(); i++) {
                    Student s = array.get(i);
                    //equals方法 比较两个字符串是否相同 相同返回true 不同返回false
                    if (sid.equals(s.sid)) {
                        index = i;
                        break;
                    }
                }

                if (index == -1) {
                    System.out.println("该信息不存在,请重新输入");
                } else {
                    array.remove(index);
                    //给出删除成功提示
                    System.out.println("删除学生成功");
                }
            }

            //定义一个方法,用于修改学生信息
            public static void updateStudent(ArrayList<Student> array) {
                //键盘录入要修改的学生学号,显示提示信息
                Scanner sc = new Scanner(System.in);

                System.out.println("请输入你要修改的学生的学号:");
                String sid = sc.nextLine();

                //键盘录入要修改的学生信息
                System.out.println("请输入学生新姓名:");
                String name = sc.next();
                System.out.println("请输入学生新年龄:");
                String age = sc.next();
                System.out.println("请输入学生新居住地:");
                String address = sc.next();

                //创建学生对象
                Student s = new Student();
                s.sid = sid;
                s.name = name;
                s.age = age;
                s.address = address;

                //遍历集合修改对应的学生信息
                for (int i = 0; i < array.size(); i++) {
                    Student student = array.get(i);
                    if (student.sid.equals(sid)) {
                        array.set(i, s);
                    }
                }
                //给出修改成功提示
                System.out.println("修改学生成功");
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值