Java---Object类与方法

Object类

  • Object类是所有类的父类

  • 一个类没有extends标明继承关系,则默认继承Object类(包括数组)

  • Java中每个类都可以使用Object中定义的方法

  • Object类的常用方法

object类的方法

equals :

1.继承Object中的equals方法时,比较的是两个引用是否指向同一个对象

  1. 子类可以通过重写equals方法的形式,改变比较的内容
    boolean flag = one.equal(two);
    System.out.println("one 和 two 的引用比较:" + flag);
    System.out.println("one 和 two 的引用比较:" + (one == two));
    //输出结果为两个都是false;
    public boolean equals(Animal obj){
    //对于对象是否为空的判断很有必要
        if(obj == null)
            return false;
        if(this.getName().equals(obj.getName()) && (this.getMoth() == obj.getMoth())
            return true;
        else 
            return false;
    }
  1. String使用equals方法和==分别比较的是什么?(转)

  2. 子类中重写equals方法


    /**
     * 对equals方法进行重写,判断两个对象内容是否相等
     * 1.判断传入的Object对象是否为空,若空则返回false
     * 2.定义一个Animal的临时变量temp,将Objec对象强转为Animal类型的对象
     * 3.判断两个对象的两个成员的值是否相等
     */
    public boolean equals(Object obj){ //将Object类 对象名,当作一种Object的参数
        if(obj==null)
            return false;
        Animal temp=(Animal)obj;
        if(this.getName().equals(temp.getName()) && (this.getMonth()==temp.getMonth()))
                return true;
        else
            return false;
    }
    
    /*
     * 对上面的方法进行重载
     * 防止传入的参数不是Object类型的对象
     * 此时传入的参数肯定是Object类型,因为Animal类是Object的子类。
     */
    public boolean equals(Animal obj){ //同理这是一种Animal类型的参数
        if(obj==null)
            return false;
        if(this.getName().equals(obj.getName()) && (this.getMonth()==obj.getMonth()))
                return true;
        else
            return false;
    }

toString

  1. 输出对象名时,默认调用类中的toString方法
  2. 继承Object中的toString方法时,输出对象的字符串表示形式:类型信息+@+地址信息
    System.out.println(one.toString());
    System.out.println(one);
    System.out.println(str); 
    //输入String类型的是,是其内容输出

  1. 子类可以通过重写toString方法的形式,改变输出的内容以及表现形式

你可能感兴趣的:(Java---Object类与方法)