Java 学习之路——包装类的使用

简介: 针对八种基本数据类型定义相应的引用类型——包装类(封装类)。

Java 学习之路——包装类的使用


包装类(Wrapper)的使用


  • 针对八种基本数据类型定义相应的引用类型——包装类(封装类)


  • 有了类的特点,就可以调用类中的方法,Java 才是真正的面向对象。
基本数据类型 包装类 父类
byte Byte Number
short Short Number
int Integer Number
long Long Number
float Float

Number

double Double Number
boolean

Boolean


char Character


基本数据类型包装成包装类的实例——装箱


  • 通过包装类的构造器实现:
int i = 500;
Interger t = new Integer(i);

通过字符串参数构造包装类对象:

Float f = new Float("4.56");
Long I = new Long("asdf"); //NumberFormatException

获得包装类对象中包装的基本类型变量——拆箱


  • 调用包装类的 .xxxValue() 方法:
boolean b = bObj.booleanValue();
  • JDK1.5 之后,支持自动装箱,自动拆箱。但类型必须匹配。


总结:基本类型、包装类与 String 类间的转换

1.png

要求:利用 Vector 代替数组处理:从键盘读入学生成绩(以负数代表输入结束),找出最高分,并输出学生成绩等级


  • 提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道它的长度。而向量类 java.util.Vector 可以根据需要动态伸缩。
  • 创建 Vector 对象:Vector v = new Vector();
  • 给向量添加元素:v.addElement(Object obj); 其中 obj 必须是对象。
  • 取出向量中的元素:Object obj = v.elementAt(0);
  • 注意第一个元素的下标是 0,返回值是 Object 类型的
  • 计算向量的长度:v.size();
  • 若与最高分相差 10 分内:A等;20 分内:B等;30 分内:C等;其他:D等
import java.util.Scanner;
import java.util.Vector;
public class ScoreTest {
    public static void main(String[] args) {
        // 实例化 Scanner ,用于从键盘获取学生成绩
        Scanner scan = new Scanner(System.in);
        // 2. 创建 Vector 对象:Vector v = new Vector(); 相当于原来的数组
        Vector v = new Vector();
        // 3. 通过循环给 Vector 中添加数据,添加操作:v.addElement(Object obj);
        int maxScore = 0;
        for (; ; ) {
            System.out.println("请输入学生成绩(以负数代表结束)");
            int score = scan.nextInt();
            // 当输入是负数时,跳出循环
            if (score < 0) {
                break;
            }
            if (score > 100) {
                System.out.println("输入的数据非法,请重新输入");
                continue;
            }
            // 添加操作:v.addElement(Object obj);
            // jdk5.0 之前
//            Integer inScore = new Integer(score);
//            v.addElement(inScore);// 多态
            // jdk5.0 之后
            v.addElement(score);// 自动装箱
            // 4. 获取学生成绩的最大值
            if (maxScore < score) {
                maxScore = score;
            }
        }
        // 5. 遍历 Vector ,得到每个学生的成绩,并与最大成绩比较,得到每个学生的成绩
        char level;
        for (int i = 0; i < v.size(); i++) {
            Object obj = v.elementAt(i);
            // jdk5.0 之前
//            Integer inScore = (Integer)obj;
//            int score = inScore.intValue();
            // jdk5.0 之后
            int score = (int) obj;
            if (maxScore - score <= 10) {
                level = 'A';
            } else if (maxScore - score <= 20) {
                level = 'B';
            } else if (maxScore - score <= 30) {
                level = 'C';
            } else {
                level = 'D';
            }
            System.out.println("student-" + i + ",score is " + score + ",level is " + level);
        }
    }
}

以上代码的执行结果是:

1.png

相关文章
|
12天前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
39 5
|
12天前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
58 1
|
13天前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
92 5
|
13天前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
114 3
|
13天前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
39 1
|
13天前
|
设计模式 存储 Java
Java基础学习day07
本节讲解Java中的final关键字、单例设计模式、枚举类、抽象类与接口。涵盖常量定义、单例写法(饿汉式/懒汉式)、枚举特点及应用场景,以及抽象类与接口的使用与区别,助力掌握核心面向对象编程思想。
71 1
|
18天前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
49 2
|
18天前
|
安全 Java 编译器
Java基础学习day06
本节学习Java继承与多态核心概念:继承通过extends实现,子类可复用父类非私有成员,支持单继承与多层继承,遵循就近原则并可用super调用父类成员;方法重写需满足权限与返回值约束,常用于重写toString等。多态基于继承,实现父类引用指向子类对象,提升扩展性但无法直接访问子类独有方法,可通过instanceof安全类型转换。
83 2
|
19天前
|
存储 Java
Java基础学习day05
本节介绍Java面向对象编程基础,涵盖类与对象的概念、构造器、this关键字、封装、Javabean及static修饰符的使用。重点讲解如何通过类设计对象、实现数据封装与方法暴露,并理解静态成员的特点与应用场景。
57 2
|
19天前
|
Java
Java基础学习day04-作业
本作业包含8个Java编程案例,涵盖数组的定义与遍历、求和、最值计算、去极值求平均、元素倍增、二维数组行和计算及查找指定元素等内容,旨在巩固Java基础语法与数组操作技能。
170 1