需要澄清有关创建对象,函数及其参数的信息

时间:2017-08-08 19:25:37

标签: java android

我正在学习android开发。而且我确实有基本的新手对此有所了解。我无法理解这些代码: -

示例1.

requestPublishPermissionsButton.addListener(new InputListener() {

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            return true;
        }

        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            loginWithPublishPermissions();
        }

    });

示例2。

Handler handler = new Handler(){

    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
    }
};

我知道在两个示例中都有使用InputListner类(在示例1中)和Handler类(在示例2中)中没有参数传递的新对象的创建。但是“{”“}之间是什么,是类的行为或构造函数还是其他什么

2 个答案:

答案 0 :(得分:0)

这是一个界面。

这是一个link,因此您可以了解有关它们的更多信息。

答案 1 :(得分:0)

这是创建类(仅在此处使用)和该类的实例同时的简写表示法。

我们以示例2为例(类似于示例1)。

Handler是一个至少有一个方法public void handleMessage(Message msg)的类(或者需要这种方法的接口)。

这个例子做了两件事:

  • 在编译时,它会创建一个扩展Handler类(或实现Handler接口)的匿名类,并提供handleMessage()方法的给定实现。

  • 在运行时,它会创建此匿名类的实例。

说明

你可以想要改变handleMessage()方法的主体。如果实现只调用super.handleMessage(msg),则整个构造是无意义的,因为匿名类显示与超类完全相同的行为,因此简单的Handler Handler = new Handler();完全相同。