• equals()方法练习


    1:

    package com.aff.equals;
    
    public class TestOrder {
        public static void main(String[] args) {
            Order o1 = new Order(1001, "AA");
            Order o2 = new Order(1001, "AA");
            System.out.println(o1 == o2);// false
            System.out.println(o1.equals(o2));// false--->true  重写equals方法后
        }
    }
    
    class Order {
        private int orderId;
        private String orderName;
    
        public int getOrderId() {
            return orderId;
        }
    
        public void setOrderId(int orderId) {
            this.orderId = orderId;
        }
    
        public String getOrderName() {
            return orderName;
        }
    
        public void setOrderName(String orderName) {
            this.orderName = orderName;
        }
    
        public Order(int orderId, String orderName) {
            super();
            this.orderId = orderId;
            this.orderName = orderName;
        }
    
        //比较两个order对象的属性是否完全相同,相同的话返回true
        public boolean equals(Object obj) {
            if (this == obj) {
                return true;
            } else if (obj instanceof Order) {
                Order o1 = (Order) obj;
                return this.orderId == o1.orderId && this.orderName.equals(o1.orderName);
            } else {
                return false;
            }
        }
    }

    输出结果:

    false
    true

     

    2:

    package com.aff.equals;
    
    public class TestMyDate {
        public static void main(String[] args) {
            MyDate m1 = new MyDate(12, 3, 2012);
            MyDate m2 = new MyDate(12, 3, 2012);
    
            if (m1 == m2) {
                System.out.println("m1==m2");
            } else {
                System.out.println("m1!=m2");
            }
            // boolean java.lang.Object.equals(Object obj)
            // 调用的为Object里面的equals方法,需要重写equals方法
            if (m1.equals(m2)) {
                System.out.println("m1 is equals m2");
            } else {
                System.out.println("m1 is not  equal to m2");
            }
        }
    }
    
    class MyDate {
        private int day;
        private int month;
        private int year;
    
        public MyDate(int day, int month, int year) {
            super();
            this.day = day;
            this.month = month;
            this.year = year;
        }
    
        public int getDay() {
            return day;
        }
    
        public void setDay(int day) {
            this.day = day;
        }
    
        public int getMonth() {
            return month;
        }
    
        public void setMonth(int month) {
            this.month = month;
        }
    
        public int getYear() {
            return year;
        }
    
        public void setYear(int year) {
            this.year = year;
        }
    
        //手动写的
        public boolean equals(Object obj) {
            if (this == obj) {
                return true;
            } else if (obj instanceof MyDate) {
                MyDate m = (MyDate) obj;
                return this.day == m.day && this.month == m.month && this.year == m.year;
            } else {
                return false;
            }
        }
    }

    输出结果:

    m1!=m2
    m1 is equals m2

     
    All that work will definitely pay off
  • 相关阅读:
    事事浑不着意,总得有走心的地方
    Struts2框架概述
    java算法数据结构
    shell十三问(转)
    linux:将job放在后台执行的方法
    Python性能(转)
    python collections deque
    python中的参数传递和返回值
    python中的下划线
    python学习笔记glob模块
  • 原文地址:https://www.cnblogs.com/afangfang/p/12519390.html
Copyright © 2020-2023  润新知