Я перейшов з C ++ на Java і у мене проблемаз вкладеними класами. Я хотів би ініціювати екземпляр підкласу в конструкторі надкласу. Я спробував це так, але, здається, це неправильно.
public class Aircraft {
public class LandingGear {
}
public Aircraft() {
Aircraft.LandingGear myLandingGear = this.new LandingGear();
}
}
Ідея полягає в тому, що кожен екземпляр класу Aircraft має екземпляр "myLandingGear" підкласу LandingGear.
Відповіді:
0 для відповіді № 1Кожен літак повинен мати наземний механізм
public class Aircraft {
private LandingGear myLandingGear;
public Aircraft() {
myLandingGear = new LandingGear();
}
public LandingGear getLandingGear() {
return this.myLandingGear;
}
}
2 для відповіді № 2
Для цього випадку використання повинен бути ваш вкладений клас static
(якщо він взагалі буде вкладений), і тоді ви просто використовуєте простий new
:
public class Aircraft {
public static class LandingGear {
// ----^
}
public Aircraft() {
Aircraft.LandingGear myLandingGear = new LandingGear();
// --------------------------------------^^^^
}
}
Коли це "не статично, це" внутрішній клас, який з вашого опису не є тим, що ви хочете. Детальніше про вкладені класи в цьому підручнику Java.
Але якщо тільки немає справді вагомих причин LandingGear
вкладати всередину Aircraft
, подумайте про те, щоб зробити це однолітком.
0 для відповіді № 3
public class Aircraft {
public class LandingGear {
public static void m1()
{
//Your code snipet
}
}
public Aircraft() {
LandingGear.m1();
}
}