接口:综合案例
1.构造器2.ATM系统3.反转和随机排名4.随机验证码5.评委打分6.加密数字7.数组的拷贝8.抢红包9.找素数10.双色球系统11.电影系统12.this使用13.do-while循环格式14.for循环应用场景15.死循环Game16.break和continue17.嵌套18.随机数Random19.死循环3种写法20.switch21.Whlie22.方法23.void24.方法125.方法重载26.return27.类与对象的一些掌握事项28.String使用时的几个注意事项29.String验证码案例30.快速熟悉String提供的处理字符串的常用方法31.String案例32.菜品管理案例33.掌握this应用34.thisDemo35.成员变量和局部变量的区别36.包37.通过案列理解变量类型的应用场景38.类方法的用法39.掌握使用类方法、实例方法时的几点注意事项40.认识两种代码块,了解他们的特点和基本作用41.单例设计模式42.懒汉式单例设计模式43.继承:子类、父类44.继承的好处45.权限修饰符46.单继承、多层继承47.方法重写48.子类访问的特点49.子类构造器的特点50.子类构造器常见应用51.通过this(...)调用兄弟构造器的作用52.什么是多态?多态的好处53.final54.常量55.抽象类abstract56.关于模板方法设计:抽象类57.接口58.接口的好处
59.接口:综合案例
60.从JDK.8开始接口新增的方法61.接口注意事项62.内部类63.静态内部类,局部内部类64.匿名内部类65.匿名内部类详细写法66.认识枚举67.枚举的常见应用场景68.泛型69.泛型类70.泛型接口71.泛型方法、泛型通配符、上下限72.泛型的注意事项:擦除问题、基本数据类型73.API介绍74.toString 和equals方法75.克隆:浅克隆和深克隆76.Objects类:常见方法77.包装类78.StringBuilder79.StringBuilder拼接案例80.StringJoiner81.System82.Runtime83.BigDecmal84.时间日期类85.SimpleDateFormat86.秒杀案例87.传统时间:Calendar88.JDK 8 新增时间89.JDK 8 新时间LocalDate、LocalTime、LocalDateTime90.JDK 8 新时间Zoneld、ZonedDateTime91.JDK 8 新时间Instant92.JDK 8 新时间 DateTimeFormatter93.JDK 8 新时间 Period、Duration94.Arrays类:基本使用95.Arrays类:自定义排序规则的方式一96.Arrays:自定义排序规则的方式二97.认识Lambda表达式98.JDK 8 新特性:Lambda表达式省略99.JDK 8 新特性:方法引用:静态方法和实例方法100.JDK 8 新特性:特定类型方法的引用
package com.Demo4; public class Test { public static void main(String[] args) { //目标:完成学生信息管理的实例 ClassManage classManage=new ClassManage(); classManage.printInfo(); classManage.printScore(); } }
package com.Demo4; public class Student { private String name; private char sex; private double score; public Student() { } public Student(String name, char sex, double score) { this.name = name; this.sex = sex; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public char getSex() { return sex; } public void setSex(char sex) { this.sex = sex; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } }
package com.Demo4; import java.util.ArrayList; public interface StuentOperator { void printAllInfo(ArrayList<Student> students); void printAverageScore(ArrayList<Student> students); }
package com.Demo4; import java.util.ArrayList; public class ClassManage { private ArrayList<Student> students=new ArrayList<>(); private StuentOperator stuentOperator=new StuentOperatorlmp1(); //切换第二套方案 改成 StydentOperatorImpl2 public ClassManage(){ students.add(new Student("迪丽热巴",'女',99)); students.add(new Student("古力娜扎",'女',100)); students.add(new Student("马儿扎哈",'男',89)); students.add(new Student("卡尔扎巴",'男',80)); students.add(new Student("德莱文",'男',60)); } //打印全部学生信息 public void printInfo(){ stuentOperator.printAllInfo(students); } //打印全班全部学生的平均分 public void printScore(){ stuentOperator.printAverageScore(students); } }
package com.Demo4; import java.util.ArrayList; public class StuentOperatorlmp1 implements StuentOperator { @Override public void printAllInfo(ArrayList<Student> students) { System.out.println("-----------------全班全部学生信息如下--------------"); for (int i = 0; i < students.size(); i++) { Student s=students.get(i); System.out.println("姓名:"+ s.getName()+",性别:"+s.getSex()+",成绩:"+s.getScore()); } System.out.println("------------------------------------------------"); } @Override public void printAverageScore(ArrayList<Student> students) { double allScore=0.0; for (int i = 0; i < students.size(); i++) { Student s=students.get(i); allScore+=s.getScore(); } System.out.println("平均分:"+(allScore)/students.size()); } }
package com.Demo4; import java.util.ArrayList; public class StydentOperatorImpl2 implements StuentOperator{ @Override public void printAllInfo(ArrayList<Student> students) { System.out.println("-----------------全班全部学生信息如下--------------"); int count1=0; int count2=0; for (int i = 0; i < students.size(); i++) { Student s=students.get(i); System.out.println("姓名:"+ s.getName()+",性别:"+s.getSex()+",成绩:"+s.getScore()); if (s.getSex()=='男'){ count1++; }else { count2++; } } System.out.println("男生人数为:"+count1+",女生人数为:"+count2); System.out.println("全班人数为:"+students.size()); System.out.println("------------------------------------------------"); } @Override public void printAverageScore(ArrayList<Student> students) { double allScore=0.0; double max=students.get(0).getScore(); double min=students.get(0).getScore(); for (int i = 0; i < students.size(); i++) { Student s=students.get(i); if (s.getScore()>max ) max=s.getScore(); if (s.getScore()<min ) min=s.getScore(); allScore+=s.getScore(); } System.out.println("学生的最高分是:"+max); System.out.println("学生的最低分是:"+min); System.out.println("平均分:"+(allScore-max-min) / (students.size()-2)); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现