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:

Tipos de datos en Java

Figura 1.4 Clasificación de los tipos de datos en Java

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");
       
    }
}