java基础 ---- 引用类型的用法

java基础 ---- 引用类型的用法

引用类型的理解概述:

类,接口一方面是对实物的模拟,另一方面类,接口作为引用数据类型,如同基本数据类型一样,可以作为成员变量,方法参数,方法返回值。

引用类型的使用概述:

  • 成员变量:Class类作成员变量,赋值赋对象;接口作成员变量,赋值赋实现类对象。其中接口成员变量赋值时是通过构造方法或者set()方法传入实现类的对象,接口作方法参数可以用匿名类,或者匿名类暨匿名对象。
  •    返回值:方法返回什么,就用什么类型的变量去接收。
  • 形参:递给方法对象的类型 ,要小于等于形参的类型。 类:类本身的对象,类的子类对象  (小于等于);抽象类:抽象类的子类对象(小于); 接口:实现类的对象(小于)。

 


 

接口作成员变量,方法参数,方法返回值,匿名内部类,匿名对象的最终测试代码:

/**
 * 构造一个接口
 */
interface MyInterface {
    public void method();
}

/**
 * 构造一个类以该接口作为成员变量,方法参数,方法返回值
 */
class MyClass {
    //接口作为成员变量
    private MyInterface myInterface;

    MyClass() {
    }

    //接口数据类型作为方法参数
    public void setMyInterface(MyInterface myInterface) {
        this.myInterface = myInterface;
    }

    //方法返回接口数据类型
    public MyInterface getMyInterface() {
        return myInterface;
    }

    public void show() {
        myInterface.method();
    }
}

/**
 * 构造一个类实现该接口
 */
class MyInterfaceImpl implements MyInterface {
    @Override
    public void method() {
        System.out.println("AAA");
    }
}

public class MyTest {
    /**
     * 新建一个以接口为成员变量的类的对象
     * 测试分别用实现类的匿名对象,匿名内部类,匿名内部类和匿名对象三种方法为set()方法传入参数
     * 测试对象在上述三种方法下调用show()方法
     */
    public static void main(String[] args) {
        MyClass myClass = new MyClass();
        //
        //使用单独定义的实现类
        myClass.setMyInterface(new MyInterfaceImpl());
        myClass.show();//AAA
        //MyInterface a = myClass.getMyInterface(); 当接口成员变量没有名称时,用接口类型接受该成员变量
        //a.method();  AAA  
        //
        // 简化为使用匿名内部类
        MyInterface p = new MyInterface() {
            @Override
            public void method() {
                System.out.println("BBB");
            }
        };
        myClass.setMyInterface(p);
        myClass.show();//BBB

        //进一步简化,同时使用匿名内部类和匿名对象
        myClass.setMyInterface(new MyInterface() {
            @Override
            public void method() {
                System.out.println("CCC");
            }
        });
        myClass.show();//CCC
    }
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值