一、枚举
为什么需要枚举:限制赋值。将有可能的值都列举出来,赋值时只能赋列举出的值
枚举:enum
①类型安全
②易于输入
③代码清晰
练习1:
环境准备:
public enum Genders {
男,女;
}
public class Student {
public Genders sex;
public Genders getSex() {
return sex;
}
public void setSex(Genders sex) {
this.sex = sex;
}
public void show(){
System.out.println("性别是:"+sex);
}
}
Student stu = new Student();
stu.setSex(Genders.女);
stu.show();
练习2:
public class Test {
// 定义枚举
public enum Unit {
U1,U2,U3
}
public void show(Unit unit) {
switch (unit) {
case U1:
System.out.println("第一单元打基础");
break;
case U2:
System.out.println("第二单元可以胜任Java程序开发");
break;
case U3:
System.out.println("第三单元可以胜任企业级Java开发");
break;
default:
System.out.println("输入有错");
}
}
public static void main(String[] args) {
Test t = new Test();
t.show(Unit.U1);
Unit u = Unit.U2;
t.show(u);
t.show(Unit.U3);
}
}
二、包装类
2.1 为什么使用包装类:
①实现基本类型之间的转换
②便于函数传值(泛型时不能传基本数据类型)
③在某处用到Object 类型时,方便将基本数据类型转换
2.2 相关描述:
作用:
①包装类把基本数据类性转换为对象(每个基本类型在java.lang包中都有一个相应的包装类)
②提供了一系列的实用方法
③集合不允许存放基本数据类型数据,存放数字时,要用包装类型
构造方法:
所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
如:
public Type(type value)
如:Integer i=new Integer(1);
//所有的包裝类都可将与之对应的基本数据类型作为参数,来构造他们的实例
Integer i = new Integer(12);
Double d = new Double(12.1);
Boolean b = new Boolean(true); //不分大小写true,否则是false
Character c = new Character('a');
System.out.println(i+" "+d+" "+b+" "+c);
除Character类外,其他包装类可将一个字符串作为参数构造它们的实例
public Type(String value)
如:Integer i=new Integer("123");
//除了Character外,其他包装类可以以一个字符串作为参数来构造它的实例
Integer i = new Integer("12");
Double d = new Double("12.1");
Boolean b = new Boolean("true"); //不分大小写true,否则是false
//Character c = new Character("a"); 错误的
System.out.println(i+" "+d+" "+b);
注意:
1.Boolean类构造方法参数为String类型时,若该字符串内容为
true(不考虑大小写),则该Boolean对象表示true,否则表示false。
2.当Number包装类构造方法参数为String 类型时,字符串不能为null,
且该字符串必须可解析为相应的基本数据类型的数据,否则编译通过,运行时NumberFormatException异常。
如:
Integer i = new Integer(null);
Double d = new Double("包装类");
System.out.println(i+" "+d);
常用方法:
①XXX.valueOf()基本数据类型转换成包装类(String类型参数时除Character外)
//XXX.valueOf()将基本数据类型转换成包装类
Integer intValue=Integer.valueOf(12);
Boolean bool=Boolean.valueOf(false);
System.out.println(intValue+" "+bool);
//除Character类外,其他包装类valueOf(String s)
intValue=Integer.valueOf("32");
//bool=Boolean.valueOf("true");
bool=Boolean.valueOf("love");
//编译错误
//Character c=Character.valueOf("a");
System.out.println(intValue);
System.out.println(bool);
System.out.println("*************************");
②xxValue():将包装类转换成基本数据类型xxValue():将包装类转换成基本数据类型
//xxValue() 将包装类转换为基本数据类型的值
Integer intValue=new Integer(12);
int intValue2 = intValue.intValue();
System.out.println(intValue2);
③toString()以字符串形式返回包装对象表示的基本类型数据
//toString()以字符串的形式返回包装对象表示的基本数据类型
String id = Integer.toString(12);
String c = Character.toString('c');
System.out.println(id+" "+c);
//和字符串相拼接会变成字符串的形式
String sex='男'+"";
String num=99+"";
System.out.println(sex+" "+num);
④parseXX():将字符串转换成相应的基本数据类型的数据(Character除外)
//parseXX()把字符串转换成相应的基本数据类型数据(Character除外)
int parseInt = Integer.parseInt("21");
System.out.println(parseInt);
装箱和拆箱:
//基本类型和包装类的转换:装箱和拆箱
//装箱
Integer intObj=5;
//拆箱
int value=intObj;
System.out.println(intObj+" "+value);
特点:
①所有包装类都是final类型,不能创建它们的子类
②JDK1.5后,允许基本数据类型和包装类型进行混合数学运算
③包装类并不是用来取代基本数据类型的:在基本数据类型需要对象时使用
三、String类
3.1 length():获取字符串的长度
Scanner sc = new Scanner(System.in);
System.out.print("输入名字: ");
String name=sc.next();
System.out.print("输入密码:");
String pwd=sc.next();
if(pwd.length()<6)
{
System.out.println("密码不能小于6位");
}else{
System.out.println("注册成功");
}
3.2 equals():
String str1="bdqn";
String str2="bdqn";
System.out.println(str1==str2); //true
System.out.println(str1.equals(str2)); //true
System.out.println("======");
String str3=new String("bdqn");
System.out.println(str1==str3); //false
System.out.println(str1.equals(str3)); //true
System.out.println("=========");
String str4=new String("bdqn");
System.out.println(str4==str3); //false
System.out.println(str4.equals(str3));
四. 字符串常用提取方法
五、操作日期类型
①java.util.Date包中
②表示日期和时间
③提供操作日期和时间的各个组成方法
④SimpleDateFormat用于定制时间显示的格式:
//创建日期对象
Date date = new Date();
//定制日期格式
SimpleDateFormat formater = new SimpleDateFormat("yyyy- MM-dd HH:mm:ss");
String now = formater.format(date);
System.out.println(now);