1.枚举
1.1使用非枚举的方式对Student类的sex属性赋值
public class Student {
private String sex;
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public static void main(String[] args) {
Student student = new Student();
student.setSex("女");
System.out.println(student.getSex());
student.setSex("asd");
System.out.println(student.getSex());
}
}
1.2使用枚举的方式对Student类中的sex属性赋值
//定义枚举类型,里面的内容为限制的各个赋值
public enum Gender {
男,女
}
//赋值
public class Student {
private Gender sex; // 定义sex属性的类型为枚举类型
public Gender getSex() { // get,set方法
return sex;
}
public void setSex(Gender sex) {
this.sex = sex;
}
public static void main(String[] args) {
Student student = new Student();
student.setSex(Gender.女);
System.out.println(student.getSex()); // 赋值方法改变
// student.setSex("asd"); // 一般赋值的方法会报错
//定义枚举类型,里面的内容为限制的各个赋值
public enum Gender {
男,女
}
关键字:enum 替换 class
2.包装类
2.1定义
每个基本类型在Java.lang包中都有一个对应的包装类
2.2作用
1)提供了一系列的实用方法
2)在集合中不能存放基本数据类型,有时候为了使用基本数据作为对象类型,就需要添加包装类
int,short,等是基本数据类型,不能算对象类型,所以经过包装类,可以在泛型中使用
ArrayList不允许
ArrayList可以,Integer为int的包装类
//成员变量为基本数据类型时,系统会默认赋值为0,但是包装类不会默认赋值,和对象类型,String类型一样,不赋值的情况下都是null
//基本数据类型和包装数据类型的区别:
public class Demo2 {
private int a;
private Integer b;
private Demo2 d;
public static void main(String[] args) {
Demo2 demo2 = new Demo2();
System.out.println(demo2.a); // 0
System.out.println(demo2.b); // null
System.out.println(demo2.d); // null
}
}
2.3构造方法(基本数据类型转换成包装类)
2.3.1两种基本方法
- public class Demo3 {
public static void main(String[] args) {
int a = 1;
Integer a_new = new Integer(a);
byte b = 2;
Byte b_new = new Byte(b);
short c = 3;
Short c_new = new Short(c);
long d = 4;
Long d_new = new Long(d);
float e = 5;
Float e_new = new Float(e);
double f = 6;
Double f_new = new Double(f);
char g = 'a';
Character g_new = new Character(g);
boolean i = true;
Boolean i_new = i;
}
} -
2.3.2构造方法,算数,拼接
- public class Demo4 {
public static void main(String[] args) {
//两个字符串拼接
String a = "123";
System.out.println(a + "1"); // 1231
//一个字符串,一个基本数据类型进行 "+",拼接
String b = "123";
System.out.println(b + 1); // 1231
int c = 123;
String d = c + "";
System.out.println(d); // 123
//两个数值类型的相加
System.out.println(123 + 1); // 124
//将字符串包装后和数值进行"+"操作--->算数操作
String e = "123";
Integer e_new = new Integer(e);
System.out.println(e_new + 1); // 124
}
} -
2.3.3两个构造中的常见特例:
- public class Demo5 {
public static void main(String[] args) {
// 会报错,Character不可以用字符串来构造
// Character a = new Character("abcd");
// Boolean 类型的除了(true,不分大小写)以外,都是false
Boolean b = new Boolean("sfa");
Boolean b1 = new Boolean("trUe");
System.out.println(b); // false
System.out.println(b1); // true
}
} -
2.4常见方法
2.4.1 intValue() 包装类转换成基本数据类型
- //将包装类转换成基本类型
public class Demo6 {
public static void main(String[] args) {
Integer a = new Integer(123);
a.intValue();
Double b = new Double(20.0);
b.doubleValue();
}
}
2.4.2 toString() 基本类型转换成字符串类型
public class Demo7 {
public static void main(String[] args) {
// 第一种:常用转字符串,拼接
int a = 12;
String a_new = a + "";
// 第二种toString()
int b = 12;
String b_new = Integer.toString(b);
double c = 12.2;
String c_new = Double.toString(c);
}
}