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

Day09-object类

2020-07-26 21:34 246 查看

2020-7-26

  • objects-equals
  • 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

    避免空指针问题,更加完善了

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