包装类装箱和拆箱
时间:2022-06-19
本文章向大家介绍包装类装箱和拆箱,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在Java的设计之中,一直提倡一个原则:一切皆对象,这个原则本身有一个漏洞 —— 基本数据类型不是对象,所以这个原则就出现了问题。那么如果说现在这个问题由我们来解决,该如何做呢?
class Int { // 类
private int num ; // 基本型
public Int(int num) {
this.num = num ;
}
public int intValue() {
return this.num ;
}
}
public class TestDemo {
public static void main(String args[]) {
Int temp = new Int(10) ; // 把基本类型变为类
int result = temp.intValue() ;
System.out.println(result * result) ;
}
}
专门提供了八种包装类:byte(Byte)、short(Short)、int(Integer)、long(Long)、float(Float)、double(Double)、boolean(Boolean)、char(Character),而这八种包装类又分为两大阵营:
· 数值型(Number子类):Byte、Short、Integer、Float、Double、Long; · 对象型(Object子类):Boolean、Character。
可是对于Number的子类,就必须观察出Number类之中定义的方法:byteValue()、intValue()、doubleValue()、shortValue()、floatValue()、doubleValue(),就是从包装的类之中取得所包装的数值。
public class TestDemo {
public static void main(String args[]) {
Integer var = new Integer(15) ; // 装箱
int result = var.intValue() ; // 拆箱
System.out.println(result * result) ;
}
}
public class TestDemo {
public static void main(String args[]) {
Double var = new Double(15.5) ; // 装箱
double result = var.doubleValue() ; // 拆箱
System.out.println(result * result) ;
}
}
到了JDK 1.5之后,Java提供了自动的装箱和拆箱机制,并且包装类的对象可以自动的进行数学计算了。
public class WrapperDemo03{
public static void main(String args[]){
Integer i = 30 ; // 自动装箱成Integer
Float f = 30.3f ; // 自动装箱成Float
int x = i ; // 自动拆箱为int
float y = f ; // 自动拆箱为float
}
};
· 装箱操作:将基本数据类型变为包装类,称为装箱,包装类的构造方法; · 拆箱操作:将包装类变为基本数据类型,称为拆箱,各个类的xxValue()方法。
- Go语言图片处理和生成缩略图的方法
- Python3 怎么将Unicode转中文,以及GBK乱码ÖйúÉÙÊýÃñ×åÌØÉ«´åÕ¯
- 数据结构和算法——旋转打印链表
- C/C++——set的基本操作总结
- PHP基础——字符串的常用操作
- NLP之tfidf与textrank算法细节对比基于结巴分词
- 【Go 语言社区】算法课程 第一季 第4节-汉诺塔
- C/C++——map的基本操作总结
- Python生成词云图,TIIDF方法文本挖掘: 词频统计,词云图
- C/C++——vector的基本操作总结
- 数据库负载急剧提高的应急处理(二) (r9笔记第55天)
- 社团划分——有向图的Label Propagation算法
- Python基础——网络编程
- 分区表的一个持续改进方案(r9笔记第53天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Flutter实战】Flutter 中那么多组件,难道要都学一遍?
- 【Flutter组件终结篇】332个组件 658页PDF
- Kubernetes在pod中配置hosts解析域名
- 【Flutter 实战】简约而不简单的计算器
- Flutter 中渐变的高级用法
- 【Flutter实战】动画核心(1/2)
- 【Flutter实战】动画核心(2/2)
- Flutter 1.17 新 Material motion 规范的预构建动画
- Canonical通过Flutter启用Linux桌面应用程序支持
- Flutter 快捷开发 Mac Android Studio 篇
- TRTC Android端开发接入学习之互动直播(七)
- Flutter 实现酷炫的3D效果
- 【Flutter 实战】一文学会20多个动画组件
- 【Flutter 实战】动画序列、共享动画、路由动画
- 【Flutter 实战】自定义动画-涟漪和雷达扫描