目录
- Java API
- 枚举
- 优势
- 代码示例
- 包装类
- 作用
- 包装类和基本数据类型的对应关系
- 包装类的构造方法
- 包装类的常用方法
- 装箱和拆箱
- 留一个问题大家猜猜看
- 包装类的特点
- Math类
- Random类
- 代码示例
Java API
- Java API(Java Application Programming Interface)
即Java应用程序编程接口,它是运行库的集合,预先定义了一些接口和类,程序员可以直接使用已经打包的接口和类做具体的应用。 - 除了“应用程序编程接口”的意思外,API也称为帮助文档
Java语言的强大之处在于它提供了多种多样的类库,从而大大提高了程序编程的效率和质量。
枚举
优势
- 枚举可以使代码易于维护,保证类型安全
- 枚举易于输入,使用枚举赋值,只需要输入枚举名,然后输入点操作符就能将所有的值显示出来。
- 枚举使代码更清晰,允许使用描述性的名称表示数据,使用时直观方便
相当于给了你固定几个选项,从中选择一个,而不让你随意给变量赋值,随意给方法传参,这样保证数据的安全性、准确性和合法性
代码示例
一周的索引、名称、状态
public enum WeekEnum {
Mon(1,"星期一","忙Day"),
Tue(2,"星期二","求死Day"),
Wed(3,"星期三","未死Day"),
Thur(4,"星期四","社死Day"),
Fri(5,"星期五","福来Day"),
Sat(6,"星期六","塞车Day"),
Sun(7,"星期日","丧Day");
private int index;
private String name;
private String value;
WeekEnum(int index, String name, String value) {
this.index = index;
this.name = name;
this.value = value;
}
public int getIndex() {
return index;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
}
根据传入的星期几获取当天的状态
public class WeekDemo {
private String day;
private String status;
public WeekDemo(WeekEnum weekEnum) {
this.day = weekEnum.getName();
this.status = weekEnum.getValue();
}
public void showStatus(){
System.out.println(day+":"+status);
}
}
测试
WeekDemo weekDemo = new WeekDemo(WeekEnum.Sun);
weekDemo.showStatus();
包装类
- Java语言是面向对象的,但是Java中的基本数据类型却不是面向对象的,这在实际开发中存在很多的不便。为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类,称为包装类。
- 每个基本类型在java.lang包中都有一个相应的包装类
作用
- 提供了一系列实用的属性和方法,方便对象的操作。
- 集合不允许存放基本数据类型数据,存放数字时,要用包装类型。
包装类和基本数据类型的对应关系
包装类的构造方法
- 所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
- 包装类的构造方法有两种形式
1.public Type(type value),Type表示包装类,参数type为基本数据类型。Integer i=new Integer(520);
2.public Type(String value),除Character类外其他包装类可将一个字符串作为参数构造它们的实例,Type表示包装类,参数type为基本数据类型。Integer i=new Integer(“520”);
- Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
- 当包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译通过,运行时NumberFormatException异常
包装类的常用方法
- 所有包装类都有如下方法:public static Type valueOf(type value)
Integer i=Integer.valueOf(520);
- 除Character类外,其他包装类都有如下方法:public static Type valueOf(String value)
Integer i=Integer.valueOf(“520”);
- XXXValue()方法:包装类转换成基本类型
Integer num=new Integer(20);
int age=num.intValue();
- 所有包装类都有如下方法(Character类除外!)
public static 基本数据类型 parseXXX(String value)
byte b=Byte.parseByte("125");
short s=Short.parseShort("3256");
int num=Integer.parseInt("36");
long l=Long.parseLong("123456789");
float f=Float.parseFloat("3.14");
final double PI=Double.parseDouble("3.14159");
boolean bool=Boolean.parseBoolean("false");
parseXXX()方法的作用:把字符串转换为相应的基本数据类型数据
- toString()方法:以字符串形式返回包装对象表示的基本类型数据
byte bt=12;
String b=Byte.toString(bt);
short sh=25;
String s=Short.toString(sh);
String num=Integer.toString(520);
String l=Long.toString(123456789l);
String f=Float.toString(3.14f);
String PI=Double.toString(3.1415926d);
String bool=Boolean.toString(false);
装箱和拆箱
Java 5.0版本以后,程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成
- 装箱:基本类型转换为包装类的对象
- 拆箱:包装类对象转换为基本类型
Integer intObj=5; //装箱
int intValue=intObj; //拆箱
留一个问题大家猜猜看
Integer c = 100;
Integer d = 100;
System.out.println(c == d);
Integer a = 128;
Integer b = 128;
System.out.println(a == b);
输出结果是什么呢?
包装类的特点
- 所有包装类都是final类型,不能创建它们的子类
- Java 5.0版本以后,程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成。
- JDK1.5后,允许基本数据类型和包装类型进行混合数学运算。
- 包装类并不是用来取代基本数据类型的,在基本数据类型需要用对象表示时使用
Math类
Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI
Random类
Random类:用于生成伪随机数流
代码示例
public class Lucky {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String numStr = null;
String patten = "[0-9]+";
Random random = new Random();
int randomNum = random.nextInt(10);
do {
System.out.println("请输入四位会员号:");
numStr = sc.nextLine();
if (!Pattern.matches(patten, numStr) || numStr.length() != 4) {
System.out.println("您输入的字符不合法,请重新输入:");
}
} while (!Pattern.matches(patten, numStr) || numStr.length() != 4);
int num = Integer.parseInt(numStr);
int centenary = (num / 100) % 10;
System.out.println("您" + ((centenary == randomNum) ? "是" : "不是") + "幸运会员,随机数字为:" + randomNum + ",您的会员号百位为:" + centenary);
}