包装类
1.为什么要使用包装类?
为了使得基本数据类型的变量具备引用数据类型变量的相关特征(比如:封装性、继承性、多态性),我们给各个基本数据类型的变量都提供了对应的包装类。
2。(掌握基本数据类型对应的包装类类型
number
byte -> Byte
short -> Short
int -> Integer
long -> Long
float -> Float
double ->Double
char -> Character
boolean -> Boolean
3.掌握基本数据类型与 包装类之间的转换。
3.1 为什么需要转换
一方面,在有些场景下,需要使用基本数据类型对应的包装类的对象。此时就需要将基本数据类型的变量转换为包装类的对象。比如:ArrayList的add(object obj);0bject类的equals(object obj)
对于包装类来讲,既然我们使用的是对象,那么对象是不能进行+ · /等运算的。为了能够进行这些运算,就需要将包装类的对象转换为基本数据类型的变量。
3.2 如何转换:
基本数据类型---> 包装类: 使用包装类的造 (建议)用包类valueof(xxx xx)
包装类 --->基本数据类型: 调用包类的xxxValue()
注意:原来使用基本数据类型变量的位置,改成包装类以后,对于成员变量来说,其默认值变化了
如果需要将一个字符串转换为Float对象进行参数传递,则可以使用以下语句:
Float f = Float.valueOf("3.14");
//将字符串转换成基本数据类型
String ne = "123456";
Integer ni = Integer.valueOf(ne);
System.out.println(ni+1);
//将基本数据类型转换成字符串
i
nt pi= 12365;
String p2 = String.valueOf(pi);
System.out.println(p2 + 1);
自动装箱和自动拆箱是Java提供的语法糖,可以避免繁琐的基本类型和包装类型间的转换,使代码更加简洁易懂。例如:
```java
int i = 10;
Integer integerObj = i; //自动装箱
自动装箱将一个基本类型的值自动转换为相应的包装类对象,这一操作使得我们可以使用相应类的方法进行操作,方便了运算和类型转换
int j = integerObj; //自动拆箱
自动拆箱也能够帮助我们将包装类对象自动转换为对应的基本类型,
学习过程代码
package Test0616;
import java.util.Scanner;
import java.util.Vector;
public class ScoreTest {
public static void main(String[] args) {
//创建Vector对象:Vector v=new Vector();
Vector v = new Vector();
Scanner scanner = new Scanner(System.in);
int maxScore = 0;
//将字符串转换成基本数据类型
String ne = "123456";
Integer ni = Integer.valueOf(ne);
System.out.println(ni+1);
//将基本数据类型转换成字符串
int pi= 12365;
String p2 = String.valueOf(pi);
System.out.println(p2 + 1);
//自动装箱
int a1 = 87;
Integer i2 = 87;
System.out.println(i2);
int n = i2;//自动拆箱
System.out.println(n);
String pe = String.valueOf(i2);
//2. 从键盘获取多个学生成绩,存放到v中 (以负数代表输入结束)
while(true){
System.out.println("请输入学生成绩(以负号代表结束):");
int intScore = scanner.nextInt();
if (intScore < 0){
break;
}
// //装箱:int-》Integer对象
// Integer score = Integer.valueOf(intScore);
// //添加学生成绩到容器V中
// v.addElement(score);
//jdk5.0之后:自动装箱
v.addElement(intScore);
//获取学生成绩的最大值
if(maxScore < intScore){
maxScore = intScore;
}
}
System.out.println("最高分:" + maxScore);
//获取学生成绩的最大值
//4. 依次获取V 中的每个学生成绩,与最高分进行比较,获取学生等级,并输出
for (int i = 0;i < v.size();i++){
//拆箱
Object objScore = v.elementAt(i);
// Integer integegerScore = (Integer) objScore;
// //拆前
// int score = integegerScore.intValue();
//
// //自动拆箱
int score = (Integer)objScore;
char grade = ' ';
//对学生成绩进行分类
if (maxScore - score <=10) {
grade = 'A';
} else if (maxScore - score <= 20){
grade = 'B';
} else if (maxScore - score <= 30) {
grade ='C';
}else {
grade = 'D';
}
System.out.println("stuent"+1+"score is" + score +"grade is" + grade);
}
}
}