4. Instancia de una clase. Entidad provista de un
conjunto de propiedades o atributos (datos) y de
comportamiento o funcionalidad (métodos), los mismos que
consecuentemente reaccionan a eventos. Se corresponden
con los objetos reales del mundo que nos rodea, o con
objetos internos del sistema (del programa). Es una instancia
a una clase.
EJEMPLO:
Tomemos el objeto Automóvil.
Un automóvil es un objeto
bastante pesado que tiene un
conjunto
de
propiedades
como su identificación (placa),
color,
marca,
modelo,
accesorios, etc.
5. CLASE:
Es una colección o conjunto de objetos que comparten
características entre si, tanto una clase como un objeto
(derivado de la misma) contienen tres aspectos fundamentales
que nos permiten clasificarlos: Atributos: son las características
especificas. Métodos: acciones que realiza, conductas.
Eventos: Reacción o la capacidad de relacionarse con otros
objetos
6. Abstracción:
Denota las características esenciales de un objeto, donde se
capturan sus comportamientos. Cada objeto en el sistema sirve como
modelo de un "agente" abstracto que puede realizar trabajo, informar y
cambiar su estado, y "comunicarse" con otros objetos en el sistema sin
revelar cómo se implementan estas características. Los procesos, las
funciones o los métodos pueden también ser abstraídos, y, cuando lo
están, una variedad de técnicas son requeridas para ampliar una
abstracción. El proceso de
abstracción permite
seleccionar las
características
relevantes dentro
de un conjunto e identificar
Comportamientos
comunes para definir
nuevos tipos de entidades
en el mundo real.
7. Cohesión:
Cuando hablamos de cohesión en POO, hablamos de que
tanto se enfoca o se compromete una parte llamémoslo
modulo (componente o clase),la cohesión seria la medida; en
que se compromete un modulo con respecto a una sola tarea
o aun solo proceso, entre mayor cohesión tenga un modulo en
su operación, mejor será operando, mas fácil será de
programar y de reparar.
Ejemplo:
En la oración; *Antonio maneja rápido para llegar
en menos tiempo.
Clase; Antonio
Atributos; Atento, concentrado, bueno
conduciendo.
Métodos; Encender carro, Manejar, Apagar carro.
podríamos decir que Antonio tiene cohesión, ya
que se dedica únicamente a manejar, el maneja
rápidamente parra llegar mas rápido a su destino.
9. Herencia:
(Por ejemplo, herencia de la clase C a la clase D) es la facilidad
mediante la cual la clase D hereda en ella cada uno de los atributos
y operaciones de C, como si esos atributos y operaciones hubiesen
sido definidos por la misma D. Por lo tanto, puede usar los mismos
métodos y variables públicas declaradas en C. Los componentes
registrados como "privados" (private) también se heredan, pero
como no pertenecen a la clase, se mantienen escondidos al
programador y sólo pueden ser accedidos a través de otros
métodos públicos. Esto es así para mantener hegemónico el ideal
de POO.
10. Clases Abstractas:
Este Tipo de Clases nos permiten crear “método
generales”, que recrean un comportamiento común, pero sin
especificar cómo lo hacen. A nivel de
código tienen por
particularidad que algunos de sus métodos no tienen “cuerpo de
declaración”, ¿qué quiere decir esto? no tienen las llaves { } ni
código dentro de ellos y deben estar precedidos por la palabra
clave abstract. Si una clases contiene uno o más métodos
abstractos está clase debe ser abstracta.
Ejemplo
11. Interfaces:
Las interfaces definen un conjunto de métodos sin especificar su
implementación. Cuando una clase implementa una interfaz
debe especificar todos los métodos contenidos en ella.
Para definir una clase que implementa una interfaz hay que usar
la palabra clave class*
Interfaz grafica
La construcción de una Interfaz es la
siguiente:
public Interfaz NombreInterfaz{
//Código
}
12. Polimorfismo:
Es la capacidad que tiene los objetos de una clase de responder al
mismo mensaje o evento en función de los parámetros utilizados
durante su invocación
Hay dos tipos:
Dinámico
Es el que el código no incluye ningún tipo de especificación sobre el
tipo de datos
Estático
Es el que los tipos a los que se aplica el polimorfismo deben ser
explicitados y declarados uno por uno antes de ser utilizados.
La forma de utilizarlo, por ejemplo en java, sería:
Superclase sup = new (Subclase);
13. Acoplamiento:
El acoplamiento débil (Loose coupling) se refiere a reducir al
mínimo la dependencia de un objeto en otros objetos.
• En otras palabras, puede cambiar la implementación de una
clase sin afectar a otras clases.
• Estas propiedades hacen que el código extensible y fácil de
mantener.
Por ejemplo, considere dos clases, A y B. Si estas no se
utilizan entre si (ninguna de ellas crea una instancia de la
otra o invoca un método en el otra), no están acopladas.
14. Si A usa a B (por ejemplo, crea una instancia de B), pero B
no usa A, entonces son débilmente acoplados (loosely
coupled).
Si ambas A y B se utilizan entre si, entonces están
estrechamente acopladas (tightly coupled).
15. Asociación:
La asociación se podría definir como el momento en que
dos objetos se unen para trabajar juntos y así, alcanzar
una meta.
Un punto a tomar muy en cuenta es que ambos objetos
son independientes entre sí, veremos un poco más
adelante qué implicación tiene esto. Para validar la
asociación, la frase “Usa un”, debe tener sentido:
El ingeniero usa una computadora
El cliente usa tarjeta de crédito.
16.
17. Composición:
En caso contrario, la composición es un tipo de
relación dependiente en dónde un objeto más complejo es
conformado por objetos más pequeños. En esta situación, la
frase “Tiene un”, debe tener sentido:
El auto tiene llantas
La portátil tiene un teclado.
Cómo implementar Asociación
18.
19. Las clases pueden contener datos y funciones. Estas
funciones se conocen como “funciones miembro”.
Cualquier función no estática declarada dentro de una
declaración de clase se considera una función miembro y
se llama usando operadores de la selección de miembro
(. y –>).
Al llamar a funciones miembro desde otras funciones
miembro de la misma clase, se puede omitir el objeto y el
operador de selección de miembro. Por ejemplo: