Day09-object类
2020-07-26 21:34
246 查看
2020-7-26
object类
java.lang.Object类
类Object是类层次结构的最顶层类,每个类都使用Object类做超父类
所有对象(包括数组)都实现这个类的方法
toString方法
没有重写时,输出为对象的地址值
重写之后按照重写的方式打印
//Person类 public class Person { private String name; private int age; //重写toString方法 // @Override // public String toString() { //// return "abc" // return "Person{name="+name+",age="+age+"}"; // } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Person(String name, int age) { super(); this.name = name; this.age = age; } public Person() { super(); } }
//主类 public class PersonMain { public static void main(String[] args) { Person p=new Person("张三",12); String s=p.toString(); System.out.println(s); System.out.println(p); } }
equals方法
比较两个对象的地址是否相同
重写之后判断值是否相同
// //Person类 public class Person { private String name; private int age; @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } // @Override // public boolean equals(Object obj) { // if(obj==this) { // return this; // } // // if(obj==null) { //如果传递是null直接返回false // return false; // } // // if(obj instanceof Person) { //instanceof判断 // Person p=(Person)obj; //向下转型 // boolean b=(this.name==p.name && this.age == p.age);//判断值是否相同 // return b; // } // return false; // } public String getName() { return name; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; 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 void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Person(String name, int age) { super(); this.name = name; this.age = age; } public Person() { super(); } }
public class PersonMain { public static void main(String[] args) { Person p1 = new Person("李四",11); Person p2 = new Person("李四",11); System.out.println(p1.equals(p2)); } }
objects-equals
避免空指针问题,更加完善了
相关文章推荐
- 达内javaSE_day09 学习笔记02—— 垃圾回收、常用的工具包、Object类
- Java常用类_Object类
- day09
- 关于在Java中对Object类的应用
- 2020.7.27object类
- C#2005 .NET3.0高级编程学习笔记————结构,部分类,静态类,Object类
- Class类与Object类
- 使用现成的Object类代替定义额外的类的一个应用
- 了解c#中 值类型/引用类型,装箱/拆箱,Object类
- 多态Object类equals方法学习笔记ObjectDemo.java
- java/final变量,final函数,抽象类,接口,内部类,object类
- Object类的toString方法
- 黑马程序员_Object类
- Object类的equals方法
- 多态_object类_内部类_匿名内部类
- Java中的Object类介绍
- Java知识点:Object类
- C#中的string和object类
- java自学 Object类
- 黑马程序员_object类以及常见异常