为啥我不能像这样实例化一个对象? [复制]
Posted
技术标签:
【中文标题】为啥我不能像这样实例化一个对象? [复制]【英文标题】:Why I can't instantiate an Object like this? [duplicate]为什么我不能像这样实例化一个对象? [复制] 【发布时间】:2018-10-07 14:10:25 【问题描述】:我已经在主类的不同文件中创建了一个类“CdFilm”。但是我不能用我自己的类来实例化新对象。我这样实例化它:
FileRentalVCD.CdFilm film = new FileRentalVCD.CdFilm(1);
这是“CdFilm”类文件:
public class FileRentalVCD
private String judul, publisher;
private char kategori;
private int stok;
public class CdFilm
//inheritance from FileRentalVCD
private String judul, publisher;
private char kategori;
private int stok;
//atribut class CDFilm
private String pemain, sutrdara;
//constructor
public CdFilm (int s)
this.stok = s;
//methods encapsulation
public String getJudul()
return judul;
public void setJudul(String judul)
this.judul = judul;
这是主类,我在其中实例化我的对象:
public class RentalVCD
public void EntriCdFilm (FileRentalVCD.CdFilm input)
Scanner scan = new Scanner(System.in);
System.out.println("Masukan Judul : ");
String judul = scan.next();
input.setJudul(judul);
public static void main(String[] args)
System.out.println("Rental VCD Alif");
System.out.println("1. Entri data CdFilm");
System.out.println("2. Entri data CdMusik");
System.out.println("3. Tampilkan data CdFilm");
System.out.println("4. Tampilkan data CdMusik");
Scanner scan = new Scanner(System.in);
int pilihan = scan.nextInt();
FileRentalVCD.CdFilm film = new FileRentalVCD.CdFilm(1);
【问题讨论】:
你为什么不必要地将一个类包装在另一个类中?这只会增加本应简单的情况的复杂性。 另外,如果您搜索问题的关键词java problem instantiating inner class site:***.com,您会发现许多相似甚至重复的问题。 我不知道,我只是想弄清楚我作业中的问题。这就是我认为用java实现的。如果您有任何解决方案会有所帮助 “如果你有任何解决方案......”是什么意思?我为您提供了 许多 解决方案的链接,但不仅如此,还提供了一个不错的搜索策略,以便您将来可以快速找到类似问题的解决方案。 【参考方案1】:你可以,只是不使用那种语法。这有点违反直觉,但您可以使用以下内容创建内部类的实例:
FileRentalVCD.CdFilm film = new FileRentalVCD(/* add any args here */).new CdFilm(1);
这是必需的,因为您需要外部类的实例来创建内部类的实例。
【讨论】:
有效!!非常感谢你以上是关于为啥我不能像这样实例化一个对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章