其实深入解析Java API(第一部分)的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享深入解析Java API(第一部分)的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
我们经常会遇到比较两个对象来判断两个对象是否相等的情况。在Python中,由于它不是强类型语言,所以在比较基本数据类型时,我们一般使用==。比较对象时,根据对象的属性判断对象是否相等。
java中也是同样的情况。比较对象时,是根据对象的属性值来判断的。在java中,所有java类的超类是object(ClassObject是类层次结构的根。每个类都有
对象作为超类。所有对象(包括数组)都实现了该类的方法。),对象本身为我们提供了一些方法,子类可以重写对象的方法。
等于方法:
object中的equal方法只是比较两个对象的内存地址是否相等(内部使用==进行比较),如下:
1个包com.test;
2
3 公共类Equal_Demo {
4 公共静态无效主(字符串[] args){
5 等于p1=new equal("tom");
6 等于p2=new equal("tom");
7 if(p1.等于(p2)){
8 System.out.printf("等于");
9 } 其他{
10 System.out.printf("不等于");
11}
12}
13}
14级等于{
15 私有字符串名称;
16 公共等于(字符串名称){
17 this.name=名称;
18}
19 公共无效显示(){
20 System.out.printf("确定");
21 }
22}输出:
imageobject类实现:
Image内部实际上使用==来比较两个对象的内存地址是否相等。这不是我们想要的,因为有时我们只需要使两个对象的属性值相等即可。例如,如果我们认为上面的对象的名称属性相等,我们就会认为这两个对象相等。
我们重写equals 方法。
1个包com.test;
2
3 公共类Equal_Demo {
4 公共静态无效主(字符串[] args)
5 等于p1=new equal("tom");
6 等于p2=new equal("tom");
7 if(p1.等于(p2)){
8 System.out.printf("等于");
9 } 其他{
10 System.out.printf("不等于");
11}
12}
13}
14级等于{
15 私有字符串名称;
16 公共等于(字符串名称){
17 this.name=名称;
18}
19 公共无效显示(){
20 System.out.printf("确定");
21 }
22 公共布尔等于(对象obj){
23 if(obj==this){//this是当前被调用的对象。如果对象的内存地址相等,则它们必定相等。
24返回真;
25}
26 if(obj实例等于){
27 equal p=(equal) obj;//因为obj是Object对象,不包含子类的字段,所以需要向下转型。
28 if(this.name==p.name){//判断字段相等。
29返回真;
30}其他{
31 返回假;
32}
33}其他{
34返回假;
35}
36}
37 }注意:在方法中当前调用对象为this引用。字段是当前类的属性,如上例子,object为父类所以无法调用子类的字段,如果想调用的话,需要类型转换。2:在Object中,还有toString方法。返回对象的字符串表示形式。默认返回对象的内存地址。
1包test01;
2
3 公共类Tostring {
4 公共静态无效主(字符串.args){
5 Check_Prin p1=new Check_Prin("tom","22");
6 System.out.printf(p1.toString());
7}
8}
9
10 类Check_Prin{
11 私有字符串年龄;
12 私有字符串名称;
13 public Check_Prin(字符串名称,字符串年龄){
14 this.name=名称;
15 this.age=年龄;
16}
17 公共无效显示(){
18 系统.out.printf("PK");
19}
20}输出结果:
图像输出是对象的内存地址。所以我们需要重写Object的tostring方法。一般来说,当我们的系统输出一个打印对象时,该对象的tostring方法将被调用。如果对象的类没有重写此方法,则将调用父类的toString 方法。
类似于python中内置方法str方法。在输出字符串时,我们更想获取的是对象的属性信息。如下:
1包test01;
2
3 公共类Tostring {
4 公共静态无效主(字符串.args){
5 Check_Prin p1=new Check_Prin("tom","22");
6 System.out.printf(p1.toString());
7}
8}
9
10 类Check_Prin{
11 私有字符串年龄;
12 私有字符串名称;
13 public Check_Prin(字符串名称,字符串年龄){
14 this.name=名称;
15 this.age=年龄;
16}
17 公共无效显示(){
18 系统.out.printf("PK");
19}
20 公共字符串toString(){
21 return this.name+" "+this.age;
22 }
OK,关于深入解析Java API(第一部分)和的内容到此结束了,希望对大家有所帮助。
【深入解析Java API(第一部分)】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
学习Java编程一定得了解API啊!
有12位网友表示赞同!
这个系列博文讲JAVA API的话题挺有用的。
有17位网友表示赞同!
之前一直在找关于Java API的资料,感谢分享!
有15位网友表示赞同!
希望这篇文章能让我更好地理解Java API的使用方法。
有15位网友表示赞同!
对新手来说学习API确实是个难题啊,好期待这个系列讲解!
有16位网友表示赞同!
Java API是Java程序的核心了,掌握它是非常重要的。
有15位网友表示赞同!
想深入了解Java编程,这篇文章是必读的!
有14位网友表示赞同!
分享一下你学到的Java API知识吧!
有19位网友表示赞同!
感觉API相关的学习材料还是略少呢,希望这篇文章能补充!
有10位网友表示赞同!
最近在用Java写项目,发现一些API函数实在太方便了。
有14位网友表示赞同!
要好好啃一啃这篇文章,弄懂Java API的用法!
有20位网友表示赞同!
学习API真的不能马虎,细心讲解才能让人理解到位~
有9位网友表示赞同!
期待后续分享更多Java API的内容!
有8位网友表示赞同!
希望这篇文章能介绍一些常用的Java API接口。
有18位网友表示赞同!
感觉了解Java API可以提高编程效率一大截!
有10位网友表示赞同!
Java API的学习确实需要不断实践和积累。
有18位网友表示赞同!
这篇博文能否提供一些代码示例?
有5位网友表示赞同!
好文章,点赞!希望能有更多关于Java API的文章分享~
有13位网友表示赞同!