Вы находитесь на странице: 1из 48

Autor: Ing.

Fernando Martín Del Campo


García.
1
PROGRAMACIÓN
La Programación es la accion de escribir un
conjunto de instrucciones escritas en un
determinado lenguaje, que dirigen a un

García.
Autor: Ing. Fernando Martín Del Campo
ordenador para la ejecución de una serie de
operaciones, con el objetivo de resolver un
problema que se ha definido previamente.

2
«PROGRAMACIÓN»
 Programación es aquella actividad por la cual se crean
programas para computadoras, tales programas pueden ser
códigos fuentes interpretados (como por ejemplo scripts en

García.
Autor: Ing. Fernando Martín Del Campo
BASH) o códigos fuentes que serán compilados (como por
ejemplo programas en C++) hacia lenguajes binarios y
ejecutados desde el kernel del sistema operativo.
 No es normal escribir un programa en lenguaje de máquina
dado que es muy difícil, en cambio, se utilizan lenguajes de
programación inteligibles por un ser humano. No es necesario
que un programa sea escrito en un sólo lenguaje, puede
poseer diversas partes escritas en distintos lenguajes de
programación, como por ejemplo C, C++ y Asm.

3
La diferencia entre algoritmo y programa es
que este último implementa, en general,
traduciendo a un lenguaje de programación en

García.
Autor: Ing. Fernando Martín Del Campo
concreto, un algoritmo, el cual es una
secuencia finita, ordenada y no ambigua de
instrucciones que resuelven determinado
problema. Esta secuencia de instrucciones
luego podrá ser repetida cuantas veces sea
necesario, dentro del mismo programa, o con
la ejecución del programa en varias
oportunidades.
4
PROGRAMA
Un programa es una serie de instrucciones que
le indican a la computadora cuáles son las
tareas que tiene que realizar para lograr un fin

García.
Autor: Ing. Fernando Martín Del Campo
específico. Debe tener una estructura..

5
PROGRAMACIÓN ORIENTADA A
OBJETOS
 La POO ( Programación Orientada a Objetos) se puede
definir como “un método de implementación en el que los
programas se organizan como colecciones cooperativas

García.
Autor: Ing. Fernando Martín Del Campo
de objetos, cada uno de los cuales representan una
instancia de alguna clase, y cuyas clases son todas
miembros de una jerarquía de clases unidas mediante
relaciones de herencia”.
 Existen tres importantes partes en la definición: la
programación orientada a objetos 1) utiliza objetos, no
algoritmos, como bloques de construcción lógicos; 2)
cada objeto es una instancia de una clase; 3) las clases se
relacionan unas con otras por medio de relaciones de
herencia.

6
¿CUÁLES SON LAS VENTAJAS DE
UN LENGUAJE ORIENTADO A
OBJETOS?
 Fomenta la reutilización y extensión del código.
 Permite crear sistemas más complejos.

García.
Autor: Ing. Fernando Martín Del Campo
 Relacionar el sistema al mundo real.
 Facilita la creación de programas visuales.
 Construcción de prototipos
 Agiliza el desarrollo de software
 Facilita el trabajo en equipo
 Facilita el mantenimiento del software
 Lo interesante de la POO es que proporciona
conceptos y herramientas con las cuales se
modela y representa el mundo real tan
fielmente como sea posible. 7
PARADIGMA ORIENTADA A
OBJETOS

Técnica para el modelado de sistemas.


Se modela el sistema a través de un número de objetos
relacionados que interactúan entre si.
Similar a la manera en que la gente ve su medio
8
ambiente.
Es una forma de pensar y concebir el mundo.

Autor: Ing. Fernando Martín Del Campo García.


ABSTRACCIÓN
 Es el proceso de ignorar los detalles
para concentrarse en las

García.
Autor: Ing. Fernando Martín Del Campo
características esenciales.
 Es el proceso mental primario para
abordar la complejidad.
 Simplifica la interacción de los
usuarios con objetos abstraídos.
 Hay dos tipos: La abstracción funcional
y la abstracción de datos.
9
ABSTRACCIÓN FUNCIONAL – (1)
 Ignora detalles acerca del procesamiento.
 Hace uso de abstracciones de lenguaje de

García.
Autor: Ing. Fernando Martín Del Campo
alto nivel.
 Utiliza abstracciones definidas por el usuario
( procedimientos y subrutinas )

10
ABSTRACCIÓN FUNCIONAL – (2)
int *endptr; int *primptr;
int i,k;
primptr = ptr; endptr = ptr + n - 1;

García.
Autor: Ing. Fernando Martín Del Campo
for(i=0; i<n; i++)
{
for(ptr = primptr; ptr < endptr - i; ptr++)
if(*ptr > *(ptr+1))
{
k = *ptr;
*ptr = *(ptr+1);
*(ptr+1) = k;
}
}
11
ABSTRACCIÓN FUNCIONAL – (3)
 El código anterior parece ser complejo.
 Si se tuviera que poner cada vez que ser

García.
Autor: Ing. Fernando Martín Del Campo
requiera entonces el propósito global del
programa se perdería.
 En lugar de esto usamos una función de
ordenamiento
 void burbuja(int ptr[], int n)

12
ABSTRACCIÓN DE DATOS

 Trata con tipos de datos

García.
Autor: Ing. Fernando Martín Del Campo
 Permite ignorar los detalles de la representación
interna de los datos
 Involucra la abstracción funcional.

 p.ej.Cuando las operaciones entre tipos de


datos son ejecutadas con números de punto
flotante, la representación interna permanece
oculta.
13
IDENTIFICANDO A LOS OBJETOS (1)
 Los objetos pueden ser una oración, una
cuenta en un banco, un número, un auto,
una persona, etc.

García.
Autor: Ing. Fernando Martín Del Campo
 Los objetos son:
 Cosas
 Realeso imaginarias
 Simples o complejas

14
IDENTIFICANDO A LOS OBJETOS (2)

X + Yi
Objeto Empleado Número Complejo
Vaca

Reloj Despertador Motocicleta Cuenta Bancaria

Autor: Ing. Fernando Martín Del


Campo García.
15
IDENTIFICANDO A LOS OBJETOS
ATRIBUTOS Y OPERACIONES
 Los objetos tienen atributos y
operaciones.

García.
Autor: Ing. Fernando Martín Del Campo
 Los atributos son: las características del los
objeto.
 Las operaciones son: lo que un objeto puede
hacer.

16
IDENTIFICANDO A LOS OBJETOS
IDENTIDAD
 Además de los atributos y operaciones un
objeto tiene una identidad.

García.
Autor: Ing. Fernando Martín Del Campo
 La identidad de un objeto el lo que lo
diferencia y distingue de otros objetos
similares.

17
IDENTIFICANDO A LOS OBJETOS
SUS TRES ELEMENTOS

 Podemos resumir que todo objeto esta compuesto de

García.
Autor: Ing. Fernando Martín Del Campo
3 elementos:

 Objeto = atributos + operaciones + identidad

18
IDENTIFICANDO A LOS OBJETOS
ATRIBUTOS, OPERACIONES E
IDENTIDAD

Atributos de las nubes:


Tamaño, forma, contenido
de agua

Operaciones de las nubes:


llueven, nevan, truenan

Autor: Ing. Fernando Martín Del


Campo García.
19
CRITERIOS PARA IDENTIFICAR UN
OBJETO
 Relevancia para el dominio del problema.
 Necesidad de su existencia independiente.

García.
Autor: Ing. Fernando Martín Del Campo
 Que tenga atributos y operaciones

20
IMPORTANCIA PARA EL DOMINIO DEL
PROBLEMA

 ¿Existe dentro de las fronteras del enunciado del

García.
Autor: Ing. Fernando Martín Del Campo
problema?
 ¿Es requerido para alcanzar completamente las
responsabilidades del sistema?
 ¿ Los objetos son características de otros objetos ?

21
EXISTENCIA INDEPENDIENTE

 Para que un objeto no sea una característica de otro

García.
Autor: Ing. Fernando Martín Del Campo
objeto, necesariamente debe existir con
independencia.

 P.ej. Considere una computadora que tiene Pentium III de procesador.


En una perspectiva ( para un vendedor ), el procesador es una
característica o atributo de la computadora. Pero si usted fuera
diseñador de componentes de computadoras o PC en una fábrica, el
procesador por si mismo es un objeto independiente

22
ATRIBUTOS Y OPERACIONES
 Un objeto debe tener atributos y operaciones
 Si no los tiene, es probablemente un atributo

García.
Autor: Ing. Fernando Martín Del Campo
u operación de otro objeto.

23
ENCAPSULAMIENTO
 El encapsulamiento separa los aspectos
externos de un objeto de sus detalles
internos de implementación.

García.
Autor: Ing. Fernando Martín Del Campo
 Los cambios internos necesarios no afectan a
la interface externa.
 P.ej. Ud. no necesita saber como un teléfono conecta a las dos
partes para poder utilizarlo. Solo necesita entender la interface, cual
es la composición de botónes, el auricular ( para el oido ) , y la
bocina ( para la voca ). Ud. puede ignorar los procesos internos de
cómo es hecha la conexión, los switches que cruzan los países, etc.

24
PARTES DE UN OBJETO
ENCAPSULADO
Cada objeto tiene:
Interfacepública ( externo ).

García.
Autor: Ing. Fernando Martín Del Campo
Implementación ( interno )
Información interna ( información para
la implementación ).

25
IMPLEMENTANDO EL
ENCAPSULAMIENTO
 Los atributos y operaciones de un objeto son
sus miembros.
 Los miembros de un objeto pueden ser

García.
Autor: Ing. Fernando Martín Del Campo
public o private .
 En sistemas OO puros, todos los atributos
son privados y pueden ser cambiados o
accesados solo a través de operaciones
públicas.

26
MENSAJES – (1)

 Un mensaje es la manera en que los objetos se


comunican e interactúan entre sí.

García.
Autor: Ing. Fernando Martín Del Campo
 Un mensaje es la invocación de una operación u
método de la interfaz publica de un objeto
encapsulado
 En los objetos encapsulados, los mensajes son
entre los métodos públicos de los objetos.
 El acceso al estado de un objeto es mediante estos
mensajes a métodos accesores y mutadores. ( los
getters y setters ).
27
MENSAJES - (2)
ESTADO DE UN OBJETO

 El estado de un objeto son los valores


actuales de los atributos de un objeto en un

García.
Autor: Ing. Fernando Martín Del Campo
instante dado.
 La instancia de una clase ( o sea un objeto )
cambia o muta sus valores en el transcurso
del tiempo de vida del objeto.
 Este estado del objeto solo es posible
accesarlo o modificarlo con mensajes o
invocaciones a las operaciones de la
interface pública de los objetos para no
perder la propiedad del encapsulamiento.28
( getters y setters ).
MENSAJES - (3)
Mensajes entre objetos

Lectura de velocidad
Tacto

García.
Autor: Ing. Fernando Martín Del Campo
Velocidad

RPM Estados
Mentales
Luces Testigo Vista

Fuerzas del Volante


Oido

29
MENSAJES - (4)
Mensajes entre objetos
Palanca de
velocidades Acelerar ( Fuerza)

García.
Autor: Ing. Fernando Martín Del Campo
-Posición Girar (sentido,ángulo)
-Velocidad
-Aceleración Volante Frenar (Fuerza)
Freno -RMP del motor
….. Embragar

Desembragar
Acelerador
Cambiar marcha ( Marcha)

30
RESUMEN

 Ud. Debería definir hasta este momento los


siguientes términos.

García.
Autor: Ing. Fernando Martín Del Campo
 Objeto

 Atributos

 Operaciones

 Abstracción

 Ocultamiento de Datos

 Encapsulado

 Mensajes

 Miembro
31
CLASES
 Un objeto es una instancia: Una específica
galleta, hoja, balón, carro o moneda.

García.
Autor: Ing. Fernando Martín Del Campo
 “Un carro” es una clase; “mi carro” es un
objeto

32
CLASES DE OBJETOS

García.
Autor: Ing. Fernando Martín Del Campo
Objetos de la clase Galleta

Objetos de la clase Balón


33
CONCEPTO DE CLASE
Clase : Es una descripción de atributos y
comportamientos de un conjunto de objetos similares.
Los objetos de una clase o tipo determinado comparten
los mismos comportamientos y atributos. Las clases
actúan en forma muy parecida a una plantilla o molde
para galletas en el sentido de que una clase se utiliza
para crear o instanciar objetos

Creación
o
instanciación

Autor: Ing. Fernando Martín Del


Campo García.
34
GENERALIZACIÓN
 Ejemplo: Transporte es una generalización
de varias clases que proveen transportación.

García.
Autor: Ing. Fernando Martín Del Campo
 La Generalización identifica y define los
atributos y operaciones comunes en una
colección de objetos.

35
HERENCIA – (1)

 P. ej. El balon de soccer puede heredar


miembros de la clase Balon

Superclase
Balon

Subclases Basketball Soccer Ball Baseball

Autor: Ing. Fernando Martín Del


Campo García.
36
HERENCIA – (2)

 Es un mecanismo para definir una nueva

García.
Autor: Ing. Fernando Martín Del Campo
clase en términos de una clase existente.
 Permite agrupar clases relacionadas de tal
manera que pueden ser manejadas
colectivamente
 Promueve su uso
 Permite esconder o sobreponer miembros
heredados
 Términos relevantes: generalización,
especialización, sobreposición. 37
HERENCIA – (3)
ESPECIALIZACIÓN Y GENERALIZACIÓN

García.
Autor: Ing. Fernando Martín Del Campo
38
ESPECIALIZACIÓN – (1)

 Mientras la generalización se enfoca a las clases

García.
Autor: Ing. Fernando Martín Del Campo
mayores del sistema, y ayudan a identificar nuevas
clases, la especialización se enfoca a la creación
individual, mas clases específicas que heredarán de
una clase mayor. La especialización es herencia con
la agregación y modificación de métodos para
resolver problemas específicos.

39
ESPECIALIZACIÓN - (2)
Clases Generalizadas:Transporte

Clases: Automóvil Bicicleta Avión

Clases
Especializadas: Comercial

Carro Trailer Montaña Carreras


Privado

Autor: Ing. Fernando Martín Del


Campo García.
40
POLIMORFISMO - (1)
 Le permite implementar las operaciones
heredadas en una subclase.

García.
Autor: Ing. Fernando Martín Del Campo
 Trabaja solamente cuando operaciones

comunes dan el mismo resultado


semántico.
 La implementación de una función

polimórfica depende del objeto al cual


es aplicado.
 Puede usarse solamente cuando hay

herencia. 41
POLIMORFISMO (2)

 P.Ej. Una superclase Balón incluye en sus

García.
Autor: Ing. Fernando Martín Del Campo
operaciones la operación lanzar. Sus subclases, tales
como Balon de tenis, o Balón de Soccer, heredarían
la misma operación. Sigue siendo la misma
operación en las tres clases, sin embargo el como y
el cuando usted lanza usted cada balón difiere uno
de otro.

42
POLIMORFISMO – (3)

 El
polimorfismo es un concepto importante
en los sistemas orientados a objetos que
soportan el reutilización y mantenimiento
de software.

lanza

lanza

Autor: Ing. Fernando Martín Del


Campo García.
43
POLIMORFISMO – (4)
OTRO EJEMPLO
 Considere una clase general llamada
InstrumentoDeEscritura.

García.
Autor: Ing. Fernando Martín Del Campo
 La clase tiene una operación llamada
escribe.
 ¿Qué objetos del salón de clase
pueden ser subclases de
InstrumentoDeEscritura?
 ¿Cómo es la operación polimórfica
escribe para cada objeto?
44
POLIMORFISMO – (5)
PUNTOS CLAVE.

 Los siguientes puntos son clave para


acordarnos acerca del polimorfismo:

García.
Autor: Ing. Fernando Martín Del Campo
 El polimorfismo esta basado en la herencia.
 El polimorfismo puede ser aplicado a cualquier
operación que es heredada de una superclase
 Las subclases sobreponen o sobre-escriben la
operación heredada para reflejar mejor esta
para las acciones de sus objetos , proveyendo
una mejor forma de operación, de aquí el
término de polimorfismo.
45
CLASES ABSTRACTAS – (1)

 Una clase con por lo menos una operación


abstracta es una clase abstracta.

García.
Autor: Ing. Fernando Martín Del Campo
 Una subclase de una clase abstracta necesita
proveer una implementación de todas las
operaciones abstractas o de los contrario también
será una clase abstracta.
 Una clase abstracta no puede ser instanciada
( usted no puede crear objetos de una clase abstracta ).
 Lasoperaciones abstractas de una clase abstracta
son simplemente declarativos.
46
CLASES ABSTRACTAS – (2)
EJEMPLO

 Considere implementar clases para un circulo ,


rectángulo, y triángulo.

García.
Autor: Ing. Fernando Martín Del Campo
 Las operaciones para estas clases deben incluir
operaciones como setColor y setBorderStyle.
 Puede decidir crear una clase abstracta llamada
figura con dos operaciones abstractas: setColor
y setBorderStyle
 Las subclases deben sobre-escribir o
sobreponer las operaciones abstractas y
proveer código de implementación que tenga
sentido para cada subclase de figura. 47
RESUMEN

 Ud. Debería definir hasta este momento los

García.
Autor: Ing. Fernando Martín Del Campo
siguientes términos:
 Clase
 Objeto

 Generalización

 Herencia

 Sobreponer o Sobre – escritura

 Especialización

 Polimorfismo

 Clase abstracta

48

Вам также может понравиться