Java程序设计 Object类、匿名内部类

Java程序设计 Object类、匿名内部类,第1张

Java程序设计 Object类、匿名内部类 Java程序设计 Object类、匿名内部类 Object类

Java中所有的类都有一个公共的父类就是Object类,一个类只要没有明显的继承一个类,则肯定是Object类的子类

Object类中的主要方法

名称描述public Object()构造方法public boolean equals(Object obj)对象方法public int hashCode()取得Hash码public String toString()对象打印时调用

测试toString()

class Test{
//    重写toString()方法
    public String toString(){
        return "测试成功";
    }
}
public class Hello {
    public static void main(String[] args) {
        Test a = new Test();
        System.out.println(a);
    }
}

equals()方法主要的功能就是用于对象的比较

class Test{
}
public class Hello {
    public static void main(String[] args) {
        Test a = new Test();
        Test b = new Test();
        System.out.println(a.equals(a));
        System.out.println(a.equals(b));
        System.out.println(b.equals(b));
        a=b;
        System.out.println(a.equals(b));
    }
}

接收任意引用类型的对象

public class Hello {
    public static void main(String[] args) {
        print("45");
        int t[]={12,3,4};
        for(int i=0;i 

匿名内部类

匿名内部类顾名思义就是指没有一个具体名称的类,匿名内部类是在接口和抽象类的应用上发展起来的

//定义接口A
interface A {
//定义抽象方法
    public void print();
}
//接口实现
class B implements A{
//方法重写
    public void print(){
        System.out.println("123");
    }
}
class C{
    public void a(){
//        传递子类实例
        this.b(new B());
    }
//    接收接口实例
    public void b(A c){
        c.print();
    }
}
public class Hello {
    public static void main(String[] args) {
        new C().a();
    }
}

如果接口的实现类只使用一次的话,那么没有必要单独定义一个子类

使用匿名内部类进行优化

interface A{
    public void print();
}
class C{
    public void a(){
        this.b(new A() {
            @Override
            public void print() {
                System.out.println("123");
            }
        });
    }
    public void b(A c){
        c.print();
    }
}
public class Hello {
    public static void main(String[] args) {
        new C().a();
    }
}

分步解读

new A()

直接实例化接口对象

在接口实例化之后要有一个大括号,用于实现接口中的抽象方法

new A(){
	public void print() {
    	System.out.println("123");
    }
}

整个代码编写完后,实际上就是一个接口的实例化对象,里面的抽象方法也就实现了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5706878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存