Las Clases Anónimas son una forma de instanciar clases abstractas sin necesidad de usar sus clases hijas. Pero este tipo de instanciación tiene algunas restricciones: el ciclo de vida de estas instancias NO es duradero, no las tendremos disponibles durante toda la ejecución del programa.
// Clase Abstracta:publicabstractclassFigura{abstractvoiddibujar();}// Clase Anónima:User user =newUser(){@OverridepublicvoidshowDataUser(){// Instrucciones...}};
Java hace 1 hora: las clases son como moldecitos para crear objetos, solo debemos instanciarlas...
Java hace 30 minutos: bueno, también existen las clases con métodos estáticos, estas funciones se pueden llamar/ejecutar sin necesidad de instanciar las clases...
Java hace 10 minutos: bueno, también existen las clases abstractas, son clases que nunca instanciamos pero que nos permiten definir métodos opcionales u obligatorios de implementar en las clases que hereden de ellas...
Java Ahora: bueno, también existen las clases anónimas, son un "hack" para instanciar clases abstractas...
...
:flushed::flushed::flushed::flushed::joy:
jajaja tal cual!
Tal cual x 2
Así me esta dejando Java 😂
X2
x3
si no me gustase tanto Java y el hecho de la capacidad que nos da de realizar cosas increibles, ya hubiese renunciado a este curso, el nivel de complejidad aumenta pero el nivel de amor incrementa, definitivamente debe ser asi.
Realmente te demuestran tan bien las ventajas de saber lo que te presentan como una dificultad nueva que NECESITAS aprenderlo sin lugar a dudas
Lo comparto totalmente
Java esta cañon, jaja muchos temas! aiuraaa
Hola parece ser que en la sección de recursos se ha colocado mal el ejemplo de la clase abstracta esto podría causar confusión
Me quede igual de confundido, pase como 10 min creyendo que era yo el que estaba mal. Gracias!
En android existen muchas funciones anonimas, principalmente para dictar el comportamiento de los eventos en la pantalla
me va a explotar la cabeza :p
x2
x3
Estoy un poco perdido, solo me falta entender, jajaja
Termina siendo super complejo java, me encanto, hay muchas maneras de hacer todo
Java por fuera se ve como un monstruo por dentro es un amor...
No, Por donde lo veas es un monstruo jajaj xd
Esta interesante la clase, pero no sé porque termine más confundido con esto de las clases anónimas
Este es el momento en el que me cuestiono de haber hecho una buena elección al elegir estudiar
} con ;....¿Por qué?
Es porque cuando termina la clase anonima, el lenguaje lo toma como una sentencia de codigo, se ven 4 lineas pero en realidad para Java una sentencia termina cuando encuentra un ;
📦 Una clase anónima nos permite instanciarclases abstractas, con restricciones.
Clases Anónimas
Las clases anónimas son un "hack" para poder instanciar clases abstractas, sin embargo tiene algunas restricciones, una de ellas es que el ciclo de vida de la instancia va a ser muy corto. Las clases anónimas son similares a las clases abstractas.
Aplicación
User user1 =newUser("Juan","juan@mail.com"){@OverridepublicvoidshowDataUser(){System.out.println("Doctor");System.out.println("Hospital: ISSSTE");System.out.println("Departamento: Psicología");}};
Lo que se hace es llamar al método abstracto que es obligatorio implementar y ahí mismo se le da el comportamiento que se necesite, pero solo estará vigente en esa clase.
La forma de llamar el método con el objeto que se creo es:
user1.showDataUser();
Una de las aplicaciones más usadas para las clases anónimas es para darle a un objeto de la interfaz de Android la característica de onClick, para que tenga un comportamiento cuando sea clickeado.
También es posible crear clases anónimas con interfaces e implementar igualmente los métodos de esta, se realiza de la misma manera.
Creo que el curso tiene una complejidad manejable, el problema es que a Anahi se le salio de las manos, se perdio en los ejemplos y ya no supo explicar. Ella sabe mucho, pero no sabe explicar. Posiblemente no se preparo lo suficiente
A como lo entiendo es que una Clase Anónima nos ayuda a darle un comportamiento diferente a un objeto específico de esta clase, mientras los demás objetos que se puedan crear de esta misma clase se comporten de la misma manera.
Además de esta aplicación también nos ayudan a poder instanciar clases abstractas.
¿Se pueden instanciar clases abstractas?
Sí se puede, pero no se puede.
¿Alguien sabe tal vez otro ejemplo mas claro de clases anónimas? :) :)
publicclassMain{publicstaticvoidmain(String[] args){Perro perro =newPerro(){//En el constructor de la instancia sobrescribimos el método de la clase, así creamos un objeto de la clase con un método distinto del resto. //A esto se le llama CLASE ANÓNIMA puesto que sólo este objeto contará con esta modificación. @OverridepublicStringladrar(){return"ZzzZZzzzZ";}}System.out.println(ladrar());//imprime ZzzZZzzzZPerro perro2 =newPerro();System.out.println(ladrar());//imprime Wof - Wof}}