3. OOSD: Desarrollo de Software
Orientado a Objetos (ObjectOriented
Software
Development) por sus siglas en
inglés,
esto significa que es
perteneciente a, o que denota
un
sistema,
lenguaje
de
programación, etc, que apoya
el uso de objetos, como una
imagen entera, una rutina, o
una estructura de datos.
4. MODELADO MENTAL: Es un
mecanismo humano, en el cual
se trata de explicar la forma en
que una persona percibe y al
mismo tiempo trata de explicar
como funciona el mundo que lo
rodea.
5. OBJETO: En programación un
objeto es una unidad dentro de
un programa de computadora
que consta de un estado y de
un comportamiento, que a su
vez constan respectivamente de
datos almacenados y de tareas
realizables durante el tiempo de
ejecución.
*El estado de un objeto se refiere al conjunto de los valores de sus atributos en un instante de tiempo
dado.
*El comportamiento determina las operaciones que este puede realizar o a las que puede responder
ante mensajes enviados por otros objetos.
6. ATRIBUTOS: Los atributos son las
características individuales que
diferencian un objeto de otro y
determinan
su
apariencia,
estado u otras cualidades. Los
atributos
se
guardan
en
variables
denominadas
de
instancia,
y
cada
objeto
particular puede tener valores
distintos para estas variables.
7.
8. Clase: En la programación
orientada a objetos, una clase
es una construcción que se
utiliza como un modelo (o
plantilla) para crear objetos de
ese tipo. El modelo describe el
estado
y
contiene
el
comportamiento que todos los
objetos creados a partir de esa
clase tendrán. Un objeto creado
a partir de una determinada
clase se denomina una instancia
de esa clase.
9. A continuación se muestra la sintaxis de una
clase:
Para crear una clase se utiliza la palabra
reservada class y a continuación el nombre de
la clase. La definición de la clase se pone entre
las llaves de apertura y cierre. El nombre de la
clase empieza por letra mayúscula.
class Rectangulo{
//miembros dato
//funciones miembro
}
10. MIEMBRO DATO:
Los valores de los atributos se
guardan en los miembros dato o
variables de instancia. Los
nombres de dichas variables
comienzan por letra minúscula.
class Rectangulo{
int x;
int y;
int ancho;
int alto;
//faltan las funciones miembro
}
11. FUNCIONES MIEMBRO:
En el lenguaje C++ las funciones
miembro se declaran, se definen y se
llaman. En el lenguaje Java las
funciones
miembro
o
métodos
solamente se definen y se llaman.
El nombre de las funciones miembro o
métodos comienza por letra minúscula y
deben
sugerir
acciones
(mover,
calcular, etc.). La definición de una
función tiene el siguiente formato:
tipo nombreFuncion(tipo parm1, tipo parm2, tipo
parm3){ //...sentencias }
12. ABSTRACCION: Consiste en aislar
un elemento de su contexto o
del resto de los elementos que lo
acompañan. En programación,
el término se refiere al énfasis en
el "¿qué hace?" más que en el
"¿cómo lo hace?.
13. A grandes rasgos, la ABSTRACCIÓN,
permite que dispongamos de las
características de un objeto que
necesitemos. En general, podemos
decir que Persona cuenta con todos
los atributos mencionados aquí, pero
por el proceso de abstracción
excluimos todos aquellos que no
tienen cabida en nuestro sistema. Se
define como un método por el cual
se rescatan los datos relevantes y se
ignoran los irrelevantes.
14. COHESION: La cohesión hace referencia a
la forma en que agrupamos unidades de
software (módulos, subrutinas...) en una
unidad mayor.
15. TIPOS DE COHESION:
Cohesión funcional: Los elementos de la
unidad de software están relacionados en
el desarrollo de una única función. Es decir,
las unidades de software trabajan juntas
con un mismo fin. En general, es el criterio
de agrupación más deseable.
función
Única
Elemento 1
Elemento 2
Elemento 3
16. Cohesión secuencial:
Una unidad de software realiza distintas tareas
en secuencia, de forma que las entradas de
cada tarea son las salidas de la tarea anterior.
Se agrupan las unidades que cumplen que los
resultados o salidas que produce una sirven
como entrada para que la próxima continúe
trabajando.
Tarea 2
Tarea 1
Tarea 3
Tarea 4
Tarea 4
Tarea 5
17. OCULTAMIENTO DE INFORMACION
(ENCAPSULACION):
En Programación modular, y más
específicamente en programación
orientada a objetos, se denomina
«encapsulamiento»
al
ocultamiento del estado, es decir,
de los datos miembro de un objeto
de manera que sólo se pueda
cambiar
mediante
las
operaciones definidas para ese
objeto.
18. Cada objeto está aislado del exterior. El
aislamiento protege a los datos
asociados de un objeto contra su
modificación por quien no tenga
derecho a acceder a ellos, eliminando
efectos secundarios e interacciones.
19. Formas de encapsulamiento:
Estándar
(Predeterminado)
Abierto: Hace que el miembro de la
clase pueda ser accedido desde el
exterior de la Clase y cualquier parte
del programa.
Protegido: Solo es accesible desde la
Clase y las clases que heredan (a
cualquier nivel).
Semicerrado: Solo es accesible desde
la clase heredada.
Ce: Solo es accesible desde la Clase.
20. HERENCIA
Es una propiedad que permite que los objetos sean
creados a partir de otros ya existentes, obteniendo
características (métodos y atributos) similares a los
ya existentes.
Es un mecanismo que nos permite crear clases
derivadas a partir de clase base, Nos permite
compartir automáticamente métodos y datos entre
clases subclases y objetos.
Podríamos decir que la herencia, es poder realizar
una clase con características propias, dentro de
una clase definida.
21. EJEMPLO
Podríamos decir como EJEMPLO la
siguiente característica.
Clase; Tablet.
Atributos; Ligera, 4 gb de RAM, delgada,
barata.
Clase2; Tablet 2.
Atributos; (Todas las de la primera). + 8 gb
de RAM,32 de disco duro, mas veloz.
23. 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.
25. IMPORTANTE
Las clases que hereden de la clase Abstracta
deben implementar todos los métodos abstractos.
(Se debe tener presente que las clases
abstractas sí pueden heredar de otras clases.).
La firma o parámetros de los métodos así como el
tipo de dato deben respetarse, de lo contrario se
está hablando de otro método totalmente
diferente.
Si una clase abstracta está compuesta sólo por
métodos abstractos y constantes entonces
podemos hablar de una interface.
26. INTERFACEZ
Una interfaz en JAVA se define como una
colección de métodos abstractos y propiedades.
En ellas se especifica qué se debe hacer pero no
su implementación. Serán las clases que
implementen estas interfaces las que describan la
lógica del comportamiento de los métodos.
En el lenguaje de programación de JAVA, una
interfaz es un conjunto de requisitos que deben
satisfacer las clases que se ajusten a esa interfaz,
además de que las interfaces no se pueden
instanciar haciendo así que sus métodos deban
ser re-escritos por la clase que lo implemente.
27. EJEMPLO
(como implementarlo)
1. Se declara que la clase
tiene intención de
implementar la interfaz dada.
2. Se proporcionan
definiciones para todos los
métodos de la interfaz
El aspecto que tiene una
interfaz Comparable es el
siguiente en JAVA
Ejemplo.
Public interface Comparable
{
Int compareTo(Object otro);
}
28. POLIMORFISMO
En
programación orientada a objetos se
denomina polimorfismo a la capacidad
que tienen los objetos de una clase de
responder al mismo mensaje o evento en
función de los parámetros utilizados
durante su invocación. Un objeto
polimórfico es una entidad que puede
contener valores de diferentes tipos
durante la ejecución del programa.
30. ACOPLAMIENTO
Comencemos por definir lo que es el
acoplamiento. El acoplamiento es el grado en el
cual una clase conoce a las además. Si solo la
clase A conoce a la clase B, es que B se ha
expuesto a, atreves de su interface, entonces la
clase A y la clase B, se las denomina ligeramente
acopladas... eso es algo bueno. Si, por otra
parte A se basa en partes de B que no es parte de
la interfaz de B, entonces el acoplamiento es mas
fuerte... y eso no es bueno. En otras palabras si A
conoce mas que lo que debería de B en la
manera
en
que
fue
implementado,
entonces A y B están fuertemente acoplados.
31. EJEMPLO
(como implementarlo)
class DoTaxes {
float rate;
float doColorado() {
SalesTaxRates str = new SalesTaxRates();
rate = str.salesRate; // ouch
// esto deberia haber sido llamado
// mediante un metodo:
// rate = str.getSalesRate("CO");
// hacer algo con rate
}
}
class SalesTaxRates {
public float salesRate; // deberia ser private
public float adjustedSalesRate; // deberia ser private
public float getSalesRate(String region) {
salesRate = new DoTaxes().doColorado(); // ouch otra vez!
// hacer calculos por aqui
return adjustedSalesRate;
}
}
32. ASOCIACION DE OBJETOS
La
asociación se podría definir como el
momento en que dos objetos se unen
para trabajar juntos y así, alcanzar una
meta.
Una asociación de objetos es; Una
relación que denota una conexión
semántica entre dos clases»
34. CONLUSION…
En
esta actividad aprendimos los
conceptos básicos de POO, atreves de
una serie de actividades que hicieron
que investigáramos y sacáramos un
propio concepto, con esto estamos en lo
básico para poder entrar en el entorno
de POO.