11.28_常见对象(Object类的equals()方法).avi

package cn.itcast_03;

/*

* public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。

* 这个方法,默认情况下比较的是地址值。比较地址值一般来说意义不大,所以我们要重写该方法。

* 怎么重写呢?

* 一般都是用来比较对象的成员变量值是否相同。

* 重写的代码优化:提高效率,提高程序的健壮性。

* 最终版:

* 其实还是自动生成。

(第一就是向下转型出现问题,demo转成Student),因此在向下转型的时候加入判断是否是是该类的一个对象。)

*

* 看源码:

* public boolean equals(Object obj) {

* //this - s1

* //obj - s2

*       return (this == obj);

*   }

*

* ==:

* 基本类型:比较的就是值是否相同

* 引用类型:比较的就是地址值是否相同               (String是引用类型,不要用==)

* equals:

* 引用类型:默认情况下,比较的是地址值。

* 不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同

*/

public class StudentDemo {

public static void main(String[] args) {

Student s1 = new Student("林青霞", 27);

Student s2 = new Student("林青霞", 27);

System.out.println(s1 == s2); // false

Student s3 = s1;

System.out.println(s1 == s3);// true

System.out.println("---------------");

System.out.println(s1.equals(s2)); // obj = s2; //false

System.out.println(s1.equals(s1)); // true

System.out.println(s1.equals(s3)); // true

Student s4 = new Student("风清扬",30);

System.out.println(s1.equals(s4)); //false

Demo d = new Demo();

System.out.println(s1.equals(d)); //ClassCastException

}

}

class Demo {}

来自为知笔记(Wiz)

时间: 2024-10-07 15:02:41

11.28_常见对象(Object类的equals()方法).avi的相关文章

11.29_常见对象(Object类的equals()方法代码优化).avi

package cn.itcast_03; public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void

Java常见对象Object类中的个别方法

Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成地址值. package common_object; public class Demo extends Object{ } package common_object; public class DemoTest { public static void main(String[] args)

java之常见对象-Object类

1.API概述 API(Application Programming Interface),应用程序编程接口. 编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑.向后跑.射门.抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写.但是对于有经验的开发人员来说,知道机器人厂商一定会提供一些用于控制机器人的java类,这些类中定义好了操作机器人各种动作的方法.其实,这些java类就是机器人厂商提供给应用程序编程的接口,大家把这些类就称为应用程序编程接口. 2.java AP

Java Object类及其equals方法

基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.可以使用类型为Object的变量指向任意类型的对象 equals()方法:比较两个对象是否同一       如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等.如果两个引用对象指的是同一个对像,则称这两个变量同一.Object类中定义的equa

Java Object类的equals()方法

所有类都从Object类中继承了equals方法,Object类中equals方法源代码如下: public boolean equals(Object obj)     {         return this == obj;     } Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的是同一块内存对象,则返回true,如果th

常见对象-Object类

Object类概述 是类层次结构的根类,每个类都直接或者间接继承该类. eg: 1.class Student extends Object{}  //直接继承 2.class Student extends Person{}  class Person extends Object{} //间接继承 Object类的构造方法: public Object(){} 回想面向对象中为什么说,子类的构造方法默认访问的是父类的无参构造方法. 因为超类Object有且仅有一个无参构造方法. Object

Object类及equals()方法

1 ==  对于基本数据类型,根据两端的值来判断是否相等,即使两端的数据类型不同,也可以返回true.引用数据类型,比较引用变量类型的地址是否相等 2 equals()是比较引用类型变量是否相等,也是比较地址值 3 ctrl+shift+t 查看源码 package lianxi2; public class TestEquals { public static void main(String []args){ Department d1 = new Department(); Departm

【宋红康学习日记11】Object类与equals方法

1 == (1)当对象是基本数据类型时,比较值: (2)当对象是引用型时,比较的是地址值!!1 2 equals():只处理引用型数据:Object类中的equals方法依然比较的是地址值! 但在String,File,Date类重写了equals方法,比较的是值: 3 String类内存解析 Person p1=new Person("花花",20); Person p2=new Person("曹操",40); syso(p1==p2);//false syso

Java:Object类的equals()方法 如何编写一个完美的equals()方法

一  代码实例: package freewill.objectequals;  /** * @author freewill * @see Core Java page161 * @desc getClass实现方式,另有instance of实现方式,根据不同场景使用. */  public class Employee {      private String name;      private int salary;      private String hireDay;