Clase interna y clase anidada estática en Java
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
}
-
AccessSpecifer
puede serpublic
,private
, oprotected
según la accesibilidad del código. -
La palabra clave
class
es obligatoria para definir una clase; de lo contrario, no puede crear una clase. -
ClassName
tambié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 body
son 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.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn