Programacion orientada a objetos

14
INGENIERÍA DE SISTEMAS E INFORMÁTICA Algoritmo y Estructura de Datos Responsable: Atunga Vergara José Timoteo Participantes: Cabrera Belmont Jorge Luis Cisneros Porras Nélida Estrada Poma Lucia LLacchua López José Alfredo 2014- II

Transcript of Programacion orientada a objetos

Page 1: Programacion orientada a objetos

INGENIERÍA DE SISTEMAS E INFORMÁTICA

Algoritmo y Estructura de Datos

Responsable: Atunga Vergara José Timoteo

Participantes: Cabrera Belmont Jorge Luis

Cisneros Porras Nélida

Estrada Poma Lucia

LLacchua López José Alfredo

2014 - II

Page 2: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

2

I. DEDICATORIA:

Agradecemos a Dios por habernos dado la valentía para asumir nuevos retos en la vida, la

fuerza para continuar con nuestros estudios día a día y la perseverancia para no rendirnos y

para terminar este trabajo de investigación.

A nuestros padres por estar ahí cuando más los necesitamos, por su ayuda y su constante

cooperación.

A nuestro profesor Atunga Vergara José Timoteo, que con su dedicación, paciencia, esmero y

profesionalismo nos dirige durante todo este trayecto, con el objetivo de enseñarnos e instruirnos para

nuestro futuro.

Page 3: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

3

II.PRESENTACION:

El presente trabajo contiene información obtenida de distintas páginas, en el transcurso del

desarrollo del trabajo de investigación.

Page 4: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

4

III.INTRODUCCION:

La programación orientada a objetos es un enfoque de programación de los más populares y

viene teniendo gran aceptación en el desarrollo de proyectos de software.

Page 5: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

5

IV. INDICE:

I.DEDICATORIA………………………………………………………………………………………………………………………..2

II.PRESENTACIÓN………………………………………………………………………………………………………………….…3

III.INTRODUCCIÓN……………………………………………………………………………………………………………..…..4

IV.ÍNDICE………………………………………………………………………………………………………………………………..5

V. TEMA……………………………………………………………………………………………………………………………......6

1. PROGRAMACIÓN ORIENTADA A OBJETOS…………………………………………………………………………..6

1.1 CARACTERÍSTICAS DE PROGRAMACIÓN ORIENTADA A OBJETOS………………………………….7

1.1.1 Abstracción………………………………………………………………………………………………………..7

1.1.2 Encapsulamiento………………………………………………………………………………………………..7

1.1.3 Ocultamiento…………………………………………………………………………………………….……..8

1.1.4 Polimorfismo…………………………………………………………………………………………………….8

1.1.5 Herencia……………………………………………………………………………………………………………9

1.2 CONCEPTOS ORIENTADO A OBJETOS ………………………………………………………………………….10

1.2.1 Clases………………………………………………………………………………………………………….10

1.2.2 Métodos………………………………………………………………………………………………………11

1.2.3 Instanción……………………………………………………………………………………………………11

1.2.4 Propiedades……………………………………………………………………………………………….12

VI. BIBLIOGRAFIA………………………………………………………………………………………………………………….……..13

Page 6: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

6

V. TEMA:

PROGRAMACIÓN ORIENTADA A OBJETOS

La Programación Orientada a Objetos (POO u OOP) es un paradigma de programación que

define los programas en términos de “clases de objetos”, objetos que son entidades que

combinan estado (propiedades o datos), comportamiento (procedimientos o métodos) e

identidad (propiedad del objeto que lo diferencia del resto).

La programación orientada a objetos expresa un programa como un conjunto de estos objetos,

que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más

fáciles de escribir, mantener y reutilizar.

Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros

objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase, al poder

tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de

interacción (los llamados métodos) que favorecen la comunicación entre objetos (de una misma

clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta

característica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben

separarse) información (datos) y procesamiento (métodos).

Las clases son declaraciones o abstracciones de objetos, lo que significa, que una clase es la

definición de un objeto. Cuando se programa un objeto y se definen sus características y

funcionalidades, realmente se programa una clase.

Comentarios:

Usamos objetos en lugar de algoritmos como bloque fundamental

Cada objeto es una instancia de una clase

Las clases están relacionadas entre sí por relaciones tan complejas como la herencia.

Page 7: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

7

1.1 CARÁCTERISTICAS PROGRAMACIÓN ORIENTADA A OBJETOS

1.1.1 Abstracción

La abstracción consiste en captar las características esenciales de un objeto, así como su

comportamiento. Por ejemplo, volvamos al ejemplo de los automóviles, ¿Qué características

podemos abstraer de los automóviles? O lo que es lo mismo ¿Qué características semejantes

tienen todos los automóviles? Todos tendrán una marca, un modelo, número de chasis, peso,

llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automóviles podrán

acelerar, frenar, retroceder, etc.

En los lenguajes de programación orientada a objetos, el concepto de Clase es la representación

y el mecanismo por el cual se gestionan las abstracciones.

Por ejemplo, en Java tenemos:

public class Automovil {

// variables

// métodos

}

1.1.2 Encapsulamiento

El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto es,

las variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes estructurados

esto era imposible. Es evidente que el encapsulamiento se logra gracias a la abstracción y el

ocultamiento que veremos a continuación.

Page 8: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

8

La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que

tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero no los

detalles internos, y esto es conveniente porque nos interesará será conocer qué hace la Clase

pero no será necesario saber cómo lo hace.

1.1.3 Ocultamiento

Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer sólo

los detalles que sean necesarios para el resto del sistema.

El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Restringir porque

habrá cierto comportamiento privado de la Clase que no podrá ser accedido por otras Clases. Y

controlar porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y es en

estos mecanismos dónde se validarán que algunas condiciones se cumplan. En Java el

ocultamiento se logra usando las palabras reservadas: public, private y protected delante de las

variables y métodos.

1.1.4 Polimorfismo:

Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo

nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto

que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden

contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia

producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto

ocurre en “tiempo de ejecución”, esta última característica se llama asignación tardía o

asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en “tiempo de

compilación”) de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

Page 9: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

9

1.1.5 Herencia:

Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de

clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las

que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento

permitiendo a los objetos ser definidos y creados como tipos especializados de objetos

preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que re

implementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en

clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto

hereda de más de una clase se dice que hay herencia múltiple; esta característica no está

soportada por algunos lenguajes (como Java).

Page 10: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

10

1.2 CONCEPTOS ORIENTADO A OBJETOS

1.2.1 Clases:

- Una clase es una plantilla que define las variables y los métodos que son comunes para

todos los objetos de un cierto tipo.

- Una clase representa a un conjunto de objetos que comparten una estructura y un

comportamiento comunes.

- La estructura de un objeto se define en su clase, por lo que un objeto es en realidad la

instancia de una clase.

- Una clase representa a un conjunto de objetos que comparten una estructura y un

comportamiento comunes.

- La estructura de un objeto se define en su clase, por lo que un objeto es en realidad la

instancia de una clase.

- Una Clase es un tipo definido por el usuario(programador) que determina las estructuras

de datos y las operaciones asociadas con este tipo.

- La Clase es simplemente un modelo que se utiliza para describir uno o más objetos del

mismo tipo.

En nuestro ejemplo, la clase bicicleta definiría variables miembro comunes a todas las

bicicletas, como la marcha actual, la cadencia actual, etc. Esta clase también debe declarar e

implementar los métodos o funciones miembro que permiten al ciclista cambiar de marcha,

frenar, y cambiar la cadencia de pedaleo, como se muestra en la siguiente figura:

Page 11: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

11

1.2.2 Métodos:

Consiste en la implementación en una clase de un protocolo de respuesta a los

mensajes dirigidos a los objetos de la misma. La respuesta a tales mensajes puede incluir

el envío por el método de mensajes al propio objeto y aun a otros, también como el

cambio del estado interno del objeto.

- También son llamados: funciones miembro.

- Son las operaciones que se pueden realizar con los objetos de la clase.

Son los procesos (funciones o procedimientos) que permiten trabajar con los datos de

los objetos.

- De acuerdo al trabajo que realizan los métodos, estos se clasifican en: Constructores,

destructores, ponedores, selectores.

1.2.3 Instanción:

- Una Instancia es una ocurrencia de la clase y un Objeto es una instancia de una Clase

específica.

- Una instancia es la concreción de una clase. - se llama instancia a todo objeto que derive de algún otro. De esta forma, todos los

objetos son instancias de algún otro, menos la clase Object que es la madre de todas.

Page 12: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

12

Ejemplo:

Supongamos que existe una clase Silla. La silla del comedor que yo utilizo, es una instancia de

esa clase, y por lo tanto, un objeto de tipo Silla. La silla que utiliza mi hermana es otra instancia

de la misma clase y en consecuencia, otro objeto del mismo tipo.

Desde el punto de vista de la programación (es decir, a nivel de implementación), es posible que

declare un objeto de un cierto tipo y posteriormente crear la instancia del mismo. La forma de

hacerlo depende del lenguaje de programación que se esté utilizando.

1.2.4 Propiedades:

Son las características observables de un objeto. Las propiedades se reconocen porque

describen un aspecto del objeto que podemos medir con una escala establecida previamente. A

cada propiedad se le debe asignar un valor el cual permite identificar de manera única al objeto.

Son variables que describen algunos aspectos o características del objeto en el que están

incluidas.

Las propiedades de un objeto toman un valor que puede ser permanente o puede cambiar. Por ejemplo la propiedad color del objeto coche tomará un valor en concreto: verde, rojo, etc. El valor concreto de una propiedad de un objeto se llama estado del objeto. Podemos modificar la

propiedad de un objeto accediendo a su estado.

Las propiedades de un objeto pueden tomar uno o varios valores. Estos valores pueden ser de cualquier tipo de dato (String o cadena de caracteres; entero, etc.)

Page 13: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

13

El nombre de la clase “FACTURA”

Page 14: Programacion orientada a objetos

UNIVERSIDAD PRIVADA TELESUP

14

IV. BIBLIOGRAFÍA:

González (2014) Programación Orientada a Objetos, Ciberaula, revisado el 30/11/2014, http://www.ciberaula.com/articulo/tecnologia_orientada_objetos/

Frick (2008) Programación Orientada a Objetos – Clase e Instancia, El Aprendiz, revisado el 30/11/2014, http://thefricky.wordpress.com/2008/01/15/programacion-orientada-a-objetos-clase-e-instancia/

Bahit (2011), 5.2. Programación Orientada a Objetos, LIBROSWEB, revisado el 30/11/2014,

librosweb.es/libro/python/capitulo_5/programacion_orientada_a_objetos.html

Alejo (2007), Conceptos Básicos de POO, Programación Orientada a Objetos, revisado el

30/11/2014, http://apdaza-poo.blogspot.com/2007/09/conceptos-bsicos-de-poo.html

Espinoza (2010), Unidad 2. Programación orientada a objetos (I)AulaClic, revisado el

30/11/2014, http://www.aulaclic.es/macros-excel/t_2_1.htm

Ruiz (2007), Definición de programación orientada a objetos, Framework PHP, revisado el

30/11/2014, https://frameworkphp.wordpress.com/2007/09/19/definicion-de-programacion-

orientada-a-objetos/

Alvares (2001), Qué es la programación orientada a objetos,desarrolloWeb.com, revisado el

30/11/2014 , http://www.desarrolloweb.com/articulos/499.php

Henao (2013), Conceptos Básicos de Programación Orientada a Objetos, CoDejavu, revisado el

30/11/2014, http://codejavu.blogspot.com/2013/05/conceptos-de-programacion-

orientada.html