创建类的不同方法?

时间:2015-01-16 03:31:45

标签: java class object netbeans

我一直在练习在netbeans中制作GUI并遇到了这个自动生成的代码

  saveButton.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                saveButtonMousePressed(evt);
            }

我在参数#34; new java.awt.event.MouseAdapter()"中感到困惑。我知道当我们使用" new"关键字我们创建该类的对象。但在那之后"新"声明它声明了一种方法,所以我的感觉是"一个带有方法的对象?我知道我们创建对象,以便我们可以使用方法而不是在其中创建方法"。

在研究和阅读内部课程后,我现在有了不同的视角。

是否可以使用" new"在参数中创建一个类?声明?如果为true,那么该代码没有创建对象,而是创建了一个类。

如果我的结论是正确的,那么有两种方法(我知道到目前为止)在java中创建类。

  1. 使用,

    public clas Sample() {
    
    //insert methods here
    
    }
    
  2. 并使用,

    public void getSomething(new Sample() { //insert method here })
    
  3. 我得到了这个吗?我只是java(自学)的初学者。

1 个答案:

答案 0 :(得分:1)

创建class并不是一种不同的方式,实际上你用与任何其他类相同的方式定义它,但你没有命名它,它只是一个专门的MouseAdapter

实际发生的是您定义mousePressed的专用版本而无需将其与MouseAdapter的命名子类相关联。这就像在同一点定义和使用类一样。您可以定义具有特定行为的特定类并对其进行实例化。

确实称为anonymous class。这与inner class没有任何共同之处,{{3}}是在另一个类中定义的类(因此它们是嵌套的)。