博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java面向对象,基本类型包装类
阅读量:4292 次
发布时间:2019-05-27

本文共 935 字,大约阅读时间需要 3 分钟。

在面向对象中,有一个概念:“一切皆对象”。现在问题来了:

  1. “int age = 17;”,这句代码中是否存在对象呢?答案是没有,因为基本类型不是对象,那不是有矛盾?

  2. 现在给你一个复杂的十进制数据,请你迅速在程序中转换为2进制、8进制、16进制,算法是不是很麻烦?

  3. 现在使用double类型来表示学生的考试成绩(double类型初始值为0.0),但是,怎么表示一个人缺考和考试得0分呢(缺考是没有分数的哦)?

其实,上述的问题,主要还是基本数据类型缺少对象。如果需要对象,就必须先有类,因为对象是类创建出来的。此时我们可以为每一个基本类型都编写一个对应的包装类,类中包含了该基本类型的一个值。

//包装int类型的值

public class intWapper

{

private int value; //值

public IntWapper(int value)

{

this.value = value;

}

//包含int类型相关的所有算法

把十进投影转换2进制/8进制/16进制

}

...main...

{

IntWapper wapper = null; //没有对象,就没有数据

IntWapper wapper = new Int Wapper(0); //有对象有数据,只不过数据为0

}

我们有8种基本类型,就会有8个基本类型的包装类。

Java面向对象,基本类型包装类

基本数据类型包装类

这些包装类在src.zip\java\lang中均可以找到。这8大基本数据类型的包装类都使用final修饰,都是最最终类,都不能被继承。

Java面向对象,基本类型包装类

装箱和拆箱操作

Sun公司从Java5开始提供了自动装箱和自动拆箱功能:

  1. 自动装箱:可以把一个基本类型变量直接赋给对应的包装类变量;

  2. 自动拆箱:允许把包装类对象直接赋给对应的基本数据类型变量。

在Java的集合框架中,只能存储对象,不能存储基本类型值。

Java面向对象,基本类型包装类

自动装箱和自动拆箱

其实,自动装箱和自动拆箱在底层使用的就是Integer.valueOf的方式。

switch支持的数据类型:byte.short,char,int,也支持对应的包装类,这是为什么呢?因为在底层,switch中会对包装类做手动拆箱操作。

转载地址:http://jhwws.baihongyu.com/

你可能感兴趣的文章
vnpy通过jqdatasdk初始化实时数据及历史数据下载
查看>>
设计模式19_状态
查看>>
设计模式20_观察者
查看>>
vnpy学习10_常见坑
查看>>
vnpy学习10_常见坑02
查看>>
用时三个月,终于把所有的Python库全部整理了!拿去别客气!
查看>>
pd.stats.ols.MovingOLS以及替代
查看>>
vnpy学习11_增加测试评估指标
查看>>
资金流入流出计算方法
查看>>
股票资金净流入和净流出
查看>>
海龟交易法则06_掌握优势
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则09_海龟式积木
查看>>
海龟交易法则10_通用积木
查看>>
CTA策略05_AtrRsiStrategy
查看>>
CTA策略06_BollChannelStrategy
查看>>
CTA策略07_MultiTimeframeStrategy
查看>>
Ubuntu 14.04安装和卸载搜狗拼音输入法
查看>>
ubuntu 18.04 设置中文输入法
查看>>