/ / Як створити екземпляр внутрішнього класу в конструкторі зовнішнього класу - java, class, конструктор, вкладений

Як створити екземпляр внутрішнього класу у зовнішньому конструкторі класу - java, class, constructor, вкладені

Я перейшов з 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();
}
}