自动拆箱和装箱
public class Demo1{
public static void main(String[] args){
Integer intObj1=3;//自动装箱
Integer intObj2=new Integer(3);//手动装箱
int i1=intObj;//自动拆箱
int i2=intObj.intValue();//手动拆箱
}
}
增强for循环
public class Demo2{
public static void main(String[] args){
int[] aa={1,2,3,4,5};
for(int a:aa){
System.out.println(a);
}
}
}
可变参数:
1. 用...来定义
2. 本质是一个数组
3. 可以传入任意一个参数
4. 可变参数只能放在方法参数的最后一个
public class Demo3{
public double sum(int a,int b,double...ds){
double sum=0;
sum=a+b;
if(ds!=null){
for(int i=0;i<ds.length;i++){
sum+=ds[i];
}
}
return sum;
}
public static void main(String[] args){
Demo3 d3=new Demo3();
System.out.println(1,2);
System.out.println(1,2,3);
System.out.println(1,2,3,4);
System.out.println(1,2,null);
System.out.println(1,2,new double[]{1,2,3,4,5});
}
}
静态导入:
1. 用import static 包名.类名,静态属性名或静态方法名
2. 可以提高加载效率
3.降低了可读性,建议要慎用
类Demo1:
import static day20.jdk5.staticimport.Demo2.kk;
import static dat20.jdk5.staticimport.Demo2.method;
public class Demo1{
public static void main(String[] args){
//静态导入方式
System.out.println(kk);
method();
//建议方式
System.out.println(Demo2.kk);
Demo2.method();
}
}
类Demo2:
public class Demo2{
public static int kk=100;
public static void method(){}
}
枚举(enum)
1. 当取值为几个(有限个)固定的值,可以使用枚举类型
2. 枚举是一个数据类型
3. 普通的枚举
public enum RequestMethod{
GET,POST,DELETE,PUT
}
public enum Week{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sundat
}
4. 枚举也可以有方法和属性和构造方法,但是构造方法必须是私有的
5. 枚举还可以实现接口,但不能进行继承,枚举也可以包含抽象方法
6. 所有的自定义的枚举都默认继承自java.lang.Enum类
String name();
int ordinal();
public enum RequestMethod{
GET,POST,DELETE,PUT
}
public enum Week{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sundat
}
public class Demo1{
public void testMethod1(Week week){
switch(week){
case Monday:
break;
case Tuesday;
break;
case Wednesday;
break;
case Saturday;
break;
case Friday;
break;
case Sunday;
break;
}
}
public static void main(String[] args){
System.out.println(Week.Monday.name());//输出对象Monday的名字
System.out.println(Week.Monday.ordinal());//输出对象Monday所在位置
System.out.println(RequestMethod.POST.ordinal());//输出对象POST所在位置
}
}
以下两种方式等同
public enum Rank{
A("90-100"),
B("80-89"),
C("70-79"),
D("60-69"),
E("0-59");
private String score;
private Rank(String score){
this.score=score;
}
}
public enum Rank1{
static final Rank1 rankA=new Rank1(90-100);
static final Rank1 rankB=new Rank1(80-89);
static final Rank1 rankC=new Rank1(70-79);
static final Rank1 rankD=new Rank1(60-69);
static final Rank1 rankE=new Rank1(0-59);
public int score;
private Rank1(){}
private Rank1(int score){
this.score=score;
}
}