java - 为什么我不能创建内部类的实例?

标签 java class

<分区>

学习了JAVA基础。然后,我遇到了一些问题……没有创建内部类实例。

public class example {
    class book {

        private String name = null;
        private int page = 0;

        book(String name, int page) {
            this.name = name;
            this.page = page;
        }

        String getName() {
            return this.name;
        }

        int getPage() {
            return this.page;
        }

    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        book b1 = new book("book1", 300);       // this line is making an error
        System.out.println(b1.getName());
        System.out.println(b1.getPage());
        System.out.println();
    }
}

最佳答案

您的 book 类是您的 example 类的内部类,这意味着它需要一个封闭的 example 类实例才能被实例化(new example().new book("book1", 300)).

但是,让 book 类不嵌套会更有意义:

class book {
    private String name = null;
    private int page = 0;

    book(String name, int page) {
        this.name = name;
        this.page = page;
    }

    String getName() {
        return this.name;
    }

    int getPage() {
        return this.page;
    } 
}

public class example {  
    public static void main(String[] args) {
        book b1 = new book("book1", 300);
        System.out.println(b1.getName());
        System.out.println(b1.getPage());
        System.out.println();
    }
}

关于java - 为什么我不能创建内部类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494429/

相关文章:

java - Openshift 的预编译 ROOT.war 未部署

Javascript 替换图像源

c# - 如何创建具有生成名称的对象?

javascript - 如何将 URL 链接添加到此 <a class=>

java - 将 Drawable 放置在按钮的右侧

java - 将 int 值从 Activity Fragment 传递到另一个 Fragment

java - 如何延迟进程直到 AsyncTask 完成?

java - 如何创建包含 3 个条件的 if 语句? ( java )

C++ 基本类布局

c# - 缺少 System.Windows.Freezable