Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java编程语言语法_Java - Fatal编程技术网

Java编程语言语法

Java编程语言语法,java,Java,首先,我必须承认,我没有在网上搜索我的问题,因为我不知道哪些关键字与我的问题相匹配。我只有几个小时的java经验,并且我遇到了以下语法: public class Simulation extends JFrame { // some fields... public Simulation() { ActionListener listener1 = new ActionListener() { @Override

首先,我必须承认,我没有在网上搜索我的问题,因为我不知道哪些关键字与我的问题相匹配。我只有几个小时的java经验,并且我遇到了以下语法:

public class Simulation extends JFrame {

    // some fields...

    public Simulation() {
    ActionListener listener1 = new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent arg0) {
                    InputStream pauseStream;
                    try {
                        pauseStream = new FileInputStream("/pause.wav");
                        PM = new AudioStream(pauseStream);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }



                    setPause(!isPause());
                    if(isPause()) {
                        button1.setText("Play");
                        MGP.stop(BGM);
                        MGP.start(PM);
                    } else {
                        button1.setText("Pause");
                        MGP.start(PM);
                        MGP.start(BGM);
                    }


                }
            };
    }
       // other methods
}
<>遗憾的是,我不理解下面的行的含义(我是指它的函数、类或类似的东西)<代码> ActuistListListNe1=新ActualListNEnter(){< /Cord> >,因为,我记得C或C++中没有对应关系。
如果我没有错的话,通过ActionListener 1=new ActionListener()应该创建ActionListener实例,但以下方括号中的代码是什么?

方括号后的代码是的语法。这类似于您在C++11中看到的lambda表达式,只是它定义了一个完整的类而不是一个函数(因此是匿名类而不是函数).

@KonstantinV.Salikhov非常感谢,正如我之前所说的,我无法搜索它,因为我不知道这个事实的名称,但现在我通过一本入门书学习了它。你正在使用该代码创建一个匿名内部类对象。由于ActionListener是一个接口而不是一个具体的类,你不能简单地创建一个实例通过
new ActionListener()
,但必须从实现ActionListener的具体子类创建实例,这是一种简单的方法。之所以称为“匿名”,是因为创建的类没有名称,并且无法(轻松地)引用(虽然以这种方式创建的对象可以很容易地引用,因为您已将其分配给变量)。@Radiodef如我在问题中所说,我不知道如何在web或stackoverflow上搜索我的问题,因此我认为它不是一个复杂的问题