其实深入解析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(第一部分)】相关文章:
用户评论
学习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位网友表示赞同!