HOWTO · Java
Clase interna y clase anidada estática en Java
En la programación de computadoras, una clase es un modelo que nos permite crear objetos de clase individuales para acceder a datos de miembros de datos o funciones de miembros. En programación Java, una clase se define con la palabra clave class. También podemos decir que una clase es un tipo de datos definido por el usuario con modificaciones personalizadas.
En esta página
Java es un lenguaje de programación puro orientado a objetos. No puede crear programas sin una clase.
Clase en Java
Una clase es un modelo o prototipo que representa un conjunto de métodos y propiedades a los que puede acceder el objeto de la clase. Entendámoslo a través de un ejemplo de la vida real.
Student es una clase que tiene algunas propiedades y métodos como student name, student roll no, cal_gpa(), cal_fee(). Estas son algunas propiedades comunes para todos los estudiantes de un colegio o universidad.
Es fácil para nosotros crear una clase, definir todas las propiedades requeridas y acceder a ellas con el objeto de la clase para cada estudiante.
Ejemplo de código:
package articlecodesinjava;
class Student {
String name;
int rollNumber;
void cal_gpa() {
System.out.println("The method calculates CGPA.");
}
void cal_fee() {
System.out.println("The method calculates the Semester fee.");
}
}
public class ArticleCodesInJava {
public static void main(String[] args) {
// creating objects of Student class
Student Jinku = new Student();
Student Zeeshan = new Student();
System.out.println("This is Jinku's details.");
System.out.println(Jinku.name = "Jinku");
System.out.println(Jinku.rollNumber = 1);
Jinku.cal_fee();
Jinku.cal_gpa();
System.out.println("\n\nThis is Zeeshan's details.");
System.out.println(Zeeshan.name = "Zeeshan Afridi");
System.out.println(Zeeshan.rollNumber = 2);
Jinku.cal_fee();
Jinku.cal_gpa();
}
}
Producción :
This is Jinku's details.
Jinku
1
The method calculates the Semester fee.
The method calculates CGPA.
This is Zeeshan's details.
Zeeshan Afridi
2
The method calculates the Semester fee.
The method calculates CGPA.
Hemos definido el modelo de los estudiantes como una clase con información básica sobre ellos, como nombre, número de registro, CGPA y tarifa. Ahora podemos llamar a estas propiedades y métodos para cada estudiante en lugar de definirlos todos para cada estudiante.
Como puede ver, hemos creado dos objetos, Jinku y Zeeshan, y hemos llamado las propiedades y métodos de la clase Student para estos objetos.
Estructura de una clase en Java
Java es un lenguaje de programación fuertemente orientado a objetos; incluso una sola línea de código requiere una clase y el método main.
Sintaxis de una clase:
AccessSpecifer classKeyword ClassName{
//Class body
}
Ejemplo:
Public class Student {
// Class body
}
-
AccessSpeciferpuede serpublic,private, oprotectedsegún la accesibilidad del código. -
La palabra clave
classes obligatoria para definir una clase; de lo contrario, no puede crear una clase. -
ClassNametambién es obligatorio para crear una clase. Las mejores prácticas y guías dicen que los nombres deben ser significativos, lo que hace que el código sea más fácil de entender y más legible. -
Class bodyson las fronteras o límites de la clase. Puede definir variables y métodos dentro del cuerpo de la clase.El cuerpo de la clase comienza con
{y termina con}.
Tipos de clases anidadas en Java
Una clase anidada se refiere a una clase dentro de otra clase. El fenómeno es similar a las condiciones y bucles anidados.
Java le permite crear clases anidadas. Le permite agrupar las clases que se utilizan en un solo lugar de forma lógica y también aumenta el uso de la encapsulación.
Sintaxis de una clase anidada:
class OuterClass { // OuterClass
Class InnerClass { // InnerClass }
}
En Java, hay dos tipos de clases anidadas. Estos son los siguientes:
- Clases estáticas anidadas
- Clases internas
Clases estáticas anidadas en Java
Una clase anidada estática se define como un miembro estático de su clase externa con la palabra clave static. Se puede acceder a una clase anidada estática sin instanciar la clase externa usando otros miembros estáticos.
Al igual que otros miembros estáticos, una clase estática no tiene acceso a los métodos y variables de instancia de su clase externa.
Ejemplo de código:
public class OuterClass {
static class NestedStaticClass { // Outer class
public void my_method() { // Inner class
System.out.println("This is a static nested class.");
}
}
public static void main(String args[]) { // Main function
// object of nested class
NestedStaticClass ob = new NestedStaticClass();
ob.my_method();
}
}
Producción :
This is a static nested class.
Clases Internas en Java
La seguridad es siempre la principal prioridad de casi todos los programas u organizaciones. Java es bien conocido por su seguridad, y la clase interna es uno de los componentes que nos ayudan a lograr esos estándares de seguridad.
Para acceder a la clase interna, primero debe crear un objeto de la clase externa y luego, usando ese objeto, puede crear el objeto de la clase interna.
A diferencia de una clase regular o simple, una clase interna tiene la autoridad para acceder a las propiedades y métodos especificados protected y private. Además, puede declarar la clase interna como private si no desea que los objetos externos accedan a la clase interna.
Ejemplo de código:
public class OuterClass {
class NestedStaticClass { // Outer class
public void my_method() { // Inner class
System.out.println("This is a nested inner class.");
}
}
public static void main(String args[]) { // Main function
// object of nested class
OuterClass OuterObj = new OuterClass();
OuterClass.NestedStaticClass obj = OuterObj.new NestedStaticClass();
obj.my_method();
}
}
Producción :
This is a nested inner class.