大家好,欢迎来到IT知识分享网。
本课目标
- 熟练定义并使用枚举类型
- 熟练使用包装类
- 会使用Math类进行数学运算
- 会使用 Random 类
一、Java API
1.Java API (Java Application Programming Interface);即Java应用程序编程接口,是运行可的集合,预先定义了一些接口和类,程序员可以直接使用已经打包的接口和类做具体的应用
二、枚举
1.定义:指有一组固定的常量组成的类型
2.枚举案例:
Week
,其中包含
7
个枚举常量,代表一周中的
7
天。
定义一个WeekDemo类,定义一个方法,方法签名为public void doWhat(Week day)。在方法体实现多重判断,如果是MON、TUE、WED、THU、FRI ,则输出“工作日,努力写代码”;如果是SAT,则输出“星期六,休息!看电影”;如果是SUN,则输出“星期日,休息!打篮球”;都不匹配,则输出“地球上一个星期就7天”。
TestWeekDemo类,编程实现查看一周中每天的日常安排
创建枚举类
public enum WeekEnum { Mon,TUE,WED,THU,FRI,SAT,SUN; }
public class WeekDemo { public void doWhat(WeekEnum weekEnum){ if(weekEnum == null){ System.out.println("星期不能为空!"); return; } switch (weekEnum){ case Mon: case TUE: case WED: case THU: case FRI: System.out.println("工作日,努力写代码"); break; case SAT: System.out.println("星期六,休息,RAP"); break; case SUN: System.out.println("星期日,休息,打篮球"); break; default: System.out.println("地球上一周只有七天"); } } }
public class Test { public static void main(String[] args) { WeekDemo weekDemo = new WeekDemo(); weekDemo.doWhat(WeekEnum.FRI); } }
3.枚举的优势
- 枚举可以是代码易于维护,保证类型安全
- 枚举易于输入,使用枚举赋值,只要输入枚举名,然后输入点操作符就能将所有的值显示出来
- 美剧是代码更清晰,允许使用描述性的名称表示数据,使用时直观方便
public enum WeekEnum { Mon("星期一","语文"), Tue("星期二","数学"), Wed("星期三","英语"), Thur("星期四","物理"), Fri("星期五","化学"), Sat("星期六","生物"), Sun("星期日","休息"); private String name; private String subject; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } WeekEnum(String name, String subject) { this.name = name; this.subject = subject; } }
public class WeekDemo { private String day; private String course; public WeekDemo(WeekEnum weekEnum) { this.day = weekEnum.getName(); this.course = weekEnum.getSubject(); } public void show(){ System.out.println(day + "\t" + course); } }
public class WeekTest { public static void main(String[] args) { WeekDemo weekDemo = new WeekDemo(WeekEnum.Thur); weekDemo.show(); } }
三、包装类
- Java语言是面向对象的,但其基本数据类型却不是面向对象的,为了解决这个问题,在设计时为每个基本数据类型设计了一个对应的类,称为包装类
- 每个基本数据类型在 java.lang 包中都有一个相对应的包装类
- 包装类的作用:
提供了一系列使用的属性和方法,方便对象操作
集合不允许存放基本数据类型,存放数字时,要用包装类型
1.包装类和基本数据类型的对应关系
2.包装类的构造方法
- 所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
- Boolean 类构造方法参数为 String 类型时,若该字符串内容为 true (不考虑大小写),则该Boolean 对象表示为 true 否则表示为false
- 当包装类构造方法参数为 String 类型时,字符串不能为 null ,且该字符串必须可解析为相应的基本数据类型,否则编译通过,运行时NumberFormatException异常
3.包装类的常用方法
四、装箱和拆箱
装箱:基本数据类型转换成包装类的对象
拆箱:包装类对象转换成基本类型
1.包装类的特点
- 所有包装类都是 final 类型,不能创建它们的子类
- Java 5.0版本以后,程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成
- JDK1.5后,允许基本数据类型和包装类型进行混合数学运算
- 包装类并不是用来取代基本数据类型的;在基本数据类型需要用对象表示时使用
五、Math 类
- Math 类提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI
|
方法名 |
备注 |
|
abs(int a) |
返回 int 值的绝对值 |
|
ceil(double a) |
返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。 |
|
floor(double a) |
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。 |
|
max(int a, int b) |
返回两个 int 值中较大的一个。 |
|
min(int a, int b) |
返回两个 int 值中较小的一个。 |
|
random() |
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。 |
|
round(double a) |
返回最接近参数的 long。 |
|
sqrt(double a) |
返回正确舍入的 double 值的正平方根。 |
练习:幸运会员
public class LuckNum { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int luckNum = (int)(Math.random()*10); String num = null; String patten = "[0-9]+"; do { System.out.print("请输入四位数字:"); num = sc.next(); if (!Pattern.matches(patten,num) || num.length() != 4) { System.out.println("输入不合法,请重新输入"); } }while (!Pattern.matches(patten,num) || num.length() != 4); int num1 = Integer.parseInt(num); int bai = num1 / 100 % 10; System.out.println("是否是幸运客户:" + (bai == luckNum)); System.out.println("幸运数字是:" + luckNum); } }
六、Random 类
- Random 类:用于生成伪随机数流
练习:随机生成1~365之间的数
public class RandomUtil { public static int getRandom(int start,int end){ return new Random().nextInt(end + 1 - start) + start; } public static void main(String[] args) { System.out.println(RandomUtil.getRandom(1,365));
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121347.html










