为什么我不能像这样实例化一个对象?
Why I can't instantiate an Object like this?
我已经在 class class 的不同文件中制作了 class。但是我不能用我自己的 class 实例化新对象。我这样实例化它:
FileRentalVCD.CdFilm film = new FileRentalVCD.CdFilm(1);
这是 class "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;
}
}
}
这是主要的 class,我在这里实例化我的对象:
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);
}
}
可以,只是不能使用那种语法。这有点违反直觉,但您可以使用以下内容创建内部 class:
的实例
FileRentalVCD.CdFilm film = new FileRentalVCD(/* add any args here */).new CdFilm(1);
这是必需的,因为您需要外部 class 的实例来创建内部 class 的实例。
我已经在 class class 的不同文件中制作了 class。但是我不能用我自己的 class 实例化新对象。我这样实例化它:
FileRentalVCD.CdFilm film = new FileRentalVCD.CdFilm(1);
这是 class "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;
}
}
}
这是主要的 class,我在这里实例化我的对象:
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);
}
}
可以,只是不能使用那种语法。这有点违反直觉,但您可以使用以下内容创建内部 class:
的实例FileRentalVCD.CdFilm film = new FileRentalVCD(/* add any args here */).new CdFilm(1);
这是必需的,因为您需要外部 class 的实例来创建内部 class 的实例。