Как да внедрим анонимен клас в Java



Този блог ще ви предостави подробни и всеобхватни познания за анонимния клас в Java с примери и как се различава от обикновения клас.

Анонимните класове ви позволяват да пишете малък код и ви позволяват да декларирате и създавате екземпляр на класа едновременно. Тези класове нямат имена, той се използва, когато искате да използвате който и да е клас само веднъж. Това е важен аспект на Java програмирането. Нека разберем какво е Anonymous Class в Java в следния ред:

Деклариране на анонимни класове





пример за извикване на отдалечен метод

Обикновено създаваме клас, т.е. декларираме клас, но анонимните класове са изрази, което означава, че дефинираме анонимния клас в друг израз . С прости думи, анонимният вътрешен клас е клас без имена и се създава само един обект.

Anonymous-Class-In-Java



Анонимният клас е полезен, когато трябва да създадем екземпляр на обекта с методи за претоварване на клас или интерфейс, без да създаваме подклас на класа.

Анонимните могат да бъдат създадени по два начина:

  • Клас (може да бъде и Абстрактен)
  • Интерфейс

В анонимния клас можем да декларираме следното:



  • Полета
  • Допълнителни методи
  • Инициализатори на инстанции
  • Местни класове

Синтаксис на анонимния клас в Java

Синтаксисът на анонимен клас е точно като конструктора, с изключение на това, че в блока има дефиниция на клас, както е показано в фрагмента по-долу:

// AnonymousClass = интерфейс, абстрактен / конкретен клас. AnonymousClass t = new AnonymousClass () {// методи и полета public void someMethod () {// кодът отива тук}}

Нека да разгледаме следния пример:

Следващият пример,HelloAnonymousClass, използва анонимни класове в инициализиращите изрази на локалните променливипоздрави някойно използва локален клас за инициализация на променливатапоздраветеСвят:

публичен клас HelloAnonymousClass {интерфейс HelloWorld {публична празнота sayHello () публична празнота sayHelloTo (String някой)} public void sayHello () {class GreetWorld реализира HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} публична празнота sayHelloTo (String някой) {name = някой System.out.println ('Hello' + name)}} HelloWorld greetWorld = new GreetWorld () HelloWorld greetSomeone = new HelloWorld () {String name = 'jon' public void sayHello ( ) {sayHelloTo ('Jon')} публична невалид sayHelloTo (String някой) {name = някой System.out.println ('hola' + name)}} greetWorld.sayHello () greetSomeone.sayHelloTo ('Doe')} обществена статична void main (String ... args) {HelloAnonymousClass myApp = new HelloAnonymousClass () myApp.sayHello ()}}

Както видяхме, че анонимният клас е израз, синтаксисът е точно като конструктор, освен че в блока има дефиниция на клас. Помислете за създаването на екземпляр на обекта greetSomeone:

HelloWorld greetSomeone = new HelloWorld () {String name = 'jon' public void sayHello () {sayHelloTo ('Jon')} public void sayHelloTo (String neko) {name = някой System.out.println ('hola' + name) }}

Анонимният клас се състои от следното:

  • нов оператор.
  • Той може да реализира интерфейс или да разшири клас. Както в горния пример, той изпълнява интерфейса.
  • Той съдържа скоби точно като нормалните класове, за да предаде аргументи на конструктора.
  • Съдържа тяло, което съдържа декларации за методи. Декларациите не са разрешени.

Анонимният клас трябва да бъде част от извлеченията.

В горния пример анонимният израз на клас е част от израза, иницииран отпоздрави някой.

Начини за създаване на анонимен клас в Java

Има 3 начина да създадете Inner Class в Java

  • Чрез удължаване на класа

Можем да създадем анонимен вътрешен клас, като разширим друг клас, да предположим, че трябва да създадем нишка, като използваме Thread клас, можем да създадем анонимен вътрешен клас, вместо да създаваме отделен клас.

// Програма за илюстриране на Anonymous Inner class чрез разширяване на друг клас AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class, който разширява клас Thread Thread t = new Thread () {public void run () {System .out.println („Дете!“)}} t.start () System.out.println („Родител!“)}}

Изход:

Родител!

Въпроси за интервю за облачни услуги на Salesforce

Дете!

  • Чрез внедряване на интерфейс

Също така можем да създадем анонимен вътрешен клас, като внедрим интерфейса. Сега, тъй като създадохме вътрешен клас, като разширихме класа по подобен начин, можем да създадем клас, който реализира интерфейс.

// Програма за илюстриране на Anonymous Inner class чрез внедряване на клас интерфейс AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class, който реализира интерфейс Runnable r = new Runnable () {public void run () {System.out .println ('Child!')}} Тема t = нова нишка (r) t.start () System.out.println ('Родител!')}}

Изход:

Родител!

Дете!

  • Като аргумент на метод / конструктор

За да разберем синтаксиса, нека разгледаме примера по-долу:

// Програма за илюстриране на анонимен вътрешен клас чрез клас аргументи AnonymousThreadClass {public static void main (String [] args) {// Anonymous class with constructor argument Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Дете!')}}) t.start () System.out.println ('Родител!')}}

Изход:

Родител!

писане на преводач в java

Дете!

Разлика между редовен и анонимен вътрешен клас

  • Можем да изпълним множество номера на интерфейси като използваме нормален клас, но с анонимен вътрешен клас можем да реализираме само един интерфейс.

  • С редовен клас можем разширяване на клас и също така да реализираме множество интерфейси, но с анонимен вътрешен клас можем или да разширим клас, или да реализираме интерфейс, но не и двете едновременно.

  • С анонимни ние не може да пише конструктор тъй като анонимният вътрешен клас няма име и името на конструктора трябва да е същото като името на класа.

В тази статия видяхме какво е анонимен вътрешен клас и как можем да го създадем. преминахме през синтаксиса на анонимния вътрешен клас и също така как можем да създадем анонимен клас по 3 начина и с това стигнахме до края на тази статия за Анонимен клас в Java. Вижте от Edureka.

Имате въпрос? Споменете го в раздела за коментари на тази статия и ние ще се свържем с вас възможно най-скоро.