ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

面向对象_Object类的equals方法

2021-12-26 17:04:53  阅读:238  来源: 互联网

标签:面向对象 brand Object equals price Phone year public




 1 package com.msb7;
 2 
 3 public class Phone {
 4     private String brand;
 5     private double price;
 6     private int year;
 7 
 8     public String getBrand() {
 9         return brand;
10     }
11 
12     public void setBrand(String brand) {
13         this.brand = brand;
14     }
15 
16     public double getPrice() {
17         return price;
18     }
19 
20     public void setPrice(double price) {
21         this.price = price;
22     }
23 
24     public int getYear() {
25         return year;
26     }
27 
28     public void setYear(int year) {
29         this.year = year;
30     }
31 
32     public Phone() {
33     }
34 
35     public Phone(String brand, double price, int year) {
36         this.brand = brand;
37         this.price = price;
38         this.year = year;
39     }
40 
41     @Override
42     public String toString() {
43         return "Phone{" +
44                 "brand='" + brand + '\'' +
45                 ", price=" + price +
46                 ", year=" + year +
47                 '}';
48     }
49 
50     public boolean equals(Object obj) {
51         /*
52         instanceof运算符;
53         a instanceof b:
54         判断a对象是否是b这个类的实例,如果是,返回true,如果不是返回false
55          */
56         if(obj instanceof Phone){//属于Phone类的对象
57             //将obj转为Phone类型:
58             Phone other = (Phone)obj;
59             if(this.getBrand()==other.getBrand()&&this.getPrice()==other.getPrice()&&this.getYear()==other.getYear()){
60                 return true;
61             }
62         }
63         return false;
64 
65     }
66 }

 


//cat类
1 package com.msb7;
2 
3 public class Cat {
4 }
 1 package com.msb7;
 2 //测试类
 3 public class Test {
 4     public static void main(String[] args) {
 5         Phone p1 = new Phone("荣耀v30pro",3076.98,2019);
 6         Phone p2 = new Phone("荣耀v30pro",3076.98,2019);
 7         //比较两个对象:p1和p2对象:
 8         //==的作用:比较左右两侧的值是否相等,要么相等,返回true,不想等,返回false;
 9         System.out.println(p1==p2); //--->>对于引用数据类型来说,比较的是地址值,返回的一定是false
10 
11         //object 类提供了一个方法equals方法:作用:比较对象具体的内容是否相等。
12         boolean flag = p1.equals(p2);//点击源码发现:底层依旧比较的是==,比较的还是地址值。
13         System.out.println(flag);//返回true
14 
15 
16 
17         Cat c = new Cat();
18         boolean  flag1 = p1.equals(c);
19         System.out.println(flag1);  //返回false
20     }
21 }
22 /*equals作用:提供了对对象的内容是否相等的一个比较方式,对象的内容指的就是属性,
23 父类Object提供的equals就是在比较==地址,没有实际的意义,一般不会直接使用父类提供的方法,
24 而是在子类中对这个方法进行重写。*/

 

 

标签:面向对象,brand,Object,equals,price,Phone,year,public
来源: https://www.cnblogs.com/lcc-lv/p/15733384.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有