Введение во внутренние классы
Класс, определенный в другом классе, называется внутренним классом
Участник внутренний класс
1..new, чтобы создать внутренний класс участника, вы должны сначала создать экземпляр внешнего класса, а затем создать объект внутреннего класса через .new
2 .. Это вы можете получить доступ к всем свойствам и методам внешних классов через имя класса. Это внешнее класс.
public class test1 {string name = "asnd"; public static void main (string [] args) {test1 test1 = new test1 (); Inner minner = test1.new inner (); minner.print (); } void show () {System.out.println ("show"); } открытый класс inner {string name = "123"; private void print () {show (); System.out.println (name); // print 123 system.out.println (test1.this.name); // print asnd}}}Анонимный внутренний класс
Класс без имени также создаст объект при создании класса.
Вам нужно использовать класс только один раз, чтобы использовать анонимные внутренние классы
File file = new File ("d: /cc.txt") {@override public boolean lelete () {system.out.println ("Не удалять y/n"); Scanner Input = новый сканер (System.in); String str = input.next (); if (str.equals ("y")) {return super.delete (); } System.out.println ("удалить неудачу"); вернуть ложь; }}; file.delete (); }Анонимный объект
Объект должен быть доступен только один раз.
new Thread () {@Override public void run () {System.out.println ("start!"); try {thread.sleep (2000); System.out.println ("end thread!"); } catch (Exception e) {e.printstackTrace (); } super.run (); } }.начинать();Статический внутренний класс
1. Статические внутренние классы могут получить доступ только к статическим методам и переменным внешним классам и не могут получить доступ к нестатическим.
2. Статические внутренние классы могут быть созданы непосредственно, не создавая ссылки на внешние классы.
Анонимный внутренний доступ к классу локальные переменные
Внутренний доступ к классу локальные переменные должны быть окончательными. Если не добавлено, JDK1.8 будет добавлен по умолчанию. Когда используется используемая переменная, можно использовать следующий метод, или следующее я могу быть установлен как статический в начале.
for (int i = 0; i <5; i ++) {final int finali = i; new Thread () {public void run () {System.out.println (finali); }; }.начинать(); }Ниже приводится введение в навыки реализации внутренних классов
public static void main (string [] args) {lam mlam = new lam (); // первый метод реализации mlam.to (new Light () {@Override public void shin () {System.out.println ("on First Method");}}); // Второй метод реализации класс Mylam реализует Light {@Override public void shin () {System.out.println ("Second"); }} mlam.to (new mylam ()); }} интерфейс Light {void Shin ();} класс LAM {public void to (Ligh Light) {ligh.shin (); System.out.println ("on"); }}Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!