Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructuras y Algoritmos de Datoscon POO en Java
Estructuras y Algoritmos de Datoscon POO en Java
Los acercamientos tradicionales al diseo del software han sido datos orientados o de
proceso orientados. las metodologas Dato-orientadas acentan la representacin de la
informacin y de las relaciones entre las partes del conjunto. Las acciones que funcionan
encendido los datos estn de menos significacin. Por otra parte, las metodologas de diseo
proceso-orientadas acentan las acciones realizadas por un artefacto del software; los datos son
de poca importancia.
Ahora se sostiene comnmente que las metodologas orientadas al objeto son ms eficaces
para manejar la complejidad que que se presenta en el diseo de los artefactos grandes y
complejos del software que las metodologas dato-orientadas o proceso-orientadas. Esto es porque
los datos y los procesos se dan importancia igual. Los objetos se utilizan para combinar datos con
los procedimientos que funcionan encendido esos datos. La ventaja principal de usar objetos es
que proporcionan la abstraccin y la encapsulacin.
Abstraccin
Encapsulacin
Abstraccin.
La abstraccin se puede pensar como un mecanismo para suprimir los detalles inaplicables
mientras que en el mismo tiempo que acenta los relevantes. Una ventaja importante de la
abstraccin es que hace ms fcil para que el programador piense del problema que se
solucionar.
Por ejemplo, la abstraccin procesal deja a diseador del software pensar de las acciones
que se realizarn sin la preocupacin de cmo se ponen en ejecucin esas acciones.
Semejantemente, la abstraccin de los datos deja a diseador del software, pensar de los objetos
en un programa y las interacciones entre esos objetos sin tener que preocuparse de cmo se
ponen en ejecucin esos objetos.
Hay tambin muchos diversos niveles de la abstraccin. Ms bajos son los niveles de la
abstraccin exponen a ms de los detalles de una puesta en prctica mientras que los niveles ms
altos ocultan a ms de los detalles.
Encapsulacin
La encapsulacin ayuda al diseador del software haciendo cumplir ocultar la informacin.
Los objetos encapsulan datos y los procedimientos para manipular esos datos. En un sentido, el
objeto oculta los detalles de la puesta en prctica del usuario de ese objeto.
Hay dos ventajas muy verdaderas de la independencia conceptual y fsica de la
encapsulacin. La independencia conceptual resulta de ocultar la puesta en prctica de un objeto
del usuario de ese objeto. Por lo tanto, previenen al usuario de hacer cualquier cosa con un objeto
que dependa de la puesta en prctica de ese objeto. Esto es deseable porque permite que la
puesta en prctica sea cambiada sin requerir la modificacin del cdigo del usuario.
La independencia fsica se presenta del hecho de que el comportamiento de un objeto es
determinado por el objeto s mismo. El comportamiento de un objeto no es determinado por
alguna entidad externa. Consecuentemente, cuando realizamos una operacin en un objeto, no
hay efectos secundarios indeseados.
Containers , Envases
Enumerations, Enumeraciones
Visitors , Visitantes
Cursors, Cursores
Adapters, Adaptadores
Esqueletos, Singletons.
Envases
Un envase es un objeto que lleva a cabo dentro de l otros objetos. Un envase tiene una
capacidad, puede estar lleno o vacio, y los objetos se pueden insertar y retirar de un envase.
Adems, un envase investigable (searchable container ) es un envase que apoya operaciones de
bsqueda eficientes.
Enumeraciones
Una enumeracin proporciona los medios por los cuales los objetos dentro de un envase se
pueden alcanzar uno-en-uno-tiempo. Todas las enumeraciones comparten un interfaz comn, y
ocultan la puesta en prctica subyacente del envase del usuario de ese envase
Visitantes
Un visitante representa una operacin que se realizar en todos los objetos dentro de un
envase. Todos los visitantes comparten un interfaz comn, y de tal modo ocultan la operacin que
se realizar del envase. En el mismo tiempo, definen a los visitantes por separado de los envases.
As, un visitante particular puede ser utilizado con cualquier envase.
Cursores.
Un cursor representa la posicin de un objeto en un envase pedido. Provee del usuario una
manera de especificar donde est ser realizada una operacin sin tener que saber se representa
esa posicin.
Adaptadores.
Un adaptador convierte el interfaz de una clase en el interfaz esperado por el usuario de
esa clase. Esto permite que una clase dada con un interfaz incompatible sea utilizada en una
situacin donde un diverso interfaz espera.
Esqueletos. Singletons
Un esqueleto es una clase de la cual hay solamente un caso. La clase se asegura de que all
solamente un caso est creado y proporciona una manera de tener acceso a ese caso.
Variables
Tipos primitivos y tipos de la referencia
Pasando Parametros
Clases y objetos
Herencia
Interfaces y polimorfismo
Otras Caractersticas
Variables.
Usted debe ser muy cmodo con la nocin de una variable como abstraccin para una
regin de una memoria. Una variable tiene cualidades tales como nombre, tipo, valor, tamao de
la direccin, curso de la vida, y alcance.
Pasando Parametros.
All mecanismos el un pasar de parmetro en Java: pasar-por-valor. Es esencial que usted
entiende cmo el pasar-por-valor trabaja para los tipos primitivos y para los tipos de la referencia.
Clases y objetos.
Una clase de Java encapsula un sistema de valores y un sistema de operaciones. Los
valores son representados por los campos de la clase y las operaciones por los mtodos de la
clase. En Java una definicin de la clase introduce un nuevo tipo. Los casos de un tipo de la clase
se llaman los objetos
Herencia.
En Java una clase se puede derivar de otra. La clase derivada hereda todos los campos y
los mtodos de la clase o de las clases baja. Adems, los mtodos heredados se pueden eliminar
en la clase derivada y los nuevos campos y funciones pueden ser definidos. Usted debe entender
cmo el recopilador determina el cdigo para ejecutarse cuando se llama un mtodo particular.
Interfaces y polimorfismo.
Una interfaz de Java abarca un sistema de prototipos del mtodo. Diversas clases pueden
poner la misma interfaz en ejecucin. De esta manera, polimorfismo de las instalaciones de Java la
idea que una abstraccin dada puede tener muchas diversas formas. Usted debe entender cmo
los interfaces se utilizan junto con clases abstractas y herencia para apoyar polimorfismo.
Otras Caractersticas.
Este libro hace uso otras caractersticas de Java tales como excepciones y tipo run-time
informacin. Usted puede aprender sobre estos asuntos mientras que usted trabaja su manera a
travs del libro.
Estructuras De Datos.
El captulo cubre apilados, coletas, y deques. Las listas pedidas y las listas clasificadas se
presentan en captulo. El concepto del hashing se introduce en captulo. Este captulo tambin
cubre el diseo de las funciones del picadillo para un nmero de diversos tipos del objeto.
Finalmente, se presentan las tablas del picadillo y las tablas de la dispersin.
Los rboles y los rboles de la bsqueda se presentan en captulos y. Los rboles son una
de las estructuras de datos no lineares ms importantes. El captulo tambin cubre los varios
traversals del rbol, incluyendo profundidad-primer traversal traversal y breadth-first. El captulo
presenta coletas de la prioridad y el captulo cubre sistemas, multijuego, y particiones.
Un elemento esencial del sistema run-time de Java es la piscina del almacenaje
dinmicamente asignado. El captulo presenta un nmero de diversos acercamientos para poner la
coleccin de la basura en ejecucio'n, en el proceso que ilustra los costes reales asociados a la
asignacin de almacenaje dinmica.
Algoritmos.
Los tres captulos pasados del libro se centran en algoritmos, ms bien que estructuras de
datos. El captulo es una descripcin de varios patrones algortmicos. Introduciendo la nocin de
un solver abstracto del problema, demostramos cuntos de los patrones son relacionados. El
captulo utiliza un acercamiento similar para presentar varios algoritmos que clasifican. Es decir,
introducimos la nocin de un compaginador abstracto y demostramos cmo los varios algoritmos
que clasifican son relacionados.
Finalmente, el captulo da a breve descripcin del tema de grficos algoritmos de un
grfico. Este captulo trae juntas varias tcnicas algortmicas del captulo con la jerarqua de la
clase discutida en los captulos anteriores.
En este texto, nos referimos sobre todo al tiempo en marcha. Tambin consideramos la
memoria necesitada para ejecutar el programa. Hay muchos factores que afectan el tiempo en
marcha de un programa. Entre stos estn el algoritmo s mismo, los datos de entrada, y el
sistema informtico usado para funcionar el programa. El funcionamiento de una computadora se
determina cerca
el hardware:
procesador usado (tipo y velocidad),
memoria disponible (cache y RAM), y
disco disponible;
el lenguaje de programacin en el cual se especifica el algoritmo;
el lenguaje compilador/interprete utilizado;
y el software de sistema operativo de la computadora.
Un anlisis detallado del funcionamiento de un programa que tome todos estos factores en
cuenta es una empresa muy difcil y desperdiciadora de tiempo. Adems, tal anlisis no es
probable tener significacin duradera. El paso rpido del cambio en las tecnologas subyacentes
significa que los resultados de tales anlisis no son probables ser aplicables a la generacin
siguiente del hardware y del software.
Para superar este defecto, ideamos un modelo del comportamiento de una computadora
con las metas de simplificar el anlisis mientras que todava producen resultados significativos. La
seccin siguiente introduce la primera en una serie de tales modelos.