当前位置: 首页 > news >正文

盐城市城乡和住房建设厅网站帝国cms7.0模板 绿色企业网站模板(整站带数据)

盐城市城乡和住房建设厅网站,帝国cms7.0模板 绿色企业网站模板(整站带数据),别人网站 自己的域名,邹平做网站Day18 一、删除的思考题 思考题#xff1a;删除功能可以省略第一步吗#xff1f;不可以 有第一步判断学生信息合法性#xff0c;如果信息不合法会直接结束返回 如果没有第一步#xff0c;将会在第二步判断是否有该学生query循环匹配查找#xff0c;数据量大情况#xff…Day18 一、删除的思考题 思考题删除功能可以省略第一步吗不可以 有第一步判断学生信息合法性如果信息不合法会直接结束返回 如果没有第一步将会在第二步判断是否有该学生query循环匹配查找数据量大情况效率很低 二、学生管理系统 --功能实现 StudentManagerSystemImpl类 查询功能 1.根据性别查询学生对象数组 步骤 1.验证学生信息合法性 2.获取符合条件的人数 3.创建新数组 4.遍历数据源把符合条件的学生对象存入新数组中 Override public Student[] getStusByName(String name) { //1.验证学生信息合法性 if (!StuInfoUtil.isName(name)) { return null; } //2.获取符合条件的人数 int count 0; for (int i 0; i size; i) { if (stus[i].getName().equals(name)) { count; } } if (count 0) { return null; } //3.创建新数组 Student[] newStus new Student[count]; //4.遍历数据源把符合条件的学生对象存入新数组中 int index 0; for (int i 0; i size; i) { if (stus[i].getName().equals(name)) { newStus[index] stus[i]; } } return newStus; } 后面几个相似 2.根据性别查询学生对象数组 getStusBySex判断时用“”不使用equals无法对基元类型char调用equalschar 3.根据年龄查询学生对象数组 4.根据班级号查询学生对象数组 queryMenu main方法中封装前端查询方法(多态) 步骤 查询功能展示声明一个学生数组为空swicth匹配对应功能优化基础办法提示输入查询条件学生系统调用相应方法查询根据条件获取到的学生信息赋值给学生数组(多态)对学生数组条件判断查询成功打印数组(打印数组做成默认方法放在接口中),失败打印错误信息 private static void queryMenu(Scanner scan, StudentManagerSystemImpl sms) {System.out.println(请选择查询的条件);System.out.println(1 - 根据姓名查询);System.out.println(2 - 根据性别查询);System.out.println(3 - 根据年龄查询);System.out.println(4 - 根据班级号查询);int num scan.nextInt();//第二种Student[] stus null;//2switch (num) {case 1:System.out.println(请输入需要查询的姓名);String name scan.next();//2stus sms.getStusByName(name);//第一种最基础的办法 // String name scan.next();//1 // Student[] stus sms.getStusByName(name); // for (Student stu : stus) { // System.out.println(stu); // }break;case 2:System.out.println(请输入需要查询的性别);char sex scan.next().charAt(0);stus sms.getStusBySex(sex);break;case 3:System.out.println(请输入需要查询的起始年龄(包含));int start scan.nextInt();System.out.println(请输入需要查询的结束年龄(不包含));int end scan.nextInt();stus sms.getStusByAge(start, end);break;case 4:System.out.println(请输入需要查询的班级号);String classId scan.next();stus sms.getStusByClassId(classId);break;}if (stus ! null) {//2 //打印数组做成默认方法sms.printStus(stus); // for (Student stu : stus) { // System.out.println(stu); // }} else {System.out.println(查询错误);}}三、包装类 理解 8种基本数据类型对应类 出现原因 Java为纯面向对象语言万物皆对象8种基本数据类型不能new对象 就破坏Java为纯面向对象语言的特征Java为8种基本数据类型分别匹配 了对应的类这种类叫做包装类/封装类 基本数据类型包装类继承关系byteByteObject.Number.ByteshortShortObject.Number.ShortintIntegerObject.Number.IntegerlongLongObject.Number.LongfloatFloatObject.Number.FloatdoubleDoubleObject.Number.DoublecharCharacterObject.CharacterbooleanBooleanObject.Boolean 注意 1.int的包装类的写法为Integer 2.char的包装类的写法为Charater 3.其余基本数据类型的包装类均是基本类型的首字母大写 装箱和拆箱 手动装箱 基本数据类型 - 包装类 int num 100; Integer integer Integer.valueOf(num);//静态方法 System.out.println(integer);//String类型的100手动拆箱 ​ 包装类 - 基本数据类型 Integer integer new Integer(100); int num integer.intValue(); System.out.println(num);//int类型的100自动装箱 Window的show View的Navigator查看bin目录的class文件再反编译查看底层 JDK1.5开始的新特性 基本数据类型 - 包装类 int num 100; Integer integer num;//底层实现Integer.valueOf(num); System.out.println(integer);自动拆箱 包装类 - 基本数据类型 Integer integer new Integer(100); int num integer;//底层实现integer.intValue(); System.out.println(num);深入Integer的底层原理 面试题 描述下列代码的运行结果 Integer integer1 Integer.valueOf(100);Integer integer2 Integer.valueOf(100);System.out.println(integer1 integer2);//引用类型比较内存地址trueInteger integer3 Integer.valueOf(200);Integer integer4 Integer.valueOf(200);System.out.println(integer3 integer4);//引用类型比较内存地址false面试题描述Integer的valueOf的底层原理 答判断输入的int值是否在-127~128的区间内如果在就从Integer的缓存类数组中获取对象 如果不在就重新new Integer的对象 MyInteger MyInteger1 MyInteger.valueOf(100); MyInteger MyInteger2 MyInteger.valueOf(100); System.out.println(MyInteger1 MyInteger2);//true MyInteger MyInteger3 MyInteger.valueOf(200); MyInteger MyInteger4 MyInteger.valueOf(200); System.out.println(MyInteger3 MyInteger4);//超过范围new对象false 编写MyInteger 步骤 定义一个int变量 有参构造获值 intValue()返回值 重写toSting使用valueOf()将int值转换为String字符串再返回 编写缓存类静态 在缓存类中编写静态代码块初始化缓存数组 public class MyInteger {private int value;public MyInteger(int value) {super();this.value value;}public int intValue(){return value;}//编写MyInteger的valueOf判断输入的int值是否在-127~128的区间内如果在就从Integer的缓存类数组中获取对象不在就重新new Integer的对象public static MyInteger valueOf(int i){if (iMyIntegerCache.low iMyIntegerCache.hight) {return MyIntegerCache.cache[i (-MyIntegerCache.low)];}return new MyInteger(i);}Overridepublic String toString() {return String.valueOf(value);//将int值转换为String字符串}//缓存类private static class MyIntegerCache {//没有用到外部类的成员属性就可制成静态private static final int low -128;//低位private static final int hight 127;//高位private static final MyInteger[] cache;//缓存数组-127~128的MyInteger的对象static{//可用代码块//初始化缓存数组cache new MyInteger[hight - low 1];int j low;for (int i 0; i cache.length; i) {cache[i] new MyInteger(j);}}} }测试 Integer integer new Integer(100);System.out.println(integer);//100int num1 integer.intValue();System.out.println(num1);//100MyInteger myInteger new MyInteger(100);System.out.println(myInteger);//直接打印类的全路径com.qf.package_class.MyInteger15db9742//MyInteger中重写toSting方法转化value值之后100int num2 myInteger.intValue(); System.out.println(nm2);//100四学生管理系统 --功能实现 StudentManagerSystemImpl类多态包装类 修改功能 注意 用Object原因pssex自动装箱将char装箱成Character,再将Character向上转型成Object(多态)方法里面又要向下转型 步骤 判断学生信息的合法性 判断是否有该学生 判断修改类型 switch判断修改类型对应修改功能 ​ 优化利用实现类中定义的静态常量提高代码可读性程序定死的可以用 对应功能判断修改的数据的合法性 ​ 修改数据 Override public int update(String classId, String id, int type, Object val) {//用Object原因pssex自动装箱将char装箱成Character,再将Character向上转型成Object(多态)方法里面又要向下转型//1.判断学生信息的合法性if (!StuInfoUtil.isClassId(classId) !StuInfoUtil.isId(id)) {return -1;}//2.判断是否有该学生int index query(classId, id);if (index -1) {return -2;}//3.判断修改类型switch (type) {// 利用实现类中定义的静态常量提高代码可读性程序定死的可以用case NAME:String nameVal (String)val; // 外部传进来的val处理前端可以屏蔽掉 // if (val instanceof String) { // String name (String)val; // }//判断修改的数据的合法性if (!StuInfoUtil.isName(nameVal)) {return -3;}//修改数据stus[index].setName(nameVal);break;case SEX:char sexVal (Character) val;//强转成Character类型再自动拆箱成char类型//判断修改的数据的合法性if (!StuInfoUtil.isSex(sexVal)) {return -3;}//修改数据stus[index].setSex(sexVal);break;case AGE:int ageVal (Integer) val;//强转成Integer类型再自动拆箱成int类型//判断修改的数据的合法性if (!StuInfoUtil.isAge(ageVal)) {return -3;}//修改数据stus[index].setAge(ageVal);break;case CLASS_ID:String classIdVal (String)val;//判断目标班级上是否有重复学生即修改班级号对应班级是否已经存在学生 ps2041 001 - 2042 001if (query(classIdVal, id) ! -1) {return -4;}//判断修改的数据的合法性if (!StuInfoUtil.isClassId(classIdVal)) {return -3;}//修改数据stus[index].setClassId(classIdVal);break;case ID:String idVal (String)val;//判断目标学号上是否有重复学生即修改学号对应学号是否已经存在学生 ps2041 001 - 2041 002if (query(classId, idVal) ! -1) {return -5;}//判断修改的数据的合法性if (!StuInfoUtil.isId(idVal)) {return -3;}//修改数据stus[index].setId(idVal);break;}return 1;}updateMenu main方法中封装前端查询方法(多态) 步骤 提示输入班级号、学号查询功能展示声明一个Object为空swicth匹配对应功能优化基础办法提示输入查询条件学生系统调用相应方法查询根据条件获取到的学生信息赋值给Object(多态向上转型)获取修改状态码学生系统调用添加方法返回修改状态码根据修改状态码进行条件判断修改的情况息 private static void updateMenu(Scanner scan, StudentManagerSystemImpl sms) {System.out.println(请输入需要修改学生的班级号);String classId scan.next();System.out.println(请输入需要修改学生的学号);String id scan.next();System.out.println(请选择需要修改的类型);System.out.println(1 - 修改姓名);System.out.println(2 - 修改性别);System.out.println(3 - 修改年龄);System.out.println(4 - 修改班级号);System.out.println(5 - 修改学号);int type scan.nextInt();System.out.println(请输入修改的值);Object val null;switch (type) {case 1:case 4:case 5:// String val scan.next();val scan.next();//String - Objectbreak;case 2:val scan.next().charAt(0);//char - Character - Objectbreak;case 3:val scan.nextInt();//int - Integer - Objectbreak;default:System.out.println(修改失败 -- 修改类型错误);return;}int updateCode sms.update(classId, id, type, val);if (updateCode -1) {System.out.println(修改失败 -- 学生信息不合法);}else if (updateCode -2) {System.out.println(修改失败 -- 没有该学生); }else if (updateCode -3) {System.out.println(修改失败 -- 修改值的信息不合法); }else if (updateCode -4) {System.out.println(修改失败 -- 目标班级上有学生); }else if (updateCode -5) {System.out.println(修改失败 -- 目标学号上有学生); }else if (updateCode 1) {System.out.println(修改成功); }}总结 1.学生管理系统 – 删除的思考题 2.学生管理系统 – 查询功能 3.包装类 概念 出现原因 手动装箱、手动拆箱 自动装箱、自动拆行 深入Integer的底层原理 – 重要 4.学生管理系统 – 修改功能
http://www.pierceye.com/news/931087/

相关文章:

  • 临海高端营销型网站建设地址建设网站有什么要素构成
  • wordpress 照片分享昌平网站建设推广优化seo
  • 石家庄做网站的公司有哪些做企业网站一般要多少钱
  • 电脑十大免费游戏网站万能搜索引擎入口
  • 菏泽网站建设公司排名有没有专做推广小说的网站
  • 东莞网站建设搭建因酷网站建设
  • 连云港百度推广网站建设ph域名网站
  • 网站建设营销模板网站开发招聘职位
  • 如何做网站的教程网站怎么建设以及维护
  • 信息港发布信息怎么做网站优化
  • 网页广告怎么关闭网站seo的主要优化内容
  • server2012做网站免费的图片做视频在线观看网站
  • 石狮网站建设折扣网站模板
  • 大连商城网站制作公司深圳网站改版公司
  • 网站备案需要的资料网站+做内容分发资格
  • 青岛模板自助建站百度怎么搜索图片
  • 国外做动运服装的网站安徽海通建设集团网站
  • 手机网站加百度商桥装修公司加盟免费
  • 网站开发背景知识wordpress第二步500
  • 114百事通做网站600郑州建站时间
  • 佛山网站建设科技公司南宁网页设计价格
  • 四字母net做网站怎么样如何开通微信小程序商城
  • 山西免费网站关键词优化排名婚恋网站开发
  • seo查询站长手机app制作网站模板
  • 微网站O2O平台平台开发怎么申请免费的网站
  • 加强网站互动交流平台建设自查p2p网站建设制作
  • 泉州网站建设平台成都百度seo公司
  • php响应式网站模板下载陕西建设集团招聘信息网站
  • 网站品牌推广设计网站建设单页
  • 秦皇岛酒店网站设计wordpress 退出 跳转