Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen de POO
Paradigmas :
Tipos:
aspectos.
estado del programa y sentencias que cambian dicho estado. Pascal, Fortran, C, etc.
de “Clases de objetos”, objetos que son entidades que cambian estados(es decir datos),
comportamientos e identidad. Conjunto de objetos, que colaboran entre ellos para realizar
Lógica: Conjunto de hechos y conjuntos de reglas que permite la dirección de otros hechos,
mutación.
lOMoARcPSD|8831459
comportamientos, esto es, las variables y métodos. Es tener todo esto es una sola entidad.
tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero
no los detalles internos, y esto es conveniente porque nos interesará será conocer qué
La herencia
jerarquía de clases.
objetos basados en clases, por medio del cual una clase se deriva de otra de manera que
Ventajas de la herencia
1. Ayuda al modelado porque proporciona una descripción concisa y precisa del
mundo.
Polimorfismo
Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de
objetos.
métodos en diferentes clases. Cuando el diseñador envía una señal a un objeto, el método
nombre, al incluir cualesquiera atributos heredados de clases padres, pero debe tener
dos o más implementaciones diferentes del operador, dependiendo del tipo de objetos a
Ingeniera de software:
Trata sobre la construcción de sistemas de software tan grandes o complejos, que son
escribe un componente de software que será combinado con componentes escritos por otros
particular y detallada del sistema que satisfaga todos los requisitos del sistema.
• Testeo del sistema : Comprobación del funcionamiento de la aplicación. Prueba alfa y prueba
beta.
Calidad de software:
Características operativas:
sistema operativo.
Modularizacion:
Cuando un programa comienza a ser largo y complejo, no es apropiado tener un único texto
con sentencias una tras otra. La razón es que no se comprende bien qué hace el programa
Los lenguajes de alto nivel disponen de una herramienta que permiten estructurar el
programa principal como conjunto de subprogramas que resuelven problema parcial del
problema principal.
dado.
Uso en Java:
En Java cada identificador tiene un campo de acción, solo dentro de éste campo es posible
utilizarlo. Los ejemplos más claros son las variables, que pueden ser globales o locales. La
diferencia estriba en que una variable global puede ser utilizada por cualquier parte del
programa, incluyendo a todos los procedimientos, en cambio una variable local puede ser
utilizada únicamente por el procedimiento en el que está declarada, el programa principal y los
Parámetros :
lOMoARcPSD|8831459
Para poder pasar información entre el programa principal y procedimientos, o entre los
mismos procedimientos usamos los parámetros, que son los canales de comunicación de
datos.
complejos, conectados por una estructura simple, y que puede resolverse en forma
independiente.
• Composición modular : Elementos de software que pueden ser cambiados para crear nuevos
• Entendimiento modular : Facilita que quien lea un modulo pueda comprenderlo sin necesidad
• Continuidad modular : Cuando se realizan cambios en un solo modulo, no tendrá efecto en los
• Protección modular : En tiempo de ejecución solo afecta al modulo donde se produce, o solo se
software debe ser compatible con los elementos generados en el proceso de modelamiento del
• Pocas interfaces : Todo módulo debe comunicarse con el menor número posible de otros
módulos.
de información posible.
• Interfaces Explícitas : La forma de comunicación entre dos módulos debe ser obvia a partir de
sus códigos.
Abstracción:
Los procedimientos y funciones fueron uno de los primeros mecanismos de abstracción que
sobre estos valores. Por ejemplo, Pascal soporta tipos base como enteros, reales, caracteres
y tipo compuestos como array y registros. Pascal soporta tipos base como enteros, reales,
Abstracción de datos:
Ventajas:
• Mejor conceptualización.
• Mejora rendimiento.
• Especificación.
• Extensibilidad.
Polioliticos:
Monolíticos:
Objetos y clases:
combinación de variable locales y procedimientos llamadas métodos que juntos conforman una
entidad de programación.
Estado: Se encuentra representado por campos de datos, con sus respectivos valores.
un objeto significan que usted solicita que el objeto realice una tarea. Identidad:
Clases:
Personas
Facultad:
Alumno
Cursa
Se dicta
Aulas
en
Clases y TDA:
lOMoARcPSD|8831459
Características generales:
relevantes. Las clases son el elemento clave de la programación orientada a objetos. Una clase
puede definirse como una descripción abstracta de un grupo de objetos, teniendo cada uno de
otros objetos. Separa la parte pública de lo privado. Es el mecanismo que une el código y los
datos que éste manipula, manteniéndolos seguros de las interferencias del exterior.
Herencia: Es una relación entre clases en la cual una clase comparte la estructura y
comportamiento definido en otra clase. Tiene como uno de sus objetivos la reusabilidad del
código.
Herencia simple: Puede heredar datos y métodos únicamente de una sola clase.
Herencia múltiple: Una subclase puede heredar datos y métodos de más de una clase.
Polimorfismo: Indica la posibilidad de que una entidad tome diferente formas. Se refiere al
hecho de que una misma operación puede tener diferente comportamiento en diferentes
programa y efectuar la misma operación de diferentes formas, en función del objeto que es
En java es utilizada por los métodos de clase y métodos de instancia que son privados o
final.
Sobrescritura:
Sobrecarga:
Varios métodos se llaman igual, pero difieren en el número, tipo u orden de sus argumentos.
Unidad modular lingüística: Los módulos deben corresponderse con unidades sintácticas en
el lenguaje utilizado.
Auto-documentación: Toda la documentación interna sobre el modulo debería ser parte del
propio modulo.
lOMoARcPSD|8831459
Acceso uniforme: El servicio ofrecido por un modulo debería estar disponible a través de una
través de un computo.
Abierto: Si está disponible para ser extendido, debería ser posible expandir un conjunto de
Cerrado: Si está disponible para ser utilizado. Esto asume que el modulo ha dado una
UML:
Permite modelar, construir y documentar los elementos que forman un sistema de software.
sistema operativo.
Es un paradigma que define los programas en términos de “Clases de objetos”, objetos que
4. Objeto : Representa un elemento individual, real o abstracto. Como por ejemplo una persona.
en común.
1. Características operativa:
Sistema operativo.
2. Modularizacion : Los lenguajes de alto nivel disponen de una herramienta que permite
complejos, conectados por una estructura simple, y que pueden resolverse en forma
independiente.
Composición modular: Elementos de software que pueden ser cambiados para crear nuevos
Entendimiento modular: Facilita que quien lea un modulo pueda comprenderlo sin necesidad
Protección modular: En tiempo de ejecución solo afecta al modulo donde se produce, o solo
3. TDA : Está constituido por la estructura de datos y las operaciones. Se compone de estructura
robustez.
4. Abstracción: Una clase es una abstracción en la que se enfatiza las características relevantes.
Herencia: Es una relación entre clases en la cual una clase comparte la estructura y
Métodos:
realiza. Los conjuntos de los métodos de un objeto determinan el comportamiento del objeto.
Constructores:
Un constructor es un método que se llama automáticamente cada vez que sea crea un
objeto de una clase. La principal misión del constructor es inicializar las variables miembro de
la clase.
Si no se prepara ningún constructor para una clase, el compilador crea un constructor por
defecto, inicializando las variables de los tipos primitivos a su valor por defecto, y los String y
This.metodo (parámetros). Permite llamar a un método del objeto actual con los
parámetros indicados.
This (parámetros). Se usa por ejemplo para pasarlo como parámetro a un método cuando
Recolección de basura:
Java posee un recolector de basura encargado de reclamar la memoria que los objetos ya
no utilizan.
Método finalize:
finalizador es un método de objeto (no static), sin valor de retorno (void), sin argumentos y que
Recursividad:
lOMoARcPSD|8831459
menor complejidad.
Recursividad indirecta: Puede llamar a otro método, que a su vez puede hacer una llamada
al primero.
Variables miembros:
Miembros de objetos: Cada objeto tiene su propia copia de las variables miembro.
Miembros de clases: Una clase puede tener variables de la clase y no de cada objeto, a
Variables finales (final): Una variable declarada como final no puede cambiar su contenido a
Argumentos finales:
Significa que dentro del método no podremos cambiar el manejador de argumento al que se
Son métodos que no actúan sobre objetos concretos a través del operador punto. Estos
métodos no tienen sentido como métodos de objeto. Ejemplo: java.lang.Math (sin(), cos(),
Clases anidadas:
Una clase anidada está limitada por el alcance de su clase externa. Si una clase B es
definida dentro de una clase A, entonces la clase B es conocida para A, pero no fuera de A.
Es una clase anidada no estática. Accede a todas las variables y métodos de su clase
envolvente y puede referirse a ellos de manera directa de la misma manera que otros
Unidad 5.
Herencia:
Cada vez que encontremos la relación “es-un” entre dos clases, estamos ante la presencia
de herencia.
El constructor de una clase derivada puede llamar al constructor de su superclase por medio
Otro uso:
Herencia y polimorfismo:
Sobrescritura de métodos:
Una clase puede redefinir cualquiera de los métodos heredados de su superclase que no sean
final. El nuevo método sustituye al heredado para todos los efectos en la clase que lo ha
redefinido. Los métodos de la superclase que han sido redefinidos pueden ser todavía
accedidos por medio de la palabra súper desde los métodos de la clase derivada, aunque con
este sistema sólo se puede subir un nivel en la jerarquía de clases. Los métodos de clase o
Un método declarado como final en una clase, no puede ser sobrescrito en una clase
derivada.
Control de acceso:
Prívate: Un miembro privado es accesible solo para la clase en la que está definido. Esto
incluye las variables, o los métodos que llamados desde el exterior pueden poner en peligro el
Protected: Permite a la propia clase, las subclases, y todas las clases dentro del mismo
paquete que accedan a los miembros. Se utiliza para una subclase de la clase tener acceso a
Public: Todas las clases, en todos los paquetes tienen acceso a los miembros públicos de
miembros. Este nivel de acceso permite que las clases del mismo paquete que la clase tengan
acceso a los miembros. Este nivel de acceso asume que las clases del mismo paquete son
amigas de confianza. Este nivel de confianza es como la que extiende a sus mejores amigos y
Un método puede ser sobrescrito por un método con un acceso diferente siguiendo algunas
reglas:
lOMoARcPSD|8831459
-Un método privado: puede ser sobrescrito por un método privado, por defecto, protegido o
público.
-Un método por defecto: puede ser sobrescrito por un método por defecto, protegido o
público.
-Un método protegido: puede ser sobrescrito por un método protegido o público. -
Clases Abstractas:
Es una clase de la que no se pueden crear objetos, Su utilidad es permitir que otras clases
deriven de ella, proporcionándoles un marco o modelo que deben seguir y algunos métodos de
utilidad general.
Una clase abstract puede tener métodos declarados como abstract, en cuyo caso no se da
definición del método. Si una clase tiene algún método abstract es obligatorio que la clase sea
abstract. Como los métodos static no pueden ser redefinidos, un método abstract no puede ser
static.
Unidad 6.
Paquetes:
Un paquete de clases es un contenedor de clases, que se usa para agrupar clases que
Se coloca al comiendo del archivo, con lo que indicamos que esta unidad de compilación es
Jerarquía de paquetes:
puntos. Al importar un paquete no se importan los subpaquetes. Estos deben ser importados
Colecciones:
Framework:
Termino utilizado en POO para definir un conjunto de clases que define un diseño abstracto
Ejemplo de framework:
Framework de colecciones:
detalles de representación
Tipos:
• Acceso por posición: Lista, conjuntos, etc. Acceso por clave: Diccionario.
Jerarquía de colecciones:
Colección: Secuencia de elementos individuales a los que se aplica una o más reglas.
Maps: Grupo de parejas de objetos clave-valor, que permiten efectuar búsqueda de valores.
Hashing:
diccionario: insert, search, delete. Una opción sería usar un arreglo tan grande como el rango
opción es usar un arreglo menor, al cual podemos mapear las claves en uso. Esta función de
El hashing utiliza una función para generar un código hash pseudo aleatorio a partir de la
clase del objeto y luego utiliza este código para indexar en la tabla hash.
TreeSet:
• Usa un árbol.
• Introduce un orden en los elementos, útil para reconocer el conjunto. Los métodos
Utiliza un tipo de dato llamado árbol rojo-negro, que tiene la ventaja que si se desbalancea
Genéricos:
componentes que resultan fáciles de utilizar con múltiples tipos. Genérico significa
Java no posee el alcance general esperado como intención original de los genéricos en los
posible a la hora de escribir clases y métodos, relegando las restricciones que afectan a los
Excepciones:
Es una condición anormal que surge en una secuencia de código en el tiempo de ejecución.
Tipos:
• Error : Excepciones que indican problemas muy graves, que suelen ser no recuperables y no
• Exception : Excepciones no definitivas, pero que se detectan fuera del tiempo de ejecución.
• Runtime Exception : Errores del programador como división por cero o el acceso fuera de los
límites de su array.
Try {
Sentencia finally:
Define un bloque de código que queremos que siempre ejecute, ocurra o no una excepción.
Try {
Finally {
Excepciones predefinidas:
división por 0.
definido.
Ventajas:
Puede ser visto como la aplicación a la construcción de software de los contratos que siguen
los asuntos de las personas. Cuando dos personas establecen un contrato se desprende de
ocultas.
• Precondición : Expresa las restricciones bajo las que una rutina funcionara correctamente.
• Postcondicion : Expresa las propiedades del estado resultante de la ejecución de una rutina.
• Invariante : Expresan las propiedades globales de las instancias de una clase, que deben ser
Hilos:
un objeto de tipo THREAD pasándole por parámetro al constructor el objeto creado de la nueva
clase.