Es una abstracción donde se
encuentran encapsulados los
estados potenciales en los que
se puede encontrar una entidad
de ese tipo y las operaciones
que pueden realizarse sobre
ella.
Clases y Objetos
Permiten encapsular
datos y operaciones
sobre los mismos. Cada
clase se corresponde
con un fichero, que
representa la
declaración e
implementación de un
TAD.
En el archivo que
contenga el TAD deben
encontrarse
representados los
atributos de la clase
(privados), el nombre y
forma de las
operaciones que se
exportan (su interfaz),
y su implementación.
Recursividad.
Propiedad que posee un método
por la cual puede llamarse a sí
mismo. La recursividad puede ser
utilizada como alternativa a la
iteración.
Métodos recursivos
Un método recursivo es un
método que se invoca a sí
mismo de forma directa o
indirecta
Recursión directa El código del método f()
contiene una sentencia que invoca a f().
Recursión indirecta El método f() invoca a un
método g() que a su vez invoca al método p(),
y así sucesivamente hasta que se invoca de
nuevo al método f().
Manejo de memoria
estática
Se define la
cantidad
requerida
en tiempo
de
compilación.
Su tamaño
no puede
cambiar
durante la
ejecución
del
programa.
Manejo de memoria
dinámica
El tamaño de espacio
necesario se define en
tiempo de ejecución. El
tamaño de los
elementos puede
cambiar durante la
ejecución del
programa. Almacena
todos los objetos
(definidos por new).
Modularidad
Propiedad que permite subdividir una aplicación en partes más pequeñas (módulos).
Características:
Cada módulo
debe ser lo más
independiente
posible. Cada
módulo se puede
compilar por
separado. Los
módulos se
puedes conectar
con otros
módulos.
Ventajas de la modularidad
Fácil de mantener y
modificar. Fácil de escribir y
depurar. Fácil de controlar.
Permite el uso repetitivo de
rutinas.