JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

《JavaSE基础》第12篇:Object和匿名内部类

wys521 2024-11-24 22:43:59 精选教程 63 ℃ 0 评论

Object类

在Java中提供了一个 Object 类,它是所有类的父类,每个类都直接或间接继承自该类, Object 类通常被称为超类或根类。当定义一个类时,如果没有使用"extends"关键字为这个类显式地指定父类,那么该类会默认继承 Object 类。

Object 类定义了一些方法:
    //负责克隆对象
    Object clone()
    
    //获取对象的哈希值
    int hashCode()
    
    //判断两个对象是否相等
    boolean equals(Object obj)
    
    //将对象转换成字符串形式(一般会重写)
    String toString()
重写 Object类中的 toString() 方法

源码:
public String toString() {
     return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
=============================

public class Animal {
   //重写 Object类的 toString() 方法
   @Override
   public String toString() {
       return "这是一只动物";
  }
}
=============================
//主方法
public class Application {
   public static void main(String[] args) {
       //创建animal对象
       Animal animal = new Animal();
       //打印重写后的toString()方法
       System.out.println(animal.toString());
  }
}

Animal类重写了 Object类的 toString()方法,当在 main()方法中调用toString()方法时,就输出了 Animal类的描述信息。
Object类中的equals(Object obj)方法
源码:
    public boolean equals(Object obj) {
        return (this == obj);
    }

对于"==",如果用于基本数据类型,直接比较其存储的"值"是否相等;如果用于引用数据类型,比较的是所指向的对象的内存地址是否相等

对于"equals()"方法,不能作用于基本数据类型,只能用于引用数据类型,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;如果重写了equals方法,比较的是所指向的对象的内容。

注意:
    String类已经重写了toString方法和equals方法,比较个字符串不能使用==,必须使用equals

匿名内部类

在一个类的内部定义的类,包括:实例内部类,静态内部类,局部内部类。
匿名内部类是局部内部类的一种,没有名字
public class Test05 {
    public static void main(String[] args) {
        MyMath mm = new MyMath();
//在接口后面写上{},里面写上对接口内部方法的实现,这就是匿名内部类
        mm.mySum(new ComputeImpl() {
            public int sum(int a, int b) {
                return a + b;
            }
        }, 300, 200);
    }
}
interface Compute {
    int sum(int a, int b);
}
/*
class ComputeImpl implements Compute {
    public int sum(int a, int b) {
        return a + b;
    }
}
*/
class MyMath {
    public void mySum(Compute c, int x, int y) {
        int retValue = c.sum(x, y);
        System.out.println(x + "+" + y + "=" + retValue);
    }
}



本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表