conceptos poo

33
INSTITUTO TECNOLÓGICO DE MINATITLÁN VIDAL RUEDA DAVID CARRERA: ING. ELECTRÓNICA MATERIA: PROGRAMACIÓN VISUAL. DOCENTE. ING. GUILLERMINA JIMÉNEZ RASGADO

Upload: david-vidal

Post on 12-Jun-2015

172 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Conceptos poo

INSTITUTO TECNOLÓGICO DE MINATITLÁN

• VIDAL RUEDA DAVID

• CARRERA: ING. ELECTRÓNICA

• MATERIA: PROGRAMACIÓN VISUAL.

• DOCENTE. ING. GUILLERMINA JIMÉNEZ RASGADO

Page 2: Conceptos poo

PROGRAMACIÓN ORIENTADA A OBJETOS (POO)

• Es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

Page 3: Conceptos poo
Page 4: Conceptos poo

¿POR QUÉ SE PROGRAMA?

Aprender un programa es un camino creativo nosotros podemos tomar algunas ideas del siguiente nivel y expresar soluciones a la sociedad.Facilita la creación de software de calidad: potencia en mantenimiento, la extensión y la reutilización.A través del proceso de programar, nosotros aprendemos varias habilidades como lectura de crítica, análisis de pensamiento y creación de síntesis. Pero nosotros no podemos programar todas las soluciones con el mismo método eso es porque aparece la paradigma de la programación.

Page 5: Conceptos poo

CONCEPTOS BÁSICOS

Page 6: Conceptos poo

CLASE• Una clase es un conjunto de objetos que

comparten una estructura y comportamiento comunes.

• Clase representa una abstracción, la esencia que comparten los objetos.

• Un objeto es un ejemplo de una clase.• Un objeto no es una clase, y una clase no es

un objeto (aunque puede serlo, p.e. en Smalltalk).

• Las clases actuan como intermediarias entre una abstracción y los clientes que pretenden utilizar la abstracción. De esta forma, la clase muestra:

• visión externa de comportamiento (interface), que enfatiza la abstracción escondiendo su estructura y secretos de comportamiento.

• visión interna (implementación), que abarca el código que se ofrece en la interface de la clase.

Page 7: Conceptos poo

OBJETOUn objeto es algo de lo que hablamos y que podemos manipular.Existen en el mundo real (o en nuestro entendimiento del mismo)Un objeto puede ser creado instanciando una clase, como ocurre en la programación orientada a objetos, o mediante escritura directa de código y la replicación otros objetos, como ocurre en la programación basada en prototipos.

Del ejemplo anterior

Page 8: Conceptos poo

 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 la relación entre una clase general y otra clase mas especifica. 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. Por ejemplo: Si declaramos una clase párrafo derivada de un clase texto todos los métodos y variables asociadas con la clase texto son automáticamente heredados por la subclase párrafo.

Page 9: Conceptos poo

ATRIBUTO

Los atributos describen el estado del objeto. Un atributo consta de dos partes, un nombre de atributo y un valor de atributo.Los objetos simples pueden constar de tipos primitivos, tales como enteros, caracteres, boolen, etc. Los objetos complejos pueden constar de pilas, conjuntos, listas, arrays, etc, o incluso de estructuras recursivas de alguno o todos de sus elementos.

Cuando se declara el atributo o variable miembro euros en la clase Precio de la siguiente forma: public class Precio { // Declaracion de atributos o variables miembro public double euros; // Declaracion de métodos . . . }

Page 10: Conceptos poo

   MÉTODO:

Los métodos ( operaciones o servicios ) describen el comportamiento asociado a un objeto. La ejecución de un método puede conducir a cambiar el estado del objeto o dato local del objeto.Cada método tiene un nombre y un cuerpo que realiza la acción o comportamiento asociado con el nombre del método

Page 11: Conceptos poo

ABSTRACCIÓN

Expresa las características esenciales de un objeto, las cuales distinguen a los objetos de los demás.Nos permite trabajar con la complejidad del mundo realSepararemos el comportamiento de la implementaciónEs más importante saber qué se hace en lugar de cómo se hace:

Page 12: Conceptos poo

POLIMORFISMO

Es la capacidad de tener métodos con el mismo nombre, con comportamientos diferentes, conocido como la sobre-escritura de métodos y la sobrecarga de operadores.En ella expresa la posibilidad de que el mismo mensaje, enviado a objetos distintos, ejecute métodos distintos. Esto significa que podemos definir dentro de dos clases distintas dos operaciones con el mismo nombre y aspecto externo, pero con distintas implementaciones para cada clase.

Vemos que FiguraGeometrica es la superClase y Triangulo es la clase hija o subClase, y por medio del polimorfismo podemos crear una instancia de Triangulo de tipo FiguraGeometrica...

Page 13: Conceptos poo

INTERFAZ

Es un conjunto de métodos que indican que una clase tiene un comportamiento particular además del que hereda de sus superclases. Se 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*

Page 14: Conceptos poo

INTERFAZ

Page 15: Conceptos poo

CONSTRUCTORES

Java no permite variables miembro de clase ni objetos sin inicializar, los inicializa siempre con valores por defecto.La inicialización de objetos requiere el uso de constructores.El compilador proporciona un constructor público por omisión para cada clase que se define.Un constructor es un método especial de la clase que se llama automáticamente cada vez que se crea un objeto de esa clase su función es inicializar objetos de la clase.Al crear un objeto de una clase:1º         Se reserva memoria (operador new)2º        Se inician los atributos del objeto bien a los valores indicados en la declaración o a los valores por defecto. (atributos numéricos a 0, alfanuméricos a nulo y referencias a null)3º         Se llama al constructor.Un miembro de una clase puede ser iniciado con un objeto de otra clase.

Page 16: Conceptos poo

Características de los constructores

-         Los constructores no tienen valor de retorno, ni siquiera void.-         Su nombre es siempre el mismo que el de la clase. Su argumento implícito es el objeto que está creando.-         No se hereda.-         No pueden ser declarados final, static, abstract, sychronized o native.

Page 17: Conceptos poo

ENCAPSULAMIENTO

Es la propiedad que tienen los objetos, de contener tanto datos como métodos, los cuales pueden manipular o cambiar estos datos.

Consiste en separar los aspectos externos de un objeto (que pueden ser accedidos desde otros objetos) de los detalles internos de implementación del mismo.

Page 18: Conceptos poo

ENCAPSULAMIENTO

Es importante porque mediante esta propiedad, los objetos, tienen el control necesario, de la integridad de los datos contenidos en estos.

Facilidad de mantenimiento y depuración de los programas.

Los clientes de una clase sólo conocen la interfaz de la misma, es decir, conocen los prototipos de las operaciones pero no cómo están implementadas.

Por tanto, si la implementación de una clase varía, y la interfaz continúa siendo la misma, no es necesario cambiar el código de los clientes.

Page 19: Conceptos poo

COHESIÓNEs una medida de la especialización con la que cuenta un objeto dentro de un sistema, entre mas alta sea esta, es mejor.La cohesión tiene que ver con la forma en la que agrupamos unidades de software en una unidad mayor. Por ejemplo, la forma en la que agrupamos funciones en una librería, o la forma en la que agrupamos métodos en una clase, o la forma en la que agrupamos clases en una librería, etc...Se suele decir que cuanto más cohesionados estén los elementos agrupados, mejor.

Page 20: Conceptos poo

ACOPLAMIENTO

El acoplamiento mide el grado de relacionamiento de un módulo con los demás. A menor acoplamiento, mejor: el módulo en cuestión será más sencillo de diseñar, programar, probar y mantener.En el diseño estructurado, se logra bajo acoplamiento reduciendo las interacciones entre procedimientos y funciones, reduciendo la cantidad y complejidad de los parámetros y disminuyendo al mínimo los parámetros por referencia y los efectos colaterales.De nuevo, el diseño orientado a objetos nos complica las cosas con sus tres tipos de módulos. A los métodos, como pasó con la cohesión, podemos analizarlos con los mismos criterios que a los módulos del diseño estructurado.

Page 21: Conceptos poo

MIEMBRO  Los miembros datoLos valores de los atributos se guardan en los miembros dato o variables de instancia. Los nombres de dichas variables comienzan por letra minúscula.

Vamos a crear una clase denominada Rectangulo, que describa las características comunes a estas figuras planas que son las siguientes:

El origen del rectángulo: el origen o posición de la esquina superior izquierda del rectángulo en el plano determinado por dos números enteros x e y.Las dimensiones del rectángulo: ancho y alto, otros dos números enteros.

class Rectangulo{ int x; int y; int ancho; int alto; //faltan las funciones miembro }

Page 22: Conceptos poo

UML

Def. Lenguaje Unificado de Modelado es una notación gráfica para dibujar diagramas de conceptos de software.

Existen 3 niveles de diagramas en la concepción de un sistema de software:

Diagrama Conceptual (sobre el dominio del problema)

Diagrama de Especificación sobre el diseño del software

Diagramas de Implementación

Los diagramas de especificación y de implementación tienen una fuerte conexión con el código fuente

Solo se van a ver los últimos 2

Page 23: Conceptos poo

OBJETIVOS DE LOS DIAGRAMAS

Diagrama de Especificación transformación en código fuente

Diagrama de Implementación descripción de un código fuente existente

En ambos casos, crear un modelo donde se elimine la ambigüedad y se dé formalidad

Page 24: Conceptos poo

NIVEL CONCEPTUAL

Los diagramas conceptuales no están tan fuertemente ligados con el código fuente.

No sigue reglas semánticas estrictas y por lo tanto su resultado puede ser ambiguo y

sujeto a interpretación.

Page 25: Conceptos poo

EJEMPLO – NIVEL CONCEPTUAL

Con la frase “un perro es un animal”Se ve que existen 2 entidades, perro y

animalLa relación entre las entidades sería de generalización. “Un perro es un caso de

animal”El diagrama sería:

Animal

Perro

Page 26: Conceptos poo

EJEMPLO – NIVEL CONCEPTUAL

El diagrama sugiere que el Perro es una clase de Animal, ó que el Perro es un caso especial de

Animal

Sin embargo, se puede pensar que el perro, como especie biológica, pertenece al reino

animal ( se presta a interpretaciones)

Animal

Perro

Page 27: Conceptos poo

NIVEL DE ESPECIFICACIONES

Public class Animal {}

Public class Perro extends Animal {}

Sin embargo, en el nivel de especificaciones este código tiene mas coherencia de manera que Animal y Perro están

conectadas por una relación de herencia

Page 28: Conceptos poo

El fallo para reconocer el nivel de un diagrama es la fuente de errores significativos de

comunicación entre programadores y analistas

Un diagrama de nivel conceptual no define el código fuente, no debe de hacerlo.

Un diagrama de nivel de especificaciones describe la solución del problema no tiene

porqué parecerse a un diagrama conceptual

Page 29: Conceptos poo

TIPOS DE DIAGRAMAS EN UML

Diagramas estáticos.- Describen la estructura lógica invariable de los elementos software representando clases, objetos, estructuras de datos y las relaciones

entre ellas.

Diagramas dinámicos.- Muestran como cambian las entidades software durante la ejecución,

representando el flujo de ejecución.

Diagramas físicos.- Muestran la estructura física invariable como archivos fuente, bibliotecas, archivos binarios o de datos y sus relaciones.

Page 30: Conceptos poo

CONSIDERAR EL SIGUIENTE CÓDIGO

Page 31: Conceptos poo

DIAGRAMA DE OBJETOS

Objetos

Clase a la que pertenece el objeto

Enlaces

Nodos del arreglo

Muestra los objetos y sus relaciones en un

momento particular de ejecución del sistema

Page 32: Conceptos poo

VENTAJAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS

La reutilización de código: Esta ahorra tiempo en el desarrollo de

programas. Se utiliza software que ya ha sido

probado.Fácil mantenimiento y depuración de

programas.Extensibilidad: posibilidad de ampliar la

funcionalidad de la aplicación de manera sencilla.

Modularidad y encapsulación: el sistema se descompone en objetos con unas responsabilidades claramente especificadas.

Page 33: Conceptos poo

CONCLUSION

La programación orientada a objetos permite la optimización del código generado gracias a que mediante técnicas de herencia, atributos éstaticos entre otros permiten, que el código sea generico de manera que sea reutilizable. Mediante las técnica aprendida en el presente curso podemos establecer una solución primitiva de un problema real, tan solo con relacionarlo con objetos lógicos que séran usados para el desarrollo del sofware. Podemos dar a conocer de una forma sencilla los mecanismos que se usan en este nivel de programación, a personas que deseen una explicacion rápida y sencilla de lo que es la programación orientada a objetos.