1.2 Tipos de datos abstractos
Un Tipo de Dato Abstracto (TDA) se refiere a un modelo de datos con un conjunto de operaciones definidas en esos datos. Los TDAs proporcionan una forma de encapsular una estructura de datos y las operaciones asociadas con ella, lo que permite ocultar los detalles internos de implementación y permitir un manejo más limpio y modular de los datos en un programa.
En Java, los TDAs se implementan utilizando clases, dicha clase define la estructura de datos y proporciona métodos para realizar operaciones en esos datos. Por ejemplo, una implementación de un TDA, es la definición de un objeto creado a partir de una clase que fue definida por el programador, y por esa razón a los TDAs también se les conoce como tipos de datos definidos por el programador.
En java los tipos de datos se calsifican en 3: primitivos, wrapper(envoltorios), y TDAs, representados en el siguiente diagrama:
Ejemplos de declaración de variables u objetos(de acuerdo a su tipo de dato):
1) Declaracion de una variable(tipo de dato primitivo):
public class App {
public static void main(String[] args){
int x = 5; // tipo primitivo
}
}
2) Declaración de un objeto(tipo de dato wrapper):
public class App {
public static void main(String[] args){
String zoro = "Roronoa"; // tipo wrapper
String boa = new String("Boa Hancock"); // tipo wrapper
}
}
3) Declaración de un TDA:
a) Para la declaración de un TDA primeramente debemos definir una clase (que cumplirá el papel de "tipo de dato" al declarar un objeto a partir de esta clase), por ejemplo:
public class Personaje {
String nombre;
String ocupacion;
public Personaje(String nombre, String ocupacion){
this.nombre = nombre;
this.ocupacion = ocupacion;
}
public void cambiarNombre(String nombre){
this.nombre = nombre;
}
}
b) Declaración un objeto a partir de una clase definida por el programador(TDA): El Tipo de Dato Abstracto al ser definido por el programador, adquiére cuantas carcaterísticas sean necesarias al igual que métodos.
public class App {
public static void main(String[] args){
Personaje hancock = new Personaje("Hancock", "Pirata"); // TDA
hancock.cambiarNombre("Boa Hancock");
}
}