types classes java
Este tutorial discutirá varios tipos de clases en Java como Abstract, Concrete, Final, Inner, POJO, Static y otras clases especiales con ejemplos:
En nuestro tutorial anterior, discutimos clases y objetos en Java. Una clase en Java es una plantilla o modelo. También se puede definir como una colección de objetos similares. Definimos objetos de clase de tipo y luego nos comunicamos a través de estos objetos.
Cada objeto es una instancia de una clase que tiene un estado y comportamiento.
=> Visite aquí para ver la serie exclusiva de tutoriales de formación en Java.
Lo que vas a aprender:
- Tipos de clases en Java - Introducción
- Tipos de clases en Java
- Otras clases especiales en Java
- Conclusión
Tipos de clases en Java - Introducción
Todos sabemos que la clase tiene los siguientes componentes:
- Modificadores: Especifique el acceso para la clase.
- Nombre de la clase: Nombre de la clase.
- Palabras clave: Palabras clave que sugieren si una clase se extiende o implementa una clase o interfaz.
- El cuerpo de la clase entre llaves {}
Dependiendo de los diferentes modificadores utilizados, el cuerpo de la clase especificado y las palabras clave utilizadas, tenemos varios tipos de clases en Java.
programa de copia de seguridad gratuito para windows 7
- Clase de hormigón: Una clase normal que tiene la implementación concreta de métodos.
- Clase POJO: Este es un 'Objeto Java antiguo simple' que contiene solo variables miembro privadas y métodos getter setter para acceder a estas variables.
- Clase abstracta: Esta clase tiene uno o más métodos abstractos.
- Clase final: No se puede heredar una clase final.
- Clase estática: Una clase que contiene solo miembros estáticos.
- Clase interna: Una clase interna es una clase que es miembro de otra clase.
En este tutorial, discutiremos cada uno de estos tipos de clases con ejemplos.
También discutiremos algunos otros tipos de clases que se consideran clases especiales en Java.
- Clase anónima: Una clase sin nombre.
- Clase inmutable: Una clase cuyo objeto no se puede cambiar.
- Clase singleton: Una clase cuya instancia única se puede crear.
- Clase de objeto: La clase base de todas las funciones de Java.
- Clase de envoltura: Cada tipo de datos primitivo en Java tiene una clase contenedora.
Pero primero, analicemos brevemente cómo importar una clase en Java junto con la clase Main en Java que contiene el método principal o el punto de partida en Java.
Importar en Java
En Java, si queremos incluir alguna característica o funcionalidad en nuestro programa, entonces podemos usar la declaración 'importar'. Usando la declaración de importación podemos importar un paquete completo y usar su funcionalidad en nuestro programa o también podemos incluir una sola clase.
A continuación se muestra la sintaxis de la declaración de importación.
|_+_|Si queremos importar el paquete java.lang y todas sus clases, entonces podemos escribir la siguiente declaración:
|_+_|Supongamos que queremos incluir la funcionalidad de la clase Arrays en nuestro programa, luego podemos escribir la siguiente declaración:
|_+_|La declaración de importación es equivalente a la declaración de inclusión de C / C ++. La declaración de importación se coloca al principio del programa Java como la primera declaración. Podemos tener más de una declaración en el programa Java.
Clase principal en Java
Ya somos conscientes de que en Java, el método main () es el punto de partida de la ejecución de cualquier programa y se puede colocar en cualquier clase de esa aplicación en particular. Sin embargo, si tenemos una aplicación compleja con demasiados archivos y clases, entonces es recomendable tener una clase Main y colocar el método main () en esta clase Main.
|_+_|Tenga en cuenta que la JVM no crea un objeto de clase Main. La lógica detrás de esto es que como main () es un método estático, se puede llamar sin ningún objeto de clase.
Tipos de clases en Java
Pasemos ahora a los tipos de clases en Java. Explicaremos cada una de estas clases una a una seguidas de los ejemplos de programación.
# 1) Clase de concreto
Una clase concreta es cualquier clase normal en un programa Java. Esta clase no tendrá métodos abstractos. Todos los métodos de la clase concreta están completamente implementados.
Una clase concreta puede heredar de otra clase, incluso una clase abstracta o implementar una interfaz. Podemos instanciar la clase concreta y crear sus objetos.
A continuación se muestra un ejemplo simple de una clase concreta.
|_+_|Producción

El programa anterior muestra una clase concreta. Vemos que esta clase tiene una implementación completa. No queda nada incompleto o sin implementar.
# 2) Clase POJO
Un POJO (Plain Old Java Object) es una clase que contiene solo variables de miembros privados. Aparte de las variables de miembros privados, solo contiene los métodos getter y setter utilizados por estas variables miembro.
Una clase POJO no tiene su comportamiento. Sin embargo, puede anular algunos métodos como iguales o interfaces.
Propiedades de la clase POJO:
- La clase POJO debe tener un método getter y setter público.
- Todos los miembros o variables de instancia deben ser privados.
- La clase POJO no extiende ni implementa clases o interfaces que están preespecificadas.
- No contienen anotaciones predefinidas.
- No tiene un constructor sin argumentos (constructor sin argumentos).
A continuación se muestra un programa Java que demuestra la clase POJO.
|_+_|Producción

La demostración anterior de la clase POJO muestra que tiene una variable privada y los métodos getter setter para esta variable. Para acceder a esta variable miembro, usamos el método getter. El método setter se utiliza para actualizar el valor.
# 3) Clase abstracta
Una clase abstracta es una clase que está incompleta o cuya implementación no está completa. No se puede crear una instancia de una clase abstracta. Necesita ser extendido por las otras clases e implementar sus métodos para formar una clase concreta.
Una clase abstracta se declara utilizando la palabra clave 'resumen'. Una clase abstracta puede tener métodos estáticos y finales, así como constructores.
Demostremos una clase abstracta en Java.
|_+_|Producción

En el programa anterior, tenemos una interfaz multiplicar. Creamos un Producto de clase abstracta que implementa una interfaz múltiple. Dentro del Producto, tenemos un producto de método que no está implementado. Luego tenemos una clase Main que hereda la clase Product e implementa el método product. Más tarde, llamamos a este método en el objeto de la clase Main.
# 4) Clase estática
Una estática en Java en general significa el objeto que pertenece a una clase y no a las instancias individuales. Por lo tanto, no es necesario acceder a un miembro o método estático en Java con un objeto, sino directamente usando un nombre de clase.
Una clase estática en Java solo puede contener miembros estáticos. Además, no podemos instanciar una clase estática.
El siguiente programa Java demuestra una clase estática.
|_+_|Producción

La clase anterior demuestra la clase estática. Aquí tenemos una clase estática que es miembro de otra clase concreta. Dentro de la clase estática, calculamos la suma de dos números y almacenamos el resultado en una variable estática que es miembro de la clase externa.
# 5) Clase final
Una clase final es una clase que no se puede heredar ni subclasificar. Una vez que una clase se declara final en Java, es una especie de constante y se vuelve inmutable.
Por lo tanto, para hacer que una clase sea inmutable, tenemos que declararla como final.
|_+_|Producción

El programa anterior primero declara una Base_Class que está marcada como 'final'. Por lo tanto, cuando intentamos extenderlo en Derived_Class, obtenemos un error del compilador. (La línea comentada). Pero podemos crear su objeto y llamar al método Display.
# 6) Clase anidada / Clase interna
La clase anidada, también conocida como clase interna en Java, se utiliza para mejorar la encapsulación. Una clase anidada / clase interna es una clase incluida dentro de otra clase.
Al igual que una clase tiene variables y métodos como miembros, también puede tener una clase interna como miembro.
Una clase anidada tiene la siguiente estructura:
|_+_|Las clases internas tienen los siguientes subtipos:
- Clase interna anidada
- Método Local Clase interna
- Clase interna anónima
- Clase anidada estática
# 1) Clase interna anidada
Una clase interna anidada tiene acceso a variables miembro privadas de una clase externa. También podemos aplicar modificadores de acceso a la clase interna anidada.
# 2) Método de clase interna local
Esta es la clase interna que se declara dentro de un método de clase externa.
# 3) Clase interna anónima
La clase interna anónima es una clase interna declarada dentro de una clase externa y no tiene nombre.
# 4) Clase anidada estática
De la misma manera que una clase tiene una variable miembro estática, también puede tener una clase estática como miembro.
A continuación se ofrece un ejemplo de una clase anidada / interna:
|_+_|Producción

Otras clases especiales en Java
Clase inmutable en Java
Una clase inmutable genera objetos inmutables. Un objeto inmutable es un objeto cuyo contenido no se puede cambiar una vez que se crea el objeto. Entonces, una clase inmutable es aquella cuyo objeto no se puede cambiar una vez creado.
Todas las clases contenedoras en Java para tipos primitivos (Integer, Boolean, Byte, etc.) son inmutables. La clase String también es inmutable.
También podemos tener clases inmutables definidas por el usuario en Java.
Para que una clase sea inmutable, debe declararse final junto con todos sus miembros de datos. Además, la clase debe tener un constructor parametrizado. Todas las variables miembro deben tener un método getter pero no un método setter.
Todos los requisitos anteriores deben cumplirse para que una clase sea inmutable.
mejores aplicaciones de descarga de mp3 para android
Implementemos un programa Java para demostrar la clase inmutable.
|_+_|Producción

En el programa anterior, hemos declarado una clase City. Esta es una clase final y en esta clase, hemos declarado dos variables miembro y un constructor parametrizado. También hemos declarado métodos getter para estas dos variables miembro. De modo que la clase City cumple todos los requisitos de una clase inmutable.
Tenga en cuenta la línea de código comentada en el método principal. Si quitamos el comentario de esta línea, obtendremos un error del compilador (proporcionado en el comentario aquí) ya que estamos tratando de establecer el valor para una variable miembro.
Clase Singleton en Java
Una clase singleton permite una sola instancia a la vez. En Java, un singleton es un patrón de diseño. Este patrón de diseño asegura que solo exista una instancia de una clase en cualquier momento. Entonces, cualquier clase definida como singleton tiene un solo punto de acceso y es global.
Tenga en cuenta que la finalización del ciclo de vida de la aplicación no destruye una clase singleton como las clases normales. Cuando una clase se declara singleton, no creamos una nueva instancia cada vez que se realiza una nueva solicitud para el objeto.
La misma instancia se usa una y otra vez. De esta manera podemos ahorrar espacio en la memoria principalmente en el caso de aplicaciones de bases de datos y multiproceso.
Podemos usar una clase singleton para actividades como almacenamiento en caché, registro, etc.
El siguiente programa demuestra una clase Singleton.
|_+_|Producción

En el programa anterior, hemos definido una clase singleton con un constructor privado. Hemos definido una variable miembro de tipo String. En el método principal, declaramos dos instancias de la clase singleton. Luego cambiamos la variable String usando una de las instancias.
Cuando imprimimos el valor de String para ambas instancias, notamos que el valor de la variable String ha cambiado para ambas instancias. Por lo tanto, aunque cambiamos el valor solo para una instancia, debido a la clase singleton, los cambios se reflejan en todas las instancias.
Siempre devolvemos la misma instancia aunque parezca que creamos instancias diferentes.
Clase de objeto en Java
La clase Object es la clase principal o la primera clase en Java. Está en el nivel más alto de la jerarquía de Java.
Como todas las clases tienen la clase Object como superclase, todos los objetos Java, incluidos los Arrays, implementan los métodos de la clase Object. La clase de objeto está presente en el paquete 'java.lang'.
La declaración de java.lang.Object es:
Objeto de clase pública
La siguiente tabla describe los constructores y métodos de la clase Object.
| Constructor / Método | Descripción |
|---|---|
| Clase getClass () | Devuelve la clase de tiempo de ejecución del objeto. |
| Constructor de clases de objetos | |
| Objeto() | Constructor de clases de objetos |
| Métodos de clase de objeto | |
| clon de objeto protegido () | Devuelve un clon o copia del objeto. |
| booleano es igual a (Objeto obj) | Comprueba si un objeto determinado obj es igual a este objeto. |
| vacío protegido finalizar () | Lo llama el recolector de basura cuando se destruyen todas las referencias al objeto. |
| int hashCode () | Devuelve el código hash del objeto. |
| anular notificar () | Úselo para despertar un solo hilo en espera. |
| anularnotificarTodo () | Despierta todos los hilos en espera. |
| Cadena toString () | Devuelve String equivalente al objeto. |
| esperar vacío () | Hace que un hilo espere hasta que otro hilo lo despierte mediante el método de notificación. |
| espera vacía (tiempo de espera largo) | Hace que el hilo espere hasta que transcurra el tiempo dado por el 'tiempo de espera' o se despierte mediante los métodos notificar o notificar a todos. |
| espera nula (tiempo de espera largo, nanos int) | Hace que el hilo espere hasta que haya transcurrido el tiempo especificado o hasta que otro hilo invoque notificar () o notificar a todos (). |
Implementemos un programa Java de ejemplo que demostrará algunos de los métodos de la clase Object.
|_+_|Producción

Aquí tenemos una clase principal. En el método main () creamos un objeto de la clase Main. Este objeto es un descendiente de la clase Object y es compatible con todos los métodos de la clase Object. Por lo tanto, usamos este objeto y llamamos a algunos métodos de clase de objeto como hashCode (), System.GC (), finalize (), etc.
Clase contenedora en Java
Java proporciona una característica llamada clase contenedora que tiene un mecanismo que convierte el tipo de datos primitivo en objeto y viceversa. Las clases de envoltura son las clases que representan tipos primitivos como int, char, etc. como objetos.
Por tanto, cada tipo de datos primitivo en Java tiene su correspondiente clase contenedora.
La siguiente tabla muestra los tipos de datos primitivos y su clase contenedora equivalente.
| Tipo primitivo | Tipo de envoltorio |
|---|---|
| flotador | Flotador |
| booleano | Booleano |
| carbonizarse | Personaje |
| byte | Byte |
| corto | Pequeño |
| En t | Entero |
| largo | Largo |
| doble | Doble |
Para convertir las primitivas en objetos y los objetos en primitivas, tenemos técnicas llamadas 'autoboxing' y 'boxing' respectivamente. Ase Java es un lenguaje de programación orientado a objetos, siempre tratamos con objetos y también tenemos muchas características como Colecciones, Publicación por entregas , etc. que también necesitan objetos y tipos primitivos.
Por lo tanto, es imperativo que siempre necesitemos objetos y tipos primitivos en Java y, por lo tanto, requerimos estas técnicas de autoboxing y unboxing.
Autoboxing
Autoboxing es una técnica para convertir automáticamente un tipo de datos primitivo en un objeto de su correspondiente clase contenedora. Por ejemplo , conversión de int a clase Integer, char a clase Character, etc. son instancias de autoboxing.
Nota: Las clases contenedoras utilizan el método valueOf () para convertir la primitiva en objetos que se deprecian desde Java 5.
Desembalaje
La conversión inversa de los objetos de la clase contenedora en sus correspondientes tipos de datos primitivos se denomina 'unboxing'.
Nota: Desde Java 5, se deprecia el método intValue () que convierte el objeto contenedor en un tipo primitivo.
A continuación se muestra un ejemplo de boxeo / unboxing.
|_+_|Producción

El programa anterior muestra autoboxing y unboxing en valor int. Primero, convertimos int en un objeto Integer y luego un objeto Integer se convierte al tipo de datos int.
Implementemos un programa que demuestre las clases contenedoras presentes en Java.
|_+_|Producción

La salida del programa anterior muestra la conversión de tipos primitivos a objetos de envoltura (Autoboxing) e invierte la conversión de objetos de envoltura a tipos primitivos (unboxing).
Preguntas frecuentes
P # 1) ¿Qué es el tipo de datos de clase en Java?
Responder: Java proporciona una clase denominada 'Clase' que contiene información sobre todas las clases, objetos e interfaces de la aplicación en ejecución. La clase Class también representa tipos de datos primitivos y el tipo vacío.
¿Qué es la clave de seguridad para la red inalámbrica?
La clase Class es parte del paquete java.lang.
P # 2) ¿Qué es la clase normal en Java?
Responder: Una clase normal en Java es una clase no estática. Podemos crear objetos de una clase normal usando la nueva palabra clave. Además, cualquier clase normal puede tener otra clase como miembro. En este caso, la clase miembro se llama clase anidada o interna y la clase adjunta se llama clase externa.
P # 3) ¿Es String una clase contenedora en Java?
Responder: No, String no es una clase contenedora en Java. Para que una clase sea una clase contenedora, necesitamos su tipo primitivo correspondiente. Por ejemplo, para la clase contenedora Integer tenemos el tipo primitivo int. Para la clase String, no tenemos un tipo de datos primitivo correspondiente.
P # 4) ¿Cuál es el beneficio de Wrapper Class?
Responder: Las clases de envoltura se utilizan para la conversión de tipos de datos primitivos en objetos. En otras palabras, las clases contenedoras envuelven tipos primitivos en objetos. Las clases contenedoras se utilizan cuando ciertas características de Java, como Colecciones, solo esperan objetos y no tipos de datos primitivos.
P # 5) ¿Por qué se usa Singleton Class en Java?
Responder: Siempre que queremos un punto de acceso global para un objeto en particular, optamos por un patrón singleton que nos permite diseñar una clase singleton en la que solo habrá una instancia. Las clases singleton se utilizan en cachés, agrupación de subprocesos, aplicaciones de bases de datos, registro, etc.
Conclusión
En este tutorial, hemos cubierto los distintos tipos de clases que se utilizan en Java. Vimos los tipos de clase concreto, abstracto, final, estático, anidado, POJO, etc. Aparte de esto, también discutimos las clases Singleton, las clases inmutables y también discutimos sus ejemplos de implementación.
También cubrimos las clases contenedoras y las clases de objetos en Java. Las clases contenedoras son las clases que envuelven los tipos de datos primitivos de Java en objetos. La clase de objeto en Java es la superclase de todas las demás clases. Es la clase más alta en la jerarquía de Java.
Ahora que hemos discutido las clases y objetos en Java y los tipos de clases, en el próximo tutorial procederemos con una discusión detallada sobre constructores en Java.
=> Consulte la guía de formación de Java perfecta aquí.
Lectura recomendada
- Tutorial de interfaz Java y clase abstracta con ejemplos
- Conceptos básicos de Java: sintaxis de Java, clase de Java y conceptos básicos de Java
- ¿Qué es la palabra clave estática en Java?
- Clase Java Integer y Java BigInteger con ejemplos
- Tutorial de la clase Java Scanner con ejemplos
- Objeto Java Class Vs: cómo utilizar la clase y el objeto en Java
- Tutorial de clase de matriz de Java - clase java.util.Arrays con ejemplos
- ¿Qué es Java Vector | Tutorial de clase de vector de Java con ejemplos