Java包装类的练习及拓展

包装类

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);

        }


    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值