如何计算java中不在主方法中的对象?
我试图计算我已经使用静态变量从另一个类创建的对象,我将它放在构造函数中,这样每次创建对象时它都会增长 我的问题是,当对象不在main中时,如何计数对象,然后在main方法中调用静态变量,以便显示值 你能告诉我我的代码有什么问题吗如何计算java中不在主方法中的对象?,java,Java,我试图计算我已经使用静态变量从另一个类创建的对象,我将它放在构造函数中,这样每次创建对象时它都会增长 我的问题是,当对象不在main中时,如何计数对象,然后在main方法中调用静态变量,以便显示值 你能告诉我我的代码有什么问题吗 public class MataKuliah { public static int JumlahMataKuliah = 0; private String kode, Nama; private int SKS; public MataKuliah(Stri
public class MataKuliah {
public static int JumlahMataKuliah = 0;
private String kode, Nama;
private int SKS;
public MataKuliah(String kode, String Nama, int SKS) {
this.kode = kode;
this.Nama = Nama;
this.SKS = SKS;
JumlahMataKuliah++;
}
}
public class Ruang {
public static int JumlahRuang = 0;
private String Nama, Gedung;
private int Kapasitas;
MataKuliah prolan = new MataKuliah("123GTW", "Pemrograman Lanjut", 5);
MataKuliah sisdig = new MataKuliah("121FGH", "Sistem Digital", 3);
MataKuliah agama = new MataKuliah("009JSH", "Agama", 2);
MataKuliah bind = new MataKuliah("165BGS", "Bahasa Indonesia", 2);
MataKuliah database = new MataKuliah("887BVC", "Database", 4);
public Ruang(String Nama, String Gedung, int Kapasitas) {
this.Nama = Nama;
this.Gedung = Gedung;
this.Kapasitas = Kapasitas;
JumlahRuang++;
}
}
public class Mahasiswa {
public static int JumlahMahasiswa = 0;
private String Nama, NIM;
Ruang R1 = new Ruang("E2.1", "E", 40);
Ruang R2 = new Ruang("E2.2", "E", 35);
Ruang R3 = new Ruang("A1.5", "A", 38);
Ruang R4 = new Ruang("C2.0", "C", 40);
public Mahasiswa(String Nama, String NIM) {
this.Nama = Nama;
this.NIM = NIM;
JumlahMahasiswa++;
}
}
public class Test {
public static void main(String[] args) {
Mahasiswa mhs1 = new Mahasiswa ("Paijo","627362362823");
System.out.println("\n\njumlah matkul : "+MataKuliah.JumlahMataKuliah);
System.out.println("jumlah ruang : "+Ruang.JumlahRuang);
System.out.println("Jumlah Mahasiswa : "+Mahasiswa.JumlahMahasiswa);
}
}
它表明我的JumlahMataKuliah
静态变量中有值20。
由于我只创建了5个对象,如何正确地计算它,使其仅显示5个对象?每个Mahasiswa创建4个Ruang对象,然后创建5个MataKuliah,这意味着你的MataKuliah.JumlahMataKuliah是4x5=20。希望这有帮助静态变量在所有实例之间共享,这意味着您可以说Class.variable从主方法访问变量
public class SomeClass{
public static int instances = 0;
public SomeClass(){
this.instances++;
}
}
public class TestClass(){
public static void main(String[] args){
Sysrem.out.println(SomeClass.instances);
}
}
请注意,使用此方法意味着类的每个实例都将创建的类实例的数量计算为+1(因为它是构造函数调用),因此如果您使用另一个类创建一个类,那么如果创建的类超过1个,则instace count中会添加多个1
如评论中所述,之所以会出现此问题,是因为您在一个类中创建了另一个类的多个实例,并且希望两个实例的数量相同您创建了1个
Mahasiswa
,它创建了4个Ruang
。每个Ruang
创建5个MataKuliah
。1x4x5=20。