您的位置:首页 > 移动开发 > Objective-C

Object类的toString和equals方法

2019-03-13 18:38 363 查看
版权声明:转载或引用请注明出处 https://blog.csdn.net/qq_43354761/article/details/88538748

toString方法

package com.ys.api16;
/*
*    改写toString方法
*/
public class ObjectDemo {
public static void main(String[] args) {
Student s = new Student();
s.name = "大王";
s.age = 21;
System.out.println(s.toString());
System.out.println(s);
}
}

class Student{
String name;
int age;

public String toString() {
return name+"@"+age;

}
}

运行结果

equals方法

package com.ys.api16;
/*
* 	使用方法:boolean equals(Object o)
* 		使用==来比较两个对象是否相等,则比较地址值是否相等
*/
public class ObjectDemo02 {
public static void main(String[] args) {
Person p = new Person("杨帅",21);
Person p2 = new Person("黄帅",23);

boolean flag = p.equals(p2);
System.out.println(flag);
}
}

class Person{
String name;
int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
//提高效率
if (this == obj)
return true;

if (obj == null)
return false;
//提高代码健壮性
if (getClass() != obj.getClass())
return false;
1f493

//向下转型
Person other = (Person) obj;

if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}

//	public boolean equals(Object o) {
//		//提高效率,当前对象和传递进来的对象地址值相等,则不用比较成员
//		if(this == o) {
//			return true;
//		}
//		//提高代码的健壮性(即不随便报错)
//		if(this.getClass() != o.getClass()) {
//			return false;
//		}
//		//向下转型
//		Person other = (Person) o;
//		if//。。。。。后面就先省略了
//	}

}

运行结果:false

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: