128、Java面向对象之对象的比较

01.代码如下:

package TIANPAN;

class Book {
    private String title;
    private double price;

    public Book(String title, double price) {
        this.title = title;
        this.price = price;
    }

    /*进行本类对象的比较操作,在比较过程中首先会判断传入的对象是否为null,然后判断地址是否相同
      如果都不相同则进行对象内容的判断,由于compare()方法接收了本类引用,所以可以直接访问私有属性*/
    public boolean compare(Book book) {
        if (book == null) {                      // 传入数据为null
            return false;                        // 没有必要进行具体的判断
        }
        // 执行“b1.compare(b2)”代码时会有两个对象
        // 当前对象this(调用方法对象,就是b1引用)
        // 传递的对象book(引用传递,就是b2引用)
        if (this == book) {                       // 内存地址相同
            return true;                          // 避免进行具体细节的比较,节约时间
        }
        if (this.title.equals(book.title)
                && this.price == book.price) {    // 属性判断
            return true;
        } else {
            return false;
        }
    }
}

/**
 * 此处为文档注释
 *
 * @author 田攀 微信382477247
 */
public class TestDemo {
    public static void main(String args[]) {
        Book b1 = new Book("Java开发", 79.8);        // 实例化Book类对象
        Book b2 = new Book("Java开发", 79.8);        // 实例化Book类对象
        if (b1.compare(b2)) {                    // 对象比较
            System.out.println("是同一个对象!");
        } else {
            System.out.println("不是同一个对象!");
        }
    }
}

 

02.效果如下:

 

 

知识有价,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢。

posted @ 2020-02-20 20:04  像一棵海草海草海草  阅读(180)  评论(0编辑  收藏  举报