-------------------------------------------------android培训、java培训期待与您交流!----------------------------------
一、静态导入(import static)
1.import 语句可以导入一个类或某个包中的所有类
2.import static 语句导入一个类中的某个静态方法或所有静态方法,还可以静态字段
import static java.lang.Math.*;
public class StaticInput {
public static void main(String[] args) {
//下的静态方法和静态字段是Math类的
System.out.println(abs(-5));
System.out.println(PI);
}
}
二、可变参数
特点:
1.只能出现在参数列表的最后
2.“...”位于变量类型和变量名之间,前后有无空格都可以
3.调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
//可变参数放入最后,且仅有一个
public static void sum(String s,int... num)
{
System.out.println(s);
int sum=0;
for(int i:num)
{
sum+=i;
}
System.out.println(sum);
}
public static void main(String[] args)
{
//以下三种方式均可
//prams.sum("a",new int[]{1,2,3});
int[] arr={1,2,3};
sum("Em", arr);
System.out.println("----------");
sum("b",1,2,3);
}
三、增强for循环
语法:
For(type 变量名:集合变量名){...}
注意:
1.迭代变量必须在()中定义
2.集合变量可以是数组或实现了Iterable接口的集合类
List<String> arrs=new ArrayList<String>();
arrs.add("Em");
arrs.add("Gm");
for (String arr : arrs) {
System.out.println(arr);
}
四、自动装箱与自动拆箱
//两个新对象
Integer i1=new Integer(15);
Integer i2=new Integer(15);
System.out.println(i1==i2);//反回false
//自动装箱为Integer对象,如果在-128~127之间不会创建新对象,在常量池里保存,享元模式
Integer i3=15;
Integer i4=Integer.valueOf(15);
System.out.println(i3==i4);
System.out.println(i3+1);//自动拆箱取值
五、枚举
作用:
让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制程序中填定的非法值,普通变量的方式在开发阶段无法实现这一目标。
1.使用普通类实现枚举
private WeekDay(){}
//使用匿名子类,使方法nextDay里不用那么if else判断
public final static WeekDay MON=new WeekDay(){
public WeekDay nextDay() {
return SUN;
}
};
public final static WeekDay SUN=new WeekDay(){
public WeekDay nextDay() {
return MON;
}
};
public abstract WeekDay nextDay();
@Override
public String toString() {
return this==MON?"MON":"SUN";
}
2.深入枚举
1)枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法
2)枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后要有分号与其他成员分隔。
//各对象实现抽象方法,返回自已,并调用有参数构造方法,单例可用枚举来写,因为构造方法私有,只有一个对象
public enum Chord
{
//各对象实现抽象方法,返回自已,并调用有参数构造方法,单例可用枚举来写,因为构造方法私有,只有一个对象
Am("am"){
public Chord nextChord() {
return Bm;
}
},Bm("bm"){
public Chord nextChord() {
return Cm;
}
},Cm("cm"){
public Chord nextChord() {
return Am;
}
};
private String str;
public abstract Chord nextChord();
//构造方法要私有
private Chord(String str)
{
this.str=str;
}
}
//一些方法
//遍历反枚举对象
for(Chord ch:Chord.values())
{
System.out.println(ch.compareTo(c));//返回它们的位置相减值
}
Chord cho=Chord.valueOf("Fm");//字符串到枚举
System.out.println(cho);
System.out.println("----------格式输出-----------");
//格式输出%n换行
System.out.printf("%d,%s,%n",cho.ordinal(),cho);
-------------------------------------------------android培训、java培训期待与您交流!----------------------------------