OOP

 PROGRAMACIÓN ORIENTADA A OBJETOS

La OOP "programación orientada a objetos", nos da una forma de ver el proceso de programación simulando objetos reales, sus atributos y comportamientos  al igual que la comunicación entre los objetos.

Encapsula datos (atributos) y funciones(comportamiento) en paquetes llamados objetos. Hay objetos de tiempo, de datos, de archivos, etc.

Están agrupados en clases que son grupos de programas diseñados para estos objetos, con esto se logra hacer más entendible el software, más fácil de organizar y corregir.

Conceptos Básicos:
El primer paso es el modelado de datos, esto es identificar los objetos en base a los requerimientos de los usuarios y definir como están relacionados entre si, tiene dos características, que todos tienen estado y comportamiento después de este paso se determina la clase de objeto a la cual pertenece al igual que la clase de datos que contiene y secuencia lógica que puede manipularlo.

Cada secuencia lógica, es conocida como un método
El tercer paso es el caso de clase, este se dirige a la computadora, aquí proporcionan instrucciones a la computadora y las características.

Te puedes comunicar con objetos y ellos se comunican un con el otro con interfaces, que son llamadas, mensajes.

 Clase:
La clase de objeto es una agrupación lógica de objetos que comparten los mismos atributos y comportamientos. La clase es caracterizada por su conjunto de rasgos definidos o atributos.

Características:
*Una clase puede tener subclases que pueden heredar todas o unas características, con relación a cada subclase la clase es una superclase.
*Las subclases también pueden definir sus propios métodos y variables que no son parte de su superclase.
*La estructura de una clase y sus subclases se llaman: GERARQUIA DE LA CLASE

El objeto es una estructura que encapsula propiedades y comportamientos de una aplicación . Cada objeto tiene: estado, comportamiento, identidad

Estado: se compone de atributos y valor actual

Comportamiento: representa como el objeto actua y reacciona

Identidad: Cada objeto es único y ninguno es igual a otros.

El objeto contiene valores es capaz de recibir mensajes, tratar datos, y enviar mensajes a otros

Operación: Es una función o servicio  proporcionado por una clase.
Es la acción que se aplica al objeto, una misma operación que puede aplicarse a diferentes clases a esto se le llama polimorfismo, todos los objetos de una clase comparten las mismas operaciones

Encapsulación: Es la técnica donde esconde detalles de realización interno de un objeto de la vista externa

Método: Es la implementación de una operación para una clase, por ejemplo: la operación de imprimir. Es un procedimiento privado de un objeto que dice como hacer un mensaje, respondiendo de forma diferente.
Los objetos proporcionan la ventaja de modularidad y ocultamiento de información.
Modularidad: es el código fuente para que un objeto pueda ser escrito y mantenido independientemente del código para otros objetos.
Posibilidad de esconder información: un objeto tienen una interfaz en la que otros objetos pueden utilizarla para comunicarse con él.
Modelo orientado a objetos: esta organiza los objetos con sus estructuras de datos y comportamiento. Se construye un modelo de aplicación añadiendo detalles de implementación durante el diseño de un sistema.
MODELO DE OBJETOS
Describe la estructura estática de los objetos del sistema y sus interacciones.
Contiene diagramas de objetos que es un grafico con:
* NODOS: clases de objetos
* FLECHAS Y LINEAS: relaciones entre clases.
CARACTERISTICAS
IDENTIDAD-cada objeto es único, concreto y conceptual
HERENCIA- es el arreglo de clases que permite a subclases heredar propiedades de superclases. De una clase con subclases heredan todas las propiedades de la superclase y además añaden sus propiedades exclusivas. Permite organizar y facilitar el polimorfismo y la encapsulación. Hace que la programación orientada sea un poco más difícil de usar y aprender.
CLASIFICACION-cada objeto es una parte de una clase
ENCAPSULACION-combina el comportamiento de datos y el comportamiento en una unidad única.
POLIMORFISMO-permite que el mismo código sea usado en diferentes tipos de objetos.
ABSTRACCION-los objetos se examinan en términos
abstractos tomando en cuenta solo lo más
importante. Se concentra en lo que es y hace un
objeto.
MENSAJE
Los objetos de software se relacionan y comunican uno con el otro usando mensajes.
Cuando el objeto a quiere que el objeto b realice uno de su métodos a envía un mensaje a b.
En este un objeto puede solicitar de otro objeto que realice una acción determinada o que modifique su estado.
Enlace dinámico: son los objetos que podrían interactuar desde los objetos sin tener conocimiento del tipo de objeto.
JERARQUÍA DE CLASES
Las distintas clases de un programa se organizan mediante la jerarquía en árboles de herencia.
Ejemplo de árbol de herencia:
Clase abuelo
Clase hijo 1
Cada objeto en el sistema sirve como un modelo de un actor abstracto que puede realizar el trabajo, informar o cambiar su estado con otros objetos en el sistema.
REUTILIZACION-los objetos pueden
utilizarse en otros dominios.
Clase padre 2
Clase padre 1
Clase hijo 2
Clase hijo 3
La herencia ofrece ventajas:
* Las subclases que tienen comportamientos determinados de la base de los elementos comunes proporcionados por la superclase.
* Clases abstractas son las que definen comportamientos comunes, define y puede implementar parcialmente el comportamiento pero la mayor parte de la clase es indeterminada.
PAQUETE:
Es una agrupación de clases. Existen carios paquetes en java aparte de que el usuario los puede crear.
Todas las clases que forman parte de un paquete deben estar en la misma carpeta.
Es importante distinguir entre lo que significa herencia y paquete.
* Un paquete es una agrupación parcial de clases, una forma de organizar las clases.
* La herencia consiste en crear nuevas clases en base a otras ya existentes.
* Las clases incluidas en un paquete no proceden por lo general de una única clase. 







PRACTICA 2

RELACIONES ENTRE OBJETOS

Existen varios tipos de relaciones:

1.- relaciones de asociación

Estas son en las que un objeto realiza llamadas a los servicios de otro interactuando de esta forma con el. Relaciones con menos riqueza.

2.- Relaciones de todo/parte

Muchas veces en una entidad se determina un enlace o un conglomerado de ellos la orientación de este tipo de relación consta de dos agregación y composición. AGREGACION: la agregación es una relación en la cual los objetos representan parte de un conjunto y se asocian con el mismo por ejemplo el microprocesador o la tarjeta de sonido.

3.-Relaciones de generalización/especialización

La generalización  es una perspectiva ascendente, la especialización es una perspectiva descendente.

La generalización distingue un objeto que incluye otros objetos. Por ejemplo: el objeto ropa incluye los objetos blusa, pantalón, chamarra, etc. En este caso  hablamos de superclase y de subclases.

4.- Relaciones de multiplicidad

La multiplicidad específica el numero de instancias de una clase que puedan ser relacionadas con una única instancia de una clase asociada. Usa la línea de terminadores (Líneas que muestran la multiplicidad) para indicar cuantos objetos de una clase se relacionan con un solo objeto de otra clase.

INTERFAZ

Una interfaz es un protocolo de comportamiento de una clase u objeto. En general, una interfaz es un dispositivo o un sistema que las entidades sin relaciones usan para relacionarse. Ejemplo: el control remoto es una interfaz entre tu y la televisión.

En el lenguaje de programación java, la interfaz determina la colección de definiciones de métodos y valores constantes relacionados con un objeto.

Las interfaces son utiles para lo siguiente:

*Captura de semejanzas entre clases sin relaciones sin forzar artificialmente una relación de clase
*Declara métodos que se espera que una o varias clases pongan en práctica.
*Revela la interfaz de programación de un objeto sin revelar su clase
*Modela su herencia multiple que permite que una clase tenga más de una superclase.

LENGUAJES DE PROGRAMACIÓN QUE UTILIZAN OOP

La programación orientada al objeto fue desarrollada como una metodología de programación dominante durante mediados de los años 1980, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C.

Lenguajes de programación orientada a objetos:

Ada95, c#, c++, delphi, visual basic, Eiffel, ocami, java, jade, ruby, php, simula, etc…

Más recientemente los programadores crearon va<ríos lenguajes orientados a objetos como python y ruby. Además de Java, basic, .net, y c# diseñados para la plataforma .NET de Microsoft probablemente son los lenguajes orientados a objetos actuales más importantes.

RESPONDE LAS PREGUNTAS Y REALIZA LAS ACTIVIDADES;

1.-¿Qué se entiende por el concepto de programación orientada a objetos y por qué éste método de programación es más avanzado que los otros métodos?
La OOP (programación orientada a objetos), nos da una forma de ver el proceso de programación simulando objetos reales, sus atributos y comportamientos  al igual que la comunicación entre los objetos. Encapsula datos (atributos) y funciones(comportamiento) en paquetes llamados objetos. Hay objetos de tiempo, de datos, de archivos, etc. Están agrupados en clases que son grupos de programas diseñados para estos objetos, con esto se logra hacer más entendible el software, más fácil de organizar y corregir.

2.-¿Qué significa abstracción, super y subclase? Proporciona ejemplos.
Una clase puede tener subclases que pueden heredar todas o unas características, con relación a cada subclase la clase es una superclase.
Las subclases también pueden definir sus propios métodos y variables que no son parte de su superclase. 


3.-Crea un diagrama de clase con primer objeto un estudiante con atributos, nombre, fecha de nac., año, grupo, teléfono y operaciones, inscripción y asistencia a clases, Segundo objeto: un curso con atributos, código del curso, titulo, horas, y operación, inscripción y clases del curso. 
Estudiante
Nombre: Pamela Alcaraz Trejo
Fecha de nacimiento: 17/enero/1996
430-b
Tel:3988266
Inscripción: 5/enero/2009
Asistencia: sin ninguna falta
Curso con atributos
Código del curso: 5468292
Titulo: físico/matemático
Horas: 4 horas
Operación: maestro
Inscripción: 17/julio/1013
Clases: 2:00-6:00




4.-¿Qué nos permite el polimorfismo?
 que una misma operación que puede aplicarse a diferentes clases.

5.-¿Cuáles son las relaciones entre los objetos más importantes que se usan en la programación orientada a objetos?
Relaciones de todo/parte, de asociación, de generalización/especialización, y de multiplicidad

6.-Menciona algunas de las características más importantes de la interfaz.
*es un protocolo de comportamiento de una clase u objeto.
*es un dispositivo o un sistema que las entidades sin relaciones usan para relacionarse.

II.- Escoge la respuesta correcta:

1.-¿Cuáles son las dos cosas que forman un objeto?
a)Atributos y comportamiento

2.-¿Cuál de los siguientes no es cierto para la OOP?
b)Es más fácil encontrar errores

3.-¿Pueden las clases heredar más de una clase?
a)Sí para todas OOP

4.-¿Cuál de los siguientes no es rasgo de la OOP?
d)Base de datos

5.-¿Cuáles de los siguientes lenguajes no utilizan OOP?
b)Lenguaje c y pascal

2 comments: