Android | 变量监听,变量改变触发回调函数,interface接口,接口回调,java

参考链接
What Is an Interface? (The Java™ Tutorials > Learning the Java Language > Object-Oriented Programming Concepts).
IInterface | Android 开发者 | Android Developers.
InterfaceType - Java 11中文版 - API参考文档.
先看可以实现的功能,如果不满足不必继续往下看

功能

在调用变量set方法时触发回调函数

设计思路

利用java interface接口实现回调函数,当变量值改变触发相应操作

变量封装成类 => 在类中创建interface接口 => 声明interface接口 => 设置interface回调 => set中调用

设计步骤

将需要监听的变量封装到类Order中,并设置get set

public class Order {
	private static String flage;
    public static String getFlage() {
        return flage;
    }
    public static void setFlage(String flage) {
        Order.flage = flage;
    }
}

在Order中创建interface类OnChangeListener并声明该接口,创建setOnChangeListener方法

    public interface OnChangeListener {	// 创建interface类
        void onChange();    // 值改变
    }
	private static OnChangeListener onChangeListener;	// 声明interface接口
    public static void setOnChangeListener(OnChangeListener onChange){	// 创建setListener方法
        onChangeListener = onChange;
    }

在set中调用该接口

public static void setFlage(String flage) {
	Order.flage = flage;
	onChangeListener.onChange();
}

用法

最终Order类是这样的

public class Order {
	public interface OnChangeListener {	// 创建interface类
        void onChange();    // 值改变
    }
	private static OnChangeListener onChangeListener;	// 声明interface接口
    public static void setOnChangeListener(OnChangeListener onChange){	// 创建setListener方法
        onChangeListener = onChange;
    }
    
	private static String flage;
    public static String getFlage() {
        return flage;
    }
    public static void setFlage(String flage) {
        Order.flage = flage;
        onChangeListener.onChange();
    }
}

设置监听函数

		Order.setOnChangeListener(new Order.OnChangeListener() {
            @Override
            public void onChange() {
            	// doSomthing...
                // 值改变需要进行的事务
            }
        });

设置完后只需要执行java Order.setFlage("1");即可触发doSomthing…事件

interface方法

java是面向对象语言,在设计之初就摒弃了多重继承的概念。
没有了多重继承,就无法调用不同父类方法,不方便。
有了interface接口,就可以实现类似多重继承的效果。

在本质上讲,interface是抽象方法和常量定义的集合。

接口中的所有成员变量都默认是由public static final修饰的。
接口中的所有方法都默认是由public abstract修饰的。
接口没有构造方法。
要实现一个接口,必须实现该接口中所有方法。
一个类可以实现多种接口。
一个接也可以实现多种接口。
接口实现类也可以存在多态性,这点与继承类似。
接口也可以使用extends关键字,接口继承接口。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指针不南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值