diff --git "a/08 \350\224\241\346\263\275\351\222\246/20221220 \345\255\246\347\224\237\347\263\273\347\273\237\351\241\271\347\233\256.md" "b/08 \350\224\241\346\263\275\351\222\246/20221220 \345\255\246\347\224\237\347\263\273\347\273\237\351\241\271\347\233\256.md" index eb7fc87d6849d924eb044b45ee5fbd3dda0e69ca..2a77ec0da3d23d794f5754df30076b1d4b7cc16d 100644 --- "a/08 \350\224\241\346\263\275\351\222\246/20221220 \345\255\246\347\224\237\347\263\273\347\273\237\351\241\271\347\233\256.md" +++ "b/08 \350\224\241\346\263\275\351\222\246/20221220 \345\255\246\347\224\237\347\263\273\347\273\237\351\241\271\347\233\256.md" @@ -1,91 +1,156 @@ ### 1.项目 + +##### private {static void修饰符,私有制} + ~~~java - // ============================== - // - 欢迎使用3班学生管理系统 - - // - 1.浏览所有学生信息 - - // - 2.添加学生信息 - - // - 3.修改学生信息 - - // - 4.删除学生信息 - - // - 5.查询学生信息 - - // - 6.退出管理系统 - - // ============================== - //请输入对应的数字选择你需要的功能: - static Scanner sc=new Scanner(System.in);//静态扫描器。共用的 + //静态扫描器,放在外面变成共用,static是一个用法,让所以方法都能使用 + static String[] students = new String[10]; + static Scanner sc = new Scanner(System.in); public static void main(String[] args) { - String[]students = new String[10]; - students[0]="1号"; - students[1]="2号"; - students[2]="3号"; - students[3]="4号"; - students[4]="5号"; - students[5]="6号"; + students[0] = "1号"; + students[1] = "2号"; + students[2] = "3号"; + students[3] = "4号"; + students[4] = "5号"; + students[5] = "6号"; welcome(); - Scanner sc =new Scanner(System.in); - xt(sc.nextInt(),students); - + while (true){ + sy(); + int a=xt(sc.nextInt()); + if (a == 1){ + break; + } + } + System.out.println("=========3班成绩系统========"); } - public static void xt(int num ,String[] stu){ - switch(num){ + //首页菜单 + public static void sy () { + System.out.println(" 请输入对应的数字选择你需要的功能:"); + } + //选择服务 + public static int xt (int num) { + System.out.println(); + int a =0; + switch (num){ case 1: - System.out.println("打印所有学生的信息"); - sy(stu); + System.out.println(" - 所有学生信息"); + ll(); break; case 2: - tj(stu); + System.out.println(" - 添加学生信息"); + tj(); break; case 3: + System.out.println(" - 修改学生信息"); + xg(); break; case 4: + System.out.println(" - 删除学生信息"); + sc(); break; case 5: + System.out.println(" - 查询学生信息"); + cx(); break; case 6: + System.out.println(" 即将退出3班学生管理系统,欢迎下次使用!"); + a =1; break; default: - System.out.println("请输入正确的数字服务"); + System.out.println("请输入正确的数字服务!"); } + return a; } public static void welcome(){ - System.out.println("==============================\n" + - " // - 欢迎使用3班学生管理系统 -\n" + - " // - 1.浏览所有学生信息 -\n" + - " // - 2.添加学生信息 -\n" + - " // - 3.修改学生信息 -\n" + - " // - 4.删除学生信息 -\n" + - " // - 5.查询学生信息 -\n" + - " // - 6.退出管理系统 -\n" + - " // ==============================\n" + - " //请输入对应的数字选择你需要的功能:"); + System.out.println(" ==============================\n" + + " - 欢迎使用3班学生管理系统 -\n" + + " - 1.所有学生信息 -\n" + + " - 2.添加学生信息 -\n" + + " - 3.修改学生信息 -\n" + + " - 4.删除学生信息 -\n" + + " - 5.查询学生信息 -\n" + + " - 6.退出管理系统 -\n" + + " ==============================\n"); + } - //1.浏览所以学生信息 - public static void sy(String[] stu){ - System.out.println("有以下全部信息"); - for (String name:stu) { - if (name!= null) { - System.out.print(name+"\t "); - } + //1.所有学生信息 + public static void ll () { + for (String name: students) { + if (name == null) { + continue; + }else { + System.out.println(name); } + } + System.out.println(); } //2.添加学生信息 - public static void tj(String[] stu){ - System.out.println("添加学生信息"); + public static void tj () { + System.out.println("请输入学生信息:"); String name = sc.next(); - int index = xg(stu,null); - if(index==-1){ - System.out.println("找不到"); - }else { - System.out.println("在"+index+"位置"); - } - - + int index = sy(name); + if (index != -1) { + //-1表示不存在 + System.out.println("该学生已存在,请勿重复添加!"); + }else { + int nullIndex = sy( null); + students[nullIndex] = name; + System.out.println(name + "同学已加入到3班学生管理系统!"); + } } - public static int xg(String[] stu,String[] str){ - int index = -1;//数组里0表示第一个元素。-1表示不存在 - for (int i =0;i< stu.length;i++){ - if (str.equals(stu[i])){ - index=i; - return index; - + //3.修改学生信息 + public static void xg (){ + System.out.println("请输入要修改信息的学生姓名:"); + String name = sc.next(); + System.out.println("请输入修改后的内容:"); + String nameEr = sc.next(); + int index = sy(name); + if (index == -1) { + System.out.println("没有该学生!"); + }else { + students[index] = nameEr; + System.out.println("该学生的信息已修改完成!"); + } + } + //4.删除学生信息 + public static void sc (){ + System.out.println("请输入要删除的学生姓名"); + String name = sc.next(); + int index = sy(name); + if (index == -1) { + System.out.println("没有该学生!"); + }else { + students[index] = null; + System.out.println("该生已从3班学生管理系统中删除!"); + } + } + //5.查询学生信息 + public static void cx() { + System.out.println("请输入要查询的学生姓名:"); + String name = sc.next(); + int index = sy(name); + if (index == -1) { + System.out.println("没有查到该学生!"); + }else { + System.out.println("该学生的信息为:" + students[index]); + } + } + //索引 + public static int sy (String str) { + int index = -1; + if (str == null) { + for (int i = 0 ; i < students.length ; i ++) { + if ( students[i] == null) { + index = i; + break; + } + } + }else { + for (int i = 0; i < students.length; i++) { + if (str.equals( students[i])) { + index = i; + return index; + } } } return index; diff --git "a/08 \350\224\241\346\263\275\351\222\246/20221223\345\205\263\344\272\216\351\235\242\345\220\221\345\257\271\350\261\241\347\232\204\347\254\224\350\256\260.md" "b/08 \350\224\241\346\263\275\351\222\246/20221223\345\205\263\344\272\216\351\235\242\345\220\221\345\257\271\350\261\241\347\232\204\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..165e63c4e00aad6cf11dff2370784da153de1ce0 --- /dev/null +++ "b/08 \350\224\241\346\263\275\351\222\246/20221223\345\205\263\344\272\216\351\235\242\345\220\221\345\257\271\350\261\241\347\232\204\347\254\224\350\256\260.md" @@ -0,0 +1,86 @@ +## 一、类和对象 + +### 1.面向对象介绍 + +- 并不是一个技术,而是一种编程指导思想 +- 以什么形式组织代码;以什么思路解决问题 + +### 2.类与对象 + +- 什么是类:类是对现实生活中一类具有共同属性和行为的事物的抽象 +- 什么是对象:对象是能够看得见摸得着的真实存在的实体 +- 类是对象的抽象,对象是类的实体 + +### 3.对象的属性和行为 + +- 属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值 +- 行为:对象能够执行的操作 + +### 4.类的属性和行为 + +- 属性:在类中通过成员变量来体现(类中方法外的变量) +- 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可) + +### 5.对象的使用 + +- 创建对象 + 1. 格式:类名 对象名 = new 类名(); + 2. 示例:Phone p = new Phone(); +- 使用对象 + 1. 使用成员变量 + - 格式:对象名.变量名 + - 示例:p.brand + 2. 使用成员方法 + - 格式:对象名.方法名(参数); + - 示例:p.call(); + +### 6.练习 + +```java +//需求:定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象王城成员变量和成员方法的使用 +public class Student { + String name; + int age; + char sex; + public void eat() { + System.out.println(age + "岁的" + sex + "学生" + name + "会吃饭!"); + } + public void doHomeWork() { + System.out.println(age + "岁的" + sex + "学生" + name + "会写作业!"); + } +} + +public class StudentTest { + public static void main(String[] args) { + Student xm = new Student(); + xm.name = "小明"; + xm.age = 18; + xm.sex = '男'; + + Student xm = new Student(); + xm.name = "小红"; + xm.age = 19; + xm.sex = '女'; + + xm.eat(); + xh.eat(); + xm.doHomeWork(); + } +} +``` + +## 二、对象内存分配 + +### 1.Java内存分配 + +1. 什么是Java内存分配:Java程序在运行时,需要在内存中分配空间,为了提高运算效率就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据的方式和内存管理方式。 +2. 栈:所有局部变量都会在栈内存中创建 + - 局部变量:定义在方法中的变量或者方法声明上的变量 + - 方法执行都会加载到栈中进行 + - 局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失 +3. 堆:所有对象及其对应的实例变量和数组都将存储在此处 + - 可以理解为new出来的东西都存储在堆内存 + - 每一个new出来的东西都有一个地址值,使用完毕后会在垃圾回收期空闲时被回收 + - 实例变量(成员变量)有初始值: + - 基本引用数据类型:整数:0;浮点数:0.0;布尔:false;字符:空字符 + - 引用数据类型:null \ No newline at end of file