欢迎来到天天文库
浏览记录
ID:34623220
大小:471.55 KB
页数:40页
时间:2019-03-08
《java常见类的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章常见类的使用在java中有成百上千的类,每个类又有很多不同的方法,要记住所有的类和方法是不可能的。因此,熟练掌握如何查阅API是相当重要的。从中可以查到标准库中所有的类及方法。Api文档是JavaSDK的一部分,它以HTML形式发布。Api的主页面有三个窗口组成。左上端的窗口列出了所有可以利用的包,坐下端是所有可用的类,如果点击一个类名,关于这个Api的文档将会显示在右边最大的窗格。关于类的声明、属性、构造方法、成员方法及其他们的说明文字都在这个大窗口打开。下面我们介绍几个在Java中常用的类。Javak快车免费试学一、Object类java.l
2、ang包中定义的Object类是所有Java类的根父类,其中定义了一些实现和支持面向对象机制的重要方法。任何Java对象,如果没有父类,就默认它继承了Object类。因此,实际上,以前的定义是下面的简略:publicclassEmployeeextendsObjectpublicclassManagerextendsEmployeeObject类定义许多有用的方法,包括toString(),它就是为什么Java软件中每样东西都能转换成字符串表示法的原因。(即使这仅具有有限的用途)。11、equals方法Object类定义的equals方法用于判别某个指
3、定的对象与当前对象(调用equals方法的对象)是否等价。在Java语言中数据等价的基本含义是指两个数据的值相等。在equals和“==”进行比较的时候,引用类型数据比较的是引用,即内存地址,基本数据类型比较的是值。equals方法与“==”运算符的关系equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型;特例:当用equals()方法进行比较时,对类File、String、Date及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例;用“==”进行比较时,符号两边的数据类型必须一致(可自动转换的数据类型除外),否则编译出错
4、,而用equals方法比较的两个数据只要都是引用类型即可。示例如下:classMyDate{privateintday,month,year;publicMyDate(intday,intmonth,intyear){this.day=day;this.month=month;this.year=year;}}publicclassTest{publicstaticvoidmain(String[]args){MyDatem1=newMyDate(8,8,2008);MyDatem2=newMyDate(8,8,2008);if(m1==m2){Sys
5、tem.out.println("m1==m2");}else{System.out.println("m1!=m2");}if(m1.equals(m2)){System.out.println("m1isequaltom2");}else{System.out.println("m1isnotequaltom2");}m2=m1;if(m1==m2){System.out.println("m1==m2");}else{System.out.println("m1!=m2");2}}}程序运行结果为:m1!=m2m1isnotequaltom2m=
6、=m2小结一下:在引用类型的比较上,Object里面的equals方法默认的比较方式,基本上等同于“==”,都是比较内存地址,只有那几个特殊的是比较的值。覆盖equals方法对于程序员来说,如果一个对象需要调用equals方法,应该在类中覆盖equals方法。如果覆盖了equals方法,那么具体的比较就按照你的实现进行比较了。一般来讲:为了比较两个分离的对象(也就是内存地址不同的两个对象),自行覆盖的equals方法里面都是检查类型和值是否相同。上面那几个特殊的情况就是这样,比如String类,它覆盖了equals方法,然后在里面进行值的比较。覆盖eq
7、uals方法的一般步骤如下:(1)用==检查是否参数就是这个对象的引用(2)判断要比较的对象是否为null,如果是null,返回false(3)用instanceof判断参数的类型是否正确(4)把参数转换成合适的类型(5)比较对象属性值是不是匹配示例如下:覆盖前equals和==比较的都是内存地址:publicclassTest{publicstaticvoidmain(String[]args){Aa1=newA();a1.id=3;Aa2=newA();a2.id=3;System.out.println("a1==a2test="+(a1==a2
8、));System.out.println("a1equalsa2test="+a1.equa
此文档下载收益归作者所有