zoukankan      html  css  js  c++  java
  • ==操作符与equals方法

    ==:符号两边数据类型必须兼容(一边数据类型能转成另一边数据类型)

      1.比较基本数据类型:比较两个变量值是否相等

      2.比较引用数据类型:比较是否指向同一数据对象

    equals:只能比较引用类型

      1.比较一般引用类型:作用与“==”相同,比较是否指向同一对象

      2.比较特殊引用类型:File、String、Date和包装类,比较的是内容是否相同,而不考虑是否引用的同一对象

        (原因:在这些类中,重写了Object类的equals方法)

    重写Object类的equals()方法示例:

    public class Student {
    	private String name;
    	private int age;
    	/**
    	 * 构造器(构造函数)
    	 * @param name
    	 * @param age
    	 */
    	public Student(String name,int age) {
    		this.name=name;
    		this.age=age;
    	}
    	/**
    	 * 重写equals()
    	 * 1.判断传进来的对象是否为该类的一个实例,如是,就类型强制转换
    	 *   (原因:不判断,就不能使用该类成员变量)
    	 * 2.用==和equal比较成员变量
    	 */
    	@Override
    	public boolean equals(Object obj) {
    		boolean flag=false;
    		if(obj instanceof Student) {		
    			Student s=(Student)obj;
    			if(this.age==s.age && this.name.equals(s.name)) {
    				flag=true;
    			}
    		}
    		return flag;
    	}
    }
    

    测试:

    public class Test {
    	/**
    	 * 重写equals()测试
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		Student s1=new Student("学生1",11);
    		Student s2=new Student("学生1",11);
    		Student s3=new Student("学生2",11);
    		System.out.println(s1.equals(s2));
    		System.out.println(s1.equals(s3));
    	}
    	
    }
    输出结果:
    true
    false
    

      

  • 相关阅读:
    004 RequestMappingHandlerMapping
    003 HandlerMapping
    002 环境配置
    001 springmvc概述
    011 使用AOP操作注解
    010 连接点信息
    009 通知类型
    一台服务器的IIS绑定多个域名
    程序包需要 NuGet 客户端版本“2.12”或更高版本,但当前的 NuGet 版本为“2.8.50313.46”
    通过ping 主机名,或者主机名对应的IP地址
  • 原文地址:https://www.cnblogs.com/youayou/p/11676503.html
Copyright © 2011-2022 走看看