Sebastian Ruiz Garcia
Resumen: Usen solamente las Clases Estáticas Anidadas, fin.
Sergio Armando Medina Chaparro
Jajaja vale
brandon james grimaldo moscote
ty xD
¿Cuáles son los tipos de clases en Java?
Entender los diferentes tipos de clases en Java es fundamental para el desarrollo de programas eficientes y bien estructurados. A lo largo de esta guía exploraremos las clases anidadas, estáticas y internas, así como su implicación en la gestión de memoria y ventajas en programación orientada a objetos.
¿Qué son las clases estáticas anidadas?
Las clases estáticas anidadas son un tipo particular de clase dentro de otra clase. No requieren que se cree una instancia de la clase exterior para acceder a ellas. Se accede a estas clases directamente a través del nombre de la clase exterior.
Ventajas de las clases estáticas anidadas
¿Cómo funcionan las clases internas?
Las clases internas, también conocidas como clases anidadas no estáticas, se declaran dentro de otra clase pero no son estáticas. A diferencia de las clases estáticas, necesitan que se instancie la clase exterior para poder acceder a ellas.
Características principales:
class Exterior { class Interior { void mostrar() { System.out.println("Método de la clase interna."); } } } // Usando la clase Exterior exterior = new Exterior(); Exterior.Interior interior = exterior.new Interior(); interior.mostrar();
¿Qué son las clases locales a un método?
Estas son clases declaradas dentro de un método específico y solo pueden ser utilizadas dentro del contexto de este método. Ofrecen un alto nivel de encapsulamiento, pero su uso práctico suele ser menos común.
Diferencias clave con otras clases:
class Inclou { void metodo() { class Local { void imprimir() { System.out.println("Clase dentro de un método."); } } Local local = new Local(); local.imprimir(); } } // Usando el método Inclou inclou = new Inclou(); inclou.metodo();
¿Por qué elegir las clases estáticas anidadas?
El enfoque en la eficiencia de memoria es primordial en lenguajes como Java. Las clases estáticas anidadas minimizan el número de objetos requeridos, mejorando el uso de memoria sin sacrificar funcionalidad. Este atributo las convierte en una opción preferida para proyectos con gestión de memoria crítica.
Resumen de elección:
A través del estudio de estas clases, te preparamos para enfrentarte a diversos escenarios en el desarrollo con Java, permitiéndote tomar decisiones informadas respecto a estructura y eficiencia. ¡Sigue explorando y adquiriendo nuevas habilidades en el mundo de la programación orientada a objetos!
Sebastian Ruiz Garcia
Resumen: Usen solamente las Clases Estáticas Anidadas, fin.
Sergio Armando Medina Chaparro
Jajaja vale
brandon james grimaldo moscote
ty xD
John Garcia
la verdad es que al ver estas clases me empezo a doler la cabeza un poco, pero me lo tomare con calma.
Miguel Angel San Martin Gutierrez
Esperate a ver metodos que llaman a otro metodo y debes contar cuantas veces regresa algo o se estan haciendo una operacion
David Galicia Gomez
Seguro alguna vez te topaste con la recursividad, el verla por primera vez si te da la misma sensacion que describiste hace 2 anios
Miguel Angel Martheyn Berbesi
Lo bueno es que entendi las static :v
Jhoan Sebastián Lopera Gallego
jajajaja
FABRIZIO VITORINO MONJARAS
Huy esto se puso mas intenso que una novela de televisa
Cristian Felipe Patiño Cáceres
Las clases locales a un método son muy comunes cuando estas creando una interfaz de usuario con Java y quieres personalizar algún objeto gráfico, yo las he usado bastante de esta forma
Arturo José Pérez Díaz
Si especialmente para los eventos de botón o cosas así, aunque es mejor hacer una clase controladora que reciba esos eventos en cuanto a lógica es más sencillo que hacerlas locales :)
Andres López
Francisco Sebastian Dueñas Caicedo
Gracias por la explicación uwu
Santiago Rodriguwz
Take a look to the link below to learn more about inner classes
Esp: https://javadesdecero.es/poo/clases-internas/ Eng: https://www.tutorialspoint.com/java/java_innerclasses
Gerardo Mejía
Thanks Bro
Franco David Oliva
Si con la clase anteriro y esta, estás con la cabeza un poco quemada, no te preocupes, no sos el único. No pares!
Resumen: Si vamos a utilizar una, que sean las clases estáticas anidadas.
Jhurgen Maraza
Entiendo que sean recomendables usar clases Static pero, en que momento usar las otra? porque por algo están imagino....
Félix Alejandro Zelaya Orellana
Interesante y loco!
Edgar López Laynez
Les comparto mis apuntes de esta clase. espero les sea de ayuda.
Sergio Alonzo Piña
Las clases internas son aquellas que se definen dentro de otra clase. Existen dos tipos de clases internas en Java: clases internas estáticas y clases internas no estáticas. Las clases internas estáticas no tienen acceso a los atributos de la clase externa, mientras que las clases internas no estáticas sí.
Las clases locales son aquellas que se definen dentro de un método. No pueden ser accedidas desde fuera del método en el que se definen y suelen utilizarse para crear objetos temporalmente en un método. A diferencia de las clases internas, las clases locales no pueden acceder a los atributos de la clase externa, a menos que se les pase una referencia a la clase externa como un parámetro.
Gustavo Eduardo Cruz Torres
Usted si le sabe!!!
Usuario anónimo
User🔮 Si utilizamos clases anidadas lo recomendable es usar clases estáticas, esto permite optimizar la memoria.
Marcos Emilio Velásquez Hidalgo
Muy loco, pero espero ver esto en la practica realmente, al verlo en la teoría no le encuentro mucho sentido xD
Bryson Steven Mosquera Florez
Esto en la actualidad no lo vas a ver, se usaba cuando se realizaban proyectos de escritorio y tenias que amarrar algún botón o algo por el estilo, pero esto es una mala práctica, aunque no está de más saber que existe en el lenguaje.
Saludos
Victor Rodriguez
Le acabo de preguntar a un amigo que es Senior Java, lleva años trabajando con Java en proyectos grandes para diferentes empresas en mi país, y me dice que jamás en la vida ha usado ese tipo de clases anidadas.
Pero bueno, es valido saber que existen estas formas, capaz encontremos algún caso de uso en un futuro donde podamos aplicar.
Silvana Rolón
Gerald Zamora
Pero esas no son todas, faltan las clases anónimas. No?
Andres López
Cree que esas las enseñan en el curso de Programación funcional en Java. Creo que Anahí dijo eso en la Clase anterior
Oscar Adolfo Méndez Muñoz
//como podemos ver el método run() contiene una declaración de una clase, y contiene las instrucciones para instanciar la clase y ejecutar un método del objeto instannciado.
En el main, cuando se crea un objeto de clase externa Enclosing, se puede ejecutar el método que contiene a la clase; cuando se ejecuta el método contenido por la clase externa, resulta que se instancia una clase que es local al método. Luego se pueden dar las instrucciones para que se ejecuten métodos del objeto instanciado.
CLASES LOCALES A UN MÉTODO.
El alcance (scope) es local al método.
public class Enclosing {
void run() { class Local { void run () { } } Local local = new Local (); local.run(); }
}
public class Main { public static void main (String[] args) { Enclosing enclosing = new Enclosing(); enclosing.run(); } }
Sebastián Ospino
Yo lo entendí así: *Clases internas estáticas: Se usan cuando no es necesario definir un objeto de la clase externa para acceder a esta clase interna. *Clases internas no estáticas no locales a un método: Se usan cuando es necesario definir un objeto de la clase externa para poder acceder a esta clase interna. *Clases internas no estáticas locales a un método: Se usan cuando es necesario definir un objeto de la clase externa para acceder a esta clase interna, y además, estas clases internas tienen la propiedad de definirse dentro de un método y a su vez crear un objeto una vez se ejecuta este método. Esto último me da a entender que este tipo de clases internas se usan cuando la ejecución de cierto método implica, necesariamente, la creación de un objeto.
Mis apuntes de la Clase:
Clases Internas y Locales a un método
Clases Internas
También llamadas Clases anidadas no estáticas. Al no ser una Clase estática, es necesario instanciarla. Ejemplo:
// Declaración de la Clase Interna public class Outer { public class Inner { } }
Llamar a la Clase:
public class Main { public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); } }
Para declarar este tipo de Clases hay que instanciar 2 objetos, lo que consume más espacio en memoria, por lo tanto, hay que tener cuidado al usar este tipo de Clases, de hecho este tipo de Clases no son muy comunes.
Clases Locales a un Método
Este tipo de Clases tienen un scope definido para el método al que pertenecen, en el ejemplo de abajo ese método sería el primer void run().
Si se quiere tener acceso al método run de la Clase Local, hay que crear una instancia de dicha Clase.
Declarar una Clase Local a un método
public class Enclosing { void run() { class Local { void run() { ... } } Local local = new Local(); local.run(); } }
Instanciar una Clase Local a un método
public class Main { public static void main(String[] args) { Enclosing enclosing = new Enclosing(); enclosing.run(); } }
Este tipo de Clases también consumen más espacio en memoria. Lo recomendable en estos casos es usar Clases estáticas anidadas para hacer un mejor uso de la memoria.