我是靠谱客的博主 斯文豆芽,最近开发中收集的这篇文章主要介绍java中的封装类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原始数据类型

包  装  类

boolean(布尔型)

Boolean

byte(字节型)

Byte

char(字符型)

Character

short(短整型)

Short

int(整型)

Integer

long(长整型)

Long

float(浮点型)

Float

double(双精度浮点型)

Double


问题:

Integer i = new Integer (42); 
Long l = new Long (42); 
判断 l.equals(i) 或者i.equals(l)为true or false?

经过测试二者都为false,究其原因其实很简单,因为Integer和Long属于基本类型的包装类,这两个类重写了equals()方法,代码如下:

Integer

 

<pre name="code" class="java">public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}




Long

 public boolean equals(Object obj) {
if (obj instanceof Long) {
return value == ((Long)obj).longValue();
}
return false;
}


因此,在调用equals()方法是,首先判断是不是对应的类型,如果是,再比较值是不是一样,否则直接返回false。

总结:

    任何编程语言都会涉及比较大小的运算,对于基本类型,Java语言采取与C/C++相同的方法,不用new来创建变量,而是创建一个不是引用的自动变量,这个变量拥有“值”。在进行比较时有两种方法:“==” 和equals();

1,==

    基本类型的比较,是比较值大小。

    对象的比较 ,是比较对象在内存中的地址。

2,equals()

    用来比较两个对象是否相等,如果是自定义的类,在没有重写equals()时,也是比较的内存地址,因为Object类的equals()方法的内部实现是用“==”来实现的。只有重写equals(),按照自己的意愿去定义这个类的相等规则,才能实现真正意义上的比较,另外要记住,在重写equals()时,要重写hashcode()。 

最后

以上就是斯文豆芽为你收集整理的java中的封装类的全部内容,希望文章能够帮你解决java中的封装类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部