这两天学习内部类外部类、枚举和常用类和正则表达式
内部类:
分类:静态内部类,非静态内部类,局部内部类(忽略),匿名内部类;
枚举:
格式:public enum 枚举名称{}
注意事项:枚举类型里面,常量必须放在首行,后面才能定义变量;
例子:
public enum Color{
int a;//错误,这句话必须放在常量的后面;
RED(“”,2),GREEN(“”,3);//正确;
//构造方法:枚举里面的常量,都会去调用构造方法;
Color(String name,int age){
System.out.println(name+age);
System.out.println(this);//输出枚举里面所有常量的方法;
}
//用toString()覆盖枚举里面的构造方法;
public String toString(){
return name+"_"+age;
}
public static void main(String [] agrs){
Color c=Color.RED;//相当于实例化一个对象;
System.out.println(c.toString());
}
}
常用类:(String类)
(1)特点:值不可变,并不是不能赋值;
(2)常见的方法:构造方法回去API文档;
charAt(),length(),indexOf(),substring(),valueOf(),split(),toUpperCase(),toLowerCase(),trim();
(必须得掌握,有多载时,要注意使用)
正则表达式:
Pattern Matcher类:
常用方法:complie(),find(),group(),matcher(),
记住三句话:
String s="abc123";
Pattern p=Pattern.complie("\\d");//匹配模式;
Matcher m=p.matcher(s);//匹配的对象是谁?
while(m.find()){
System.out.println(m.group());
}
注意事项:放在java.util.regex找到对应的类,匹配模式是正则表达式的核心部分;多思考内存存放问题?
StringBuffer类:
(1)特点:值可变,原因(从内存分析角度,调用本类的构造方法+返回自己的类型)
(2)常用方法:append(),insert(),delete(),reverse();
八大包装类型:
Byte,Short,Integer,Long,Character,Float,Double,Boolean;
区别:包装类型与基本类型的区别在于包装类型有自己的方法,而基本类型没有;
Math和Random类:
(1)Math:abs(),sqrt(),pow(),random(),round();
(2)Random类与Math.random()之间的区别:后者更加稳定高效,不同的写法,返回的类型也不一样(一个 int类型,一个double类型);
例子:
Random r=new Random();
int b=r.nextInt();//随机的范围在int类型的范围;
int b=r.nextInt(10);//随机的范围从0到9;
int b=r.nextInt(10)+1;//随机的范围从1到10;
Math.random();//随机的范围从0到1,但取不到1;