zoukankan      html  css  js  c++  java
  • 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)哦,谢谢。

  • 相关阅读:
    asp.net core 发布centos 7 遇到的坑
    模拟EF CodeFist 实现自己的ORM
    EF+Redis(StackExchange.Redis)实现分布式锁,自测可行
    Sqlite 梳理
    mina.net 梳理
    C# 读取Execl和Access数据库
    MVC4.0网站发布和部署到IIS7.0上的方法
    看懂SqlServer查询计划
    C#数据表加锁解锁
    『C#基础』数据库死锁笔记
  • 原文地址:https://www.cnblogs.com/tianpan2019/p/12337212.html
Copyright © 2011-2022 走看看