Conceptos y definiciones de poo (quino ortiz & miguel martinez)
-
Upload
miguelingeniero -
Category
Education
-
view
220 -
download
2
description
Transcript of Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y Definiciones de POO.
Alumnos: Miguel Martínez Jesús Martin.Abraham Quino Ortiz.Electrónica Grupo 1Marzo 7, 2014
CONCEPTOSOOP: Programación Orientada a Objetos (Object-oriented programming) según sus siglas en inglés, es una forma mas aplicable de la programación, ya que, permite interactuar mas con el usuario al familiarizarse con acciones cotidianas (se presentaran ejemplos en las siguientes diapositivas).
OOSD: Desarrollo de Software Orientado a Objetos (Object-Oriented 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.
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.
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.
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.
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.
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 }
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 }
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 }
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?.
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.
COHESION: La cohesión hace referencia a la forma en que agrupamos unidades de software (módulos, subrutinas...) en una unidad mayor.
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.
Únic
a
funci
ón
Elemento 1
Elemento 2
Elemento 3
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 1
Tarea 2
Tarea 4
Tarea 4
Tarea 3
Tarea 5
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.
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.
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.
HERENCIAEs 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.
EJEMPLOPodrí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.
DIAGRAMA EJEMPLO DE HERENCIA
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.
EJEMPLO (como implementarlo)
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.
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.
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);}
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.
EJEMPLO (como implementarlo)
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.
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; } }
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»
EJEMPLO (como implementarlo)
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.
BIBLIOGRAFIA http://algoritmoscomputacionalesras.blogspot.mx/
2011/06/interfaces-puntos-extras.html
http://emartini.wordpress.com/2008/09/17/poo-clases-abstractas-interfaces-y-herencia-multiple/
Horstmann,Cays.S. Core Java 2 Volumen 1-Fundamentos, Pearson Prentice Hall
http://www.cristalab.com/tutoriales/programacion-orientada-a-objetos-asociacion-vs-composicion-c89337l/