1:枚举
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。
JDK1.5 之前,我们定义常量都是: public static fianl.... 现在又有了枚举,可以把相关的常量分组到一个枚举类型里,
枚举指由一组固定的常量组成的类型 ;
可以将枚举看成一种特殊的类,枚举的思想很简单,也很方便:它代表了一组固定的常量值。
声明枚举时必须使用 enum 关键字,然后定义枚举的名称,枚举声明的语法如下:
Public enum enumname{
enum-body, //一般写常量
}
经典案例:使用枚举描述一个星期得计划
public void doWhat(int day){
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日,敲代码");
break;
case 6:
System.out.println("周六,继续代码");
break;
case 7:
System.out.println("周日,先睡觉,在敲代码");
break;
default:
System.out.println("你写错了,赶紧回去写代码");
break;
}
}
public static void main(String[] args) {
Test t = new Test();
t.doWhat(1);
也可以使用枚举实现
2:包装类
1:包装类介绍
Object 类中提供了很多有用的方法,这些方法只有对象才能调用,
基本数据类型不是对象,java中的基本数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,而像String却可以,只因为String是一个对象。基本数据类型由于这样的特性,导致无法参与转型,泛型等过程。为了弥补这个缺陷,java提供了包装类。
Java为每种基本数据类型分别设计了对应的类,称之为包装类。
其实集合在存储数据的时候,如果存储的是基本数据类型的话,在存储的时候,会将基本数据类型转换成包装类之后在进行存储。
简单的理解:Java中的基本类型功能简单,不具备对象的特性,为了使基本类型具备对象的特性,所以出现了包装类,就可以像操作对象一样操作基本类型数据。
记住:
基本数据类型及对应的包装类 | |
基本数据类型 | 对应的包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
每个包装类的对象可以封装一个相应的基本类型的数据;
所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例:
如:
Integer in = new Integer(12); // 创建了一个整数类型的对象,其值为12
注意:
Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
当Number包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译不通过,运行时会抛出NumberFormatException异常
2:包装类的常用方法
1:基本数据类型与包装类的转换
基本类型和对应的包装类可以相互装换:
- 基本类型转为包装类称为装箱,例如把 int 包装成 Integer 类的对象;使用包装类的构造方法;
- 包装类转为基本类型称为拆箱,例如把 Integer 包装类型转为 int ; 使用intValue();
2:toString 基本类型->字符串
toString(): 以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)
String str = Integer.toString(88);
String str2 = Double.toString(88.9);
3:parseXXX(), 字符串->基本类型
parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)
long long1 = Long.parseLong("123");
boolean b = Boolean.parseBoolean("true");
4:valueOf(), 基本类型->包装类
所有包装类都有这样的方法:valueOf(type value);作用是将一个基本类型转换为包装类;
Integer in = Integer.valueOf(12);
Double valueOf = Double.valueOf(12.3);
Boolean valueOf2 = Boolean.valueOf(true);
3:装箱和拆箱
- 基本类型转为包装类称为装箱,
- 例如把 int 包装成 Integer 类的对象;使用包装类的构造方法;valueOf()方法
- 包装类转为基本类型称为拆箱,
- 例如把 Integer 类的转为 int ; 使用intValue();
自动装箱:Integer i = 12;
自动拆箱:int num = i;
4:Math
Java的Math类封装了很多与数学有关的属性和方法。
Abs - 求绝对值
Max/min - 最大值最小值
random() - 生成一个0-1之间的随机数
5:Random 类介绍
Java语言中,随机数的产生是由类库中的Random类实现的。Random类是一个随机数产生器,构造方法Random()中使用当前的时间来初始化Random对象,因为没有任何时刻的时间是相同的,所以可以减少随机数序列相同的可能性。
Random rand = new Random();
int n=rand.nextInt();//生成一个整数类型的随机整数
Random类的nextInt()方法还可以在有限范围内产生随机数,其方法声明为:
public int nextInt(int n);
该方法返回一个伪随机数,它是从此随机数生成的序列中取出的、【0,n)之间均匀分布的整型值
6:String
字符串是java中使用最频繁的一种类型,使用String来表示。
注意:字符串是常量;它们的值在创建之后不能更改。
常用方法:
数组的长度:length 属性,集合的长度,字符串的长度,length方法
CharAt(int index) ; 返回指定位置的字符
length() - 求字符串的长度
Equals() - 比较两个字符串是否相同
equalsIgnoreCase() - 忽略大小写比较
toUpperCase() - 转换为大写
toLowerCase() - 转换为小写
concat() - 字符串链接, + 是一样的
public String[] split(String regex):根据给定表达式的匹配拆分此字符串
方法名 | 说明 |
public int indexOf(int ch) | 搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1 |
public int indexOf(String value) | |
public int lastIndexOf(int ch) | 搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1 |
public int lastIndexOf(String value) | |
public String substring(int index) | 提取从位置索引开始的字符串部分 |
public String substring(int beginindex, int endindex) | 提取beginindex和endindex之间的字符串部分 |
public String trim() | 返回一个前后不含任何空格的调用字符串的副本 |
作业:
1:定义一个方法接受枚举类型的参数,用户类:姓名,性别,年龄,设置性别的时候,写一个关于性别的枚举
2: