一、java API中的常用包
- java.lang:编写java程序时最广泛使用的包,自动导入到所有的程序中,包含了java程序的基础类和接口。包装类、Math类String类等常用的类都包含在此类中,java.lang包还提供了用于管理类的动态加载、外部进程创建、主机环境查询和安全策略实施等“系统操作的类”。
- java.util:包含了系统辅助类,特别是Collection、List和Map等集合类
- java.io:包含了与输入、输出有关的类
- java.sql:包含了与数据库相关的类。
二、认识枚举
2.1关于枚举
概述
枚举是指由一组固定的常量组成的类型。使用关键字enum定义
定义语法格式
[Modifier] enum enumName {
enumConstantName[,enumConstantName2...[;]]
//[filed,method]
}
- Modifer是访问修饰符,同public
- enum是枚举的关键字
- enumConstantName[,enumConstantName2…[;]]表示枚举常量列表,枚举常量之间以逗号隔开。
- //[filed,method]表示其他的成员,包括构造方法,置于枚举常量的后面
- 在枚举中,除了定义枚举常量,还定义了其他成员,则枚举常量列表必须以分号(;)结尾。
示例1:定义表示性别的枚举。两个枚举常量分别代表“男”,“女”
public enum Genders{
Male,Female
}
注解:枚举其实就是一种类型,是java.lang.Enum类的子类,继承了Enum类的许多有用的方法。
2.2使用枚举实现输出每周日程信息
说明:
定义一个枚举,其中包括七个枚举常量,代表一周中的七天,编程查看实现一周中每天的日程安排
代码呈现
public class Mei {
public enum Week {
MON, TUE, WED, THU, FRI, SAT, SUN
}
/*
查看日程安排
星期几
*/
public void doWhat(Week day){
switch (day){
case MON:
case TUE:
case WED:
case THU:
System.out.println("工作日,努力写代码");
break;
case SAT:
System.out.println("星期六,休息,看电影");
break;
case SUN:
System.out.println("星期日,跟女朋友约会");
break;
default:
System.out.println("一个星期不就七天?");
}
}
public static void main(String[] args) {
Mei m = new Mei();
m.doWhat(Week.MON);
Week sat = Week.SAT;
m.doWhat(sat);
}
}
输出结果:
工作日,努力写代码
星期六,休息,看电影
注解:
在这一示例中,switch结构传入的变量day是Week类型,即枚举类型,case后面的常量类型要与之匹配,必须是Week中定义的枚举常量。
枚举的好处的总结
- 枚举可以使代码更易于维护,有助于确保为变量指定合法的、期望的值
- 枚举更易于编程时输入,使用枚举赋值,只需要输入枚举名,然后输入一个点(.),就能将所有的值显示出来
- 枚举使得代码更加清晰,允许用描述性的名称表示数据,使用时直观方便
三、包装类
3.1包装类概述
由于java中的基本数据类型不是面向对象的,在实际开发中存在许多的不足的问题,为了解决不足,实际了包装类,
有哪些包装类?
Byte、Boolean、Short、Character、Integer、Long、Float、Double
包装类的作用
- 包装类作为和基本数据类型对应的类的存在,方便对象的操作
- 包装类包含每种基本数据类型的相关属性,如最大值、最小值等,以及相关的操作方法
3.2包装类和基本数据类型的转换
(1)基本数据类型转换为包装类
在Java中,基本数据类型数据创建包装类对象通常可以采用如下两种方法。
1)使用包装类的构造方法(两种形式)
- public Type(type value)
- public Type(String value)
注解:其中,Type表示包装类,参数Type为基本数据类型
另外,针对每一个包装类,都可以使用关键字new将一个基本数据类型值包装为一个对象。
例如:
Integer intValue = new Integer(21)
注意:不能使用第二种形式的构造方法创建Character类型的包装类对象
2)使用包装类的valueOf方法
包装类中一般包含静态的重载的valueOf方法,他也可以接收基本数据类型数据和字符串作为参数并返回包装类的对象。以Integer包装类为例有下面的valueOf方法。
方法 | 说明 |
---|---|
Integer valueOf | 返回一个表示指定的int值的Integer对象 |
Integer valueOf(String s) | 返回保存指定的String指的Integer对象 |
Integer valueOf(String s ,int index) | 返回一个Integer对象,该对象中保存了用第二个参数提供的基数(二进制、十进制等)进行解析时指定的String中提取的值 |
注意:Character类的valueOf方法只有第一种,即返回一个表示char值的Character对象
(2)包装类转换成基本数据类型
采用方法:
public type typeValue();其中,type指的是基本数据类型
具体用法
Integer integerId = new Integer(25);
int intId = integerId.intValue();
Boolean b1 = Boolean.valueOf(true);
boolean bool = b1.booleanValue()
(3)基本类型和包装类的自动转换
具体用法
Integer intObject = 5;//基本数据类型转换成包装类
int intValue = intObject//包装类转换成基本数据类型
四、Math类
4.1概述
此类提供了一些基本数学运算和几何运算的方法。此类中的所有方法都是静态的。这个类是final类,因此没有子类。
Math类常见方法
方法 | 说明 | 例如 |
---|---|---|
static double abs(double a): | 返回double值的绝对值 | Math.abs(-3.5);返回3.5 |
static double max(double a , double b) | 返回double值中比较大的一个 | Math.max(2.5,90.5);返回90.5 |
static double random() | 返回一个随机的double值。该值大于等于0.0且小于1.0 |
4.2示例:商场的抽奖规则如下:会员号的百位数字等于产生的随机数字即为幸运会员
实现以下功能:
- 从键盘接收会员号
- 生成随机数
代码呈现
import java.util.Scanner;
public class Chou {
public static void main(String[] args) {
int random = (int)(Math.random()*10);
Scanner input = new Scanner(System.in);
System.out.println("幸运抽奖\n");
System.out.println("请输入四位会员号");
int customerNo = input.nextInt();
int baiWei = customerNo/100%10;
if (baiWei==random){
System.out.println("会员"+customerNo+"用户,恭喜您中奖了");
} else{
System.out.println("会员"+customerNo+"用户,再接再厉");
}
}
}