zoukankan      html  css  js  c++  java
  • Java基础03-12_对象比较

    对象比较

    如果说现在有两个数字要判断是否相等,可以使用“==”完成

    如果是字符串要判断是否相等使用“equals()”

    但是如果说现在有一个自定义的类,要想判断它的两个对象是否相等,那么必须要实现类对象之中所有属性内容的比较。

    范例:基础的比较方式

    class Book {
    	private String title;
    	private double price;
    	public Book(String title, double price) {
    		this.title = title;
    		this.price = price;
    	}
    	public String getTitle() {
    		return this.title;
    	}
    	public double getPrice() {
    		return this.price;
    	}
    }
    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.getTitle().equals(b2.getTitle())&& b1.getPrice() == b2.getPrice()) // 属性比较
    			System.out.println("是同一个对象!");
    		} else {
    			System.out.println("不是同一个对象!");
    		}
    	}
    }
    
    

    范例:对象比较实现

    class Book {
    	private String title ;
    	private double price ;
    	public Book(String title,double price) {
    		this.title = title ;
    		this.price = price ;
    	}
    	/**
    	 * 进行本类对象的比较操作,在比较过程中首先会判断传入的对象是否为null,而后判断地址是否相同,
    	 * 如果都不相同则进行对象内容的判断,由于compare()方法接收了本类引用,所以可以直接访问私有属性
    	 * @param book 要进行判断的数据
    	 * @return 内存地址相同、或者属性完全相同返回true,否则返回false
    	 */
    	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 ;	}
    	}// setter、getter略
    }
    
    
  • 相关阅读:
    VS的代码分析工具
    时间管理-SMART原则
    时间管理-该怎样进行时间管理
    ASP.NET Identity V2
    SQL Server 事务隔离级别的查看及更改
    GAC(Global Assembly Cache)注册/卸载 dll
    基于小米即时消息云服务(MIMC)的Web IM
    Spring Boot MyBatis配置多种数据库
    解决easyui combobox赋值boolean类型的值时,经常出现的内容显示的value而不是text的bug
    thymeleaf-extras-db 0.0.1发布,select标签加载数据的新姿势
  • 原文地址:https://www.cnblogs.com/xuwei1/p/8405386.html
Copyright © 2011-2022 走看看