SlideShare una empresa de Scribd logo
1 de 49
INTRODUCCIÓN
• La POO (OOP) no es un lenguaje de
programación, sino un paradigma y
puede aplicarse a cualquier lenguaje.
• Está disponible o se aplica en todos los
lenguajes tradicionales de programación
(C se ha convertido en C++, Pascal en
Delphi, VB 6.0 incorporaba parte de la
POO y actualemnte VB.NET se encuentra
enteramente orientado a objetos
PARADIGMAS DE PROGRAMACIÓN
• “Un paradigma de programación indica un
método de realizar cómputos y la manera en
que se deben estructurar y organizar las
tareas que debe llevar a cabo un programa”.
• Se asocian a un determinado estilo de
programación.
• Los lenguajes de programación suelen
implementar, a menudo de forma parcial,
varios paradigmas.
PARADIGMA IMPERATIVO
• Describe cómo debe realizarse el cálculo, no el
porqué.
• Un cómputo consiste en una serie de
sentencias, ejecutadas según un control de flujo
explícito, que modifican el estado del
programa.
• Las variables son celdas de memoria que
contienen datos (o referencias), pueden ser
modificadas, y representan el estado del
programa.
• La sentencia principal es la asignación.
PARADIGMA IMPERATIVO
Programación lineal
• Cada línea de programa debe ir precedida de un
identificador (una etiqueta) para poder
referenciarla, para este ejemplo hemos utilizado
números, aunque podría utilizarse cualquier otro
identificador.
PARADIGMA IMPERATIVO
Programación estructurada
• Se busca que el programador elabore programas
sencillos y fáciles de entender.
• Para ello, la PE hace uso de tres estructuras básicas
de control:
– Estructura Secuencial
– Estructura Selectiva
– Estructura Repetitiva (ó Iterativa)
• Existe un teorema fundamental, el cual afirma que
cualquier programa, puede ser elaborado utilizando
únicamente las tres estructuras básicas (secuencia,
selección, iteración).
PARADIGMA IMPERATIVO
Ejemplo programación lineal
Ejemplo programación estructurada
PARADIGMA DECLARATIVO
• Describe que se debe calcular, sin explicitar
el cómo.
• No existe un orden de evaluación prefijado.
• No existe sentencia de asignación.
• Ejemplo prolog, Maude, SQL
PARADIGMA ORIENTACIÓN A
OBJETOS
• Ofrece mayor dominio sobre el programa
liberándonos aún más de su control.
• Hasta ahora, el control del programa era
tarea del programador, quien tenía que
controlar y mantener en su mente cada
proceso que se realizaba y los efectos
colaterales que pudieran surgir entre distintos
procesos, lo que llamamos colisiones.
PARADIGMA ORIENTACIÓN A
OBJETOS
• En POO, el programa se controla a sí
mismo y la mente del programador se
libera enormemente pudiendo realizar
aplicaciones mucho más complejas al
exigir menor esfuerzo de atención, ya que
los objetos son entidades autónomas que
se controlan a sí mismos.
• Los objetos nos impiden mezclar sus
datos con otros métodos distintos a los
suyos.
¿QUÉ NO ES LA POO?
No es un sistema de comunicación con los
programas basados en ratones, ventanas,
iconos, etc.
• Puesto que, normalmente, los lenguajes
de POO suelen presentar estas
características y habitualmente estos
entornos suelen desarrollarse con estas
técnicas, algunas personas tienden a
identificar la POO a entornos de este tipo.
¿QUÉ NO ES LA POO?
• No es un un lenguaje.
• De hecho las técnicas de POO
pueden utilizarse en cualquier
lenguaje conocido.
PROGRAMACIÓN ORIENTADA AL
OBJETO
• La POO, agrupa un conjunto de técnicas
que nos permiten desarrollar y mantener
mucho más fácilmente programas de una
gran complejidad.
• Concéptos fundamentales:
– Clase
– Objeto
– Encapsulación
– Herencia
– Polimorfismo
DEFINICIÓN DE CLASE
• Es una abstracción que hacemos de nuestra
experiencia sensible. El ser humano tiende a
agrupar seres o cosas (objetos) con
características similares en grupos (clases).
• Por ejemplo podemos reconocer un vaso en
cuanto lo vemos, aún cuando sean muchos
diferentes e incluso aun cuando ese modelo
concreto de vaso, no lo hayamos visto
nunca.
• El concepto de vaso es una abstracción de
nuestra experiencia sensible.
DEFINICIÓN DE CLASE
Como vemos, el ser humano tiende, de un modo
natural a clasificar los objetos del mundo que le
rodean en clases; son definiciones estructuralistas
de la naturaleza.
DEFINICIÓN DE CLASE
• Una clase puede tener
distintas características.
• En el caso del vaso
puede tener una
determinada forma, color,
material o un dibujo que
lo diferencie de otro.
• A estas características
llamaremos atributos.
DEFINICIÓN DE OBJETO
Según RAE:
1. m. Todo lo que puede ser materia de
conocimiento o sensibilidad de parte del
sujeto, incluso este mismo.
2. m. Cosa
Para POO:
1.- Es un conjunto de datos y métodos
DEFINICIÓN DE OBJETO
• Los datos (o propiedades) son lo que
antes hemos llamado características o
atributos, los métodos son los
comportamientos que pueden realizar.
• Lo importante de un sistema POO es que
ambos, datos y métodos están tan
intrínsecamente ligados, que forman una
misma unidad conceptual y operacional.
• En POO, no se pueden desligar los datos
de los métodos de un objeto.
EJEMPLOS DE OBJETO
DEFINICIÓN DE ENCAPSULACIÓN
• Una clase debe ser una estructura
cerrada, no se debe poder acceder a ella
si no es a través de los métodos definidos
para ella.
• Por lo tanto todos los datos de una clase
son privados y se accede a ellos
mediante métodos públicos.
• Cada dato o atributo de una clase deberá
tener un método accesor y/u otro
modificador.
DEFINICIÓN DE ENCAPSULACIÓN
• Siguendo con el ejemplo de un auto
(observándolo como objeto), actualmente
es posible saber el estado general del
mismo con solo ver un tablero.
• Si el auto tiene temperatura, habrá un
“método” llamado termómetro que nos lo
indica. De otra forma tendríamos que
acceder al motor y comprobarlo
manualmente.
ENCAPSULACIÓN EN VB.NET
• En VB.NET podemos y debemos aplicar
el concépto de encapsulación de la
siguiente forma.
• Definir atributos:
– Private _marca As String
– Private _color As String
ENCAPSULACIÓN EN VB.NET
• Para los métodos accesores y
modificadores debemos definir las
propiedades de la clase mediante la
intrucción Property.
• La instrucción Property genera un método
accesor Get y un método modificador Set.
• Por defecto una instrucción Property
contiene un Get y un Set, pero es posible
utilizar sólo uno de los dos.
ENCAPSULACIÓN EN VB.NET
ENCAPSULACIÓN EN VB.NET
• Al momento de establecer un valor a una
propiedad y de obtenerlo, se hace de la
misma forma que si fuera un atributo, solo
que ahora estaremos accediendo a la
propiedad (ya que el atributo se encuentra
oculto)
ENCAPSULACIÓN EN VB.NET
Set
Get
Dos aspectos de la encapsulación
• Existen dos aspectos a tener en cuenta en
la encapsulación.
– El primero ya lo vimos y es referido a las
propiedades simples que pueda tener un
objeto, que son de tipo de datos conocidos
(Integer, Double, String, Boolean, etc) las
cuales deben ser privadas y solo se accede a
ellas mediante métodos accesores y
modificadores.
Dos aspectos de la encapsulación
– El segundo es cuando un objeto se relaciona con
otro, y de alguna forma debemos establecer una
relación entre un objeto y otro.
– En el ejemplo vemos al objeto Empresa y al objeto
Empleado.
– Sabemos que Empresa tiene RazonSocial,
Direccion, RUT y además tiene un Trabajador que es
un Empleado.
Empresa
+RazonSocial: String
+Direccion: String
+RUT: Long
+Trabajador: Empleado
Empleado
+Cedula: Long
+Nombre: String
+FechaNacimiento: Date
+Telefono: String
+Direccion: String
Encapsulación: relación entre
objetos
• En ningún momento la Empresa debe conocer
propiedades que son propios del empleado, como por
ejemplo su cédula.
• Porque además de estar duplicando datos, estaríamos
incumpliendo el concepto de objeto donde dice que
cada objeto debe tener sólo sus propios métodos.
Empresa
+RazonSocial: String
+Direccion: String
+RUT: Long
+CedulaTrabajador: Long
Empleado
+Cedula: Long
+Nombre: String
+FechaNacimiento: Date
+Telefono: String
+Direccion: String
Encapsulación: relación entre
objetos
• Por lo tanto, siguiendo con el ejemplo, la
Empresa sólo sabe quien es su empleado, pero
nada más. Si desea conocer algún dato del
mismo, debe «preguntar» a su empleado y el
con gusto le brindará todos los datos que
necesite.
Empresa
+RazonSocial: String
+Direccion: String
+RUT: Long
+Trabajador: Empleado
Empleado
+Cedula: Long
+Nombre: String
+FechaNacimiento: Date
+Telefono: String
+Direccion: String
Dim cedulaEmp = Empresa.Trabajador.Cedula
CONSTRUCTORES
• Para poder utilizar un objeto, previamente
hemos de crearlo; esto es lo que hacemos
mediante el constructor de la clase.
• Para esto se utiliza un operador especial
proporcionado por el lenguaje de programación
que normalmente se llama ‘New’.
• El constructor o los constructores son notados
de una forma especial:
• En VB.NET:
CONSTRUCTORES
• Así, para crear un objeto de la clase Persona,
llamado Juan, escribiremos lo siguiente:
– Dim Juan As Persona
– Juan = New Persona()
• Le estamos diciendo al método constructor que
nos devuelva un nuevo objeto Persona.
CONSTRUCTORES
• Supongamos que este objeto tiene tres
datos y que queremos darle valores a
esos datos del objeto luego de creado:
Edad, Estatura y Color_Ojos. Haremos lo
siguiente:
Juan.Edad = 32
Juan.Estatura = 180
Juan.Color_Ojos = “Marron”
CREAR CONSTRUCTORES
• Habitualmente, los constructores de clase se crean de
tal modo que podamos hacer las dos cosas a la vez:
crear el objeto y dar valores a sus datos, veamos cómo:
Dim Juan As Persona
Juan = New Persona(32, 180, “Marron”)
• Para esto el constructor en la clase Persona de crearà
de la siguiente forma:
Public Sub New(ByVal pEdad As Integer, ByVal pEstatura As Integer,
ByVal pColor_Ojos As String)
Edad = pEdad
Estatura = pEstatura
Color_Ojos = pColor_Ojos
End Sub
VARIOS CONSTRUCTORES
• Normalmente las clases tiene más de un
constructor, de esta forma podemos crear
objetos e inicializarlos de distintas formas. Así,
podemos tener un constructor de la clase
Persona que recibe solo la edad, otro la edad y
la estatura, otro la edad, la estatura y el color de
ojos, etc.
• El número y tipo de constructores solo depende
de nuestras necesidades y del sentido común.
CONSTRUCTOR ARGUMENTO
CERO
• Existe un constructor especial al que se le llama
"constructor argumento-cero" y es aquel que no
recibe ningún parámetro.
• Él inicializa el objeto con los valores por defecto.
De este modo, podríamos tener un constructor
por defecto de la clase Persona que pusiera el
dato edad a 30, la estatura a 175 y el Color-de-
ojos a marrón. O todos los datos en cero, o
simplemente el cosntructor vacío.
• En todos las clases siempre es conveniente
crear un constructor de este tipo.
DEFINICIÓN DE HERENCIA
• Cualidad más importante de un sistema POO,
permitiendo ahorrar tiempo de codificación.
• Como todos entendemos lo que es la herencia
biológica, continuaremos utilizando este
ejemplo.
DEFINICIÓN DE HERENCIA
• La clase Conejo, hereda cualidades (métodos)
de todas las clases predecesoras (Hervívoros y
Mamíferos) pero a su vez posee métodos
propios. Hervívoros a su vez hereda de
Mamíferos (clase predesesora).
Mamíferos
Hervívoros
Conejo Caballo
Carnívoros
Oso Gato
Onivoros
Humanos Perro
DEFINICIÓN DE HERENCIA
• Veamos que hereda la clase Conejo de sus
clases padres:
Clase Que hereda
Mamíferos Se alimenta de leche materna
Hervívoros Come solo vegetales
Conejos Uno de sus alimentos es
zanahoria
• Por lo tanto podemos decir que un conejo se
alimenta de leche materna, come vegetales, y
su alimento preferido es la zanahoria.
DEFINICIÓN DE HERENCIA
• Cuando utilizamos herencia, es importante
tener en cuenta que todo objeto hijo puede
instanciarse dentro de un objeto del tipo
padre.
CLASE ABSTRACTA
• Una clase abstracta es aquella que
construimos para derivar de ella otras
clases, pero de la que no se puede
instanciar.
• Por ejemplo, la clase mamífero, no existe
como tal en la naturaleza, no existe
ningún ser que sea tan solo mamífero,
existen humanos, gatos, conejos, etc.
Todos ellos son mamíferos, pero no existe
un animal que sea solo mamífero.
CLASE ABSTRACTA
Mamíferos
Hervívoros
Conejo Caballo
Carnívoros
Oso Gato
Onivoros
Humanos Perro
• Del mismo modo, la clase que se halla al inicio de la
jerarquía de clases, normalmente es creada sólo para que
contenga aquellos datos y métodos comunes a todas las
clases que de ella derivan.
• En árboles complejos de jerarquías de clases, suele haber
más de una clase abstracta.
DEFINICIÓN DE POLIMORFISMO
• Por polimorfismo entendemos aquella
cualidad que poseen los objetos para
responder de distinto modo ante el mismo
mensaje.
• Tomemos las clases barco, avión y auto,
todas ellas derivadas de la clase padre
vehículo. Un vehículo cuenta con el
método Desplazarse, el cual será
heredado por las clases hijas.
DEFINICIÓN DE POLIMORFISMO
• Sin embargo, si bien todos son vehículos,
cada objeto se desplaza de una forma
distinta que cada una conoce.
DEFINICIÓN DE POLIMORFISMO
• En este caso si llamamos al métotodo
Desplazarse desde Auto, se ejecutará el
método de la clase padre, pero lo mismo pasará
si lo ejecutamos desde Barco o Avión.
Vehiculo
+Marca
+Modelo
+Desplazarse(pCoordenadas)
Barco
+Ancla
Avion
+Turbinas
Auto
+Ruedas
DEFINICIÓN DE POLIMORFISMO
• Para solucionar este problema, debemos
sobreescribir el método de la clase padre en
cada clase hija para que de esta forma un
mismo métdo, en este caso Desplazarse realice
distintas acciones dependiendo de cada objeto.
Vehiculo
+Marca
+Modelo
+Desplazarse(pCoordenadas)
Barco
+Ancla
+Desplazarse(pCoordenadas)
Avion
+Turbinas
+Desplazarse(pCoordenadas)
Auto
+Ruedas
+Desplazarse(pCoordenadas)
POLIMORFISMO - SOBRECARGA
• La sobrecarga puede ser considerada
como un tipo especial de polimorfismo que
casi todos los lenguajes de POO incluyen.
• Varios métodos pueden tener el mismo
nombre siempre y cuando el tipo de
parámetros que recibe o el número de
ellos sea diferente.
POLIMORFISMO - SOBRECARGA
• Por ejemplo la clase Hoja puede tener
tantos método Escribir() como tipos de
datos queramos escribir.
POLIMORFISMO - SOBRECARGA
• Luego al invocar la función, al momento
de asignar los parámetros, nos mostrará
las distintas opciones:
1 de 3: nos indica que existen 3
sobrecargas para el método Escribir

Más contenido relacionado

Similar a programacion orientada a objetos poo.pptx

Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
alexmoncada21
 
Inroduccion al paradigma de la programación orientada a objetos
Inroduccion al paradigma de la programación orientada a objetosInroduccion al paradigma de la programación orientada a objetos
Inroduccion al paradigma de la programación orientada a objetos
Jose Angel Rodriguez
 
Inroduccion al paradigma de la programación orientada a objetos
Inroduccion al paradigma de la programación orientada a objetosInroduccion al paradigma de la programación orientada a objetos
Inroduccion al paradigma de la programación orientada a objetos
Jose Angel Rodriguez
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
johnny herrera
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
Andrés
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
wellington018
 

Similar a programacion orientada a objetos poo.pptx (20)

Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
metodologia-de-programación orientada a Objetos
metodologia-de-programación orientada a Objetosmetodologia-de-programación orientada a Objetos
metodologia-de-programación orientada a Objetos
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
Programacion Orientada Objetos.pdf
Programacion Orientada Objetos.pdfProgramacion Orientada Objetos.pdf
Programacion Orientada Objetos.pdf
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Introducción a la PPO
 Introducción a la PPO Introducción a la PPO
Introducción a la PPO
 
Programacion orientada objeto (poo)
Programacion orientada objeto (poo)Programacion orientada objeto (poo)
Programacion orientada objeto (poo)
 
Inroduccion al paradigma de la programación orientada a objetos
Inroduccion al paradigma de la programación orientada a objetosInroduccion al paradigma de la programación orientada a objetos
Inroduccion al paradigma de la programación orientada a objetos
 
Inroduccion al paradigma de la programación orientada a objetos
Inroduccion al paradigma de la programación orientada a objetosInroduccion al paradigma de la programación orientada a objetos
Inroduccion al paradigma de la programación orientada a objetos
 
Elemtos de programacion
Elemtos de programacionElemtos de programacion
Elemtos de programacion
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
Compu 1
Compu 1Compu 1
Compu 1
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Tc2 301403 21
Tc2 301403 21Tc2 301403 21
Tc2 301403 21
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 

Más de Davilito Oso (8)

CURSO DE VERANO DE PROGRAMACION UNO 2023
CURSO DE VERANO DE PROGRAMACION UNO 2023CURSO DE VERANO DE PROGRAMACION UNO 2023
CURSO DE VERANO DE PROGRAMACION UNO 2023
 
Sistemas de gestion de la Calidad Charla.pdf
Sistemas de gestion de la Calidad Charla.pdfSistemas de gestion de la Calidad Charla.pdf
Sistemas de gestion de la Calidad Charla.pdf
 
Eyling Diagramas Bi Manual y Hombre Maquina.pdf
Eyling Diagramas Bi Manual y Hombre Maquina.pdfEyling Diagramas Bi Manual y Hombre Maquina.pdf
Eyling Diagramas Bi Manual y Hombre Maquina.pdf
 
Introduccion a la Cadenna de Suministro - copia.pptx
Introduccion a la Cadenna de Suministro - copia.pptxIntroduccion a la Cadenna de Suministro - copia.pptx
Introduccion a la Cadenna de Suministro - copia.pptx
 
Teoria de la Calidad ISO.ppt
Teoria de la Calidad ISO.pptTeoria de la Calidad ISO.ppt
Teoria de la Calidad ISO.ppt
 
Sesion 3_27082022.pptx
Sesion 3_27082022.pptxSesion 3_27082022.pptx
Sesion 3_27082022.pptx
 
Sesion 2.pptx
Sesion 2.pptxSesion 2.pptx
Sesion 2.pptx
 
Sesion 1_19082022.pptx
Sesion 1_19082022.pptxSesion 1_19082022.pptx
Sesion 1_19082022.pptx
 

Último

647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
MirkaCBauer
 
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJHInmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Vivafornai
 
S01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfS01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdf
SalomeRunco
 

Último (20)

Balance materia y energia procesos de Secado
Balance materia y energia procesos de SecadoBalance materia y energia procesos de Secado
Balance materia y energia procesos de Secado
 
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...
 
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPODIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
 
subestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicassubestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicas
 
Semana 1 - Introduccion - Fluidos - Unidades.pptx
Semana 1 - Introduccion - Fluidos - Unidades.pptxSemana 1 - Introduccion - Fluidos - Unidades.pptx
Semana 1 - Introduccion - Fluidos - Unidades.pptx
 
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
 
50870516-hidroponia. descargado en novppt
50870516-hidroponia. descargado en novppt50870516-hidroponia. descargado en novppt
50870516-hidroponia. descargado en novppt
 
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
 
Matematica Basica Limites indeterminados
Matematica Basica Limites indeterminadosMatematica Basica Limites indeterminados
Matematica Basica Limites indeterminados
 
Practica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdfPractica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdf
 
Cuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdfCuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdf
 
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdfMyoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
 
Diseño digital - M. Morris Mano - 3ed.pdf
Diseño digital - M. Morris Mano - 3ed.pdfDiseño digital - M. Morris Mano - 3ed.pdf
Diseño digital - M. Morris Mano - 3ed.pdf
 
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJHInmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
 
S01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfS01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdf
 
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docxESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
 
UNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxUNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptx
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf
 
DIAGRAMAS PID automatizacion y control.ppt
DIAGRAMAS PID automatizacion y control.pptDIAGRAMAS PID automatizacion y control.ppt
DIAGRAMAS PID automatizacion y control.ppt
 

programacion orientada a objetos poo.pptx

  • 1.
  • 2. INTRODUCCIÓN • La POO (OOP) no es un lenguaje de programación, sino un paradigma y puede aplicarse a cualquier lenguaje. • Está disponible o se aplica en todos los lenguajes tradicionales de programación (C se ha convertido en C++, Pascal en Delphi, VB 6.0 incorporaba parte de la POO y actualemnte VB.NET se encuentra enteramente orientado a objetos
  • 3. PARADIGMAS DE PROGRAMACIÓN • “Un paradigma de programación indica un método de realizar cómputos y la manera en que se deben estructurar y organizar las tareas que debe llevar a cabo un programa”. • Se asocian a un determinado estilo de programación. • Los lenguajes de programación suelen implementar, a menudo de forma parcial, varios paradigmas.
  • 4. PARADIGMA IMPERATIVO • Describe cómo debe realizarse el cálculo, no el porqué. • Un cómputo consiste en una serie de sentencias, ejecutadas según un control de flujo explícito, que modifican el estado del programa. • Las variables son celdas de memoria que contienen datos (o referencias), pueden ser modificadas, y representan el estado del programa. • La sentencia principal es la asignación.
  • 5. PARADIGMA IMPERATIVO Programación lineal • Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para este ejemplo hemos utilizado números, aunque podría utilizarse cualquier otro identificador.
  • 6. PARADIGMA IMPERATIVO Programación estructurada • Se busca que el programador elabore programas sencillos y fáciles de entender. • Para ello, la PE hace uso de tres estructuras básicas de control: – Estructura Secuencial – Estructura Selectiva – Estructura Repetitiva (ó Iterativa) • Existe un teorema fundamental, el cual afirma que cualquier programa, puede ser elaborado utilizando únicamente las tres estructuras básicas (secuencia, selección, iteración).
  • 7. PARADIGMA IMPERATIVO Ejemplo programación lineal Ejemplo programación estructurada
  • 8. PARADIGMA DECLARATIVO • Describe que se debe calcular, sin explicitar el cómo. • No existe un orden de evaluación prefijado. • No existe sentencia de asignación. • Ejemplo prolog, Maude, SQL
  • 9. PARADIGMA ORIENTACIÓN A OBJETOS • Ofrece mayor dominio sobre el programa liberándonos aún más de su control. • Hasta ahora, el control del programa era tarea del programador, quien tenía que controlar y mantener en su mente cada proceso que se realizaba y los efectos colaterales que pudieran surgir entre distintos procesos, lo que llamamos colisiones.
  • 10. PARADIGMA ORIENTACIÓN A OBJETOS • En POO, el programa se controla a sí mismo y la mente del programador se libera enormemente pudiendo realizar aplicaciones mucho más complejas al exigir menor esfuerzo de atención, ya que los objetos son entidades autónomas que se controlan a sí mismos. • Los objetos nos impiden mezclar sus datos con otros métodos distintos a los suyos.
  • 11. ¿QUÉ NO ES LA POO? No es un sistema de comunicación con los programas basados en ratones, ventanas, iconos, etc. • Puesto que, normalmente, los lenguajes de POO suelen presentar estas características y habitualmente estos entornos suelen desarrollarse con estas técnicas, algunas personas tienden a identificar la POO a entornos de este tipo.
  • 12. ¿QUÉ NO ES LA POO? • No es un un lenguaje. • De hecho las técnicas de POO pueden utilizarse en cualquier lenguaje conocido.
  • 13. PROGRAMACIÓN ORIENTADA AL OBJETO • La POO, agrupa un conjunto de técnicas que nos permiten desarrollar y mantener mucho más fácilmente programas de una gran complejidad. • Concéptos fundamentales: – Clase – Objeto – Encapsulación – Herencia – Polimorfismo
  • 14. DEFINICIÓN DE CLASE • Es una abstracción que hacemos de nuestra experiencia sensible. El ser humano tiende a agrupar seres o cosas (objetos) con características similares en grupos (clases). • Por ejemplo podemos reconocer un vaso en cuanto lo vemos, aún cuando sean muchos diferentes e incluso aun cuando ese modelo concreto de vaso, no lo hayamos visto nunca. • El concepto de vaso es una abstracción de nuestra experiencia sensible.
  • 15. DEFINICIÓN DE CLASE Como vemos, el ser humano tiende, de un modo natural a clasificar los objetos del mundo que le rodean en clases; son definiciones estructuralistas de la naturaleza.
  • 16. DEFINICIÓN DE CLASE • Una clase puede tener distintas características. • En el caso del vaso puede tener una determinada forma, color, material o un dibujo que lo diferencie de otro. • A estas características llamaremos atributos.
  • 17. DEFINICIÓN DE OBJETO Según RAE: 1. m. Todo lo que puede ser materia de conocimiento o sensibilidad de parte del sujeto, incluso este mismo. 2. m. Cosa Para POO: 1.- Es un conjunto de datos y métodos
  • 18. DEFINICIÓN DE OBJETO • Los datos (o propiedades) son lo que antes hemos llamado características o atributos, los métodos son los comportamientos que pueden realizar. • Lo importante de un sistema POO es que ambos, datos y métodos están tan intrínsecamente ligados, que forman una misma unidad conceptual y operacional. • En POO, no se pueden desligar los datos de los métodos de un objeto.
  • 20. DEFINICIÓN DE ENCAPSULACIÓN • Una clase debe ser una estructura cerrada, no se debe poder acceder a ella si no es a través de los métodos definidos para ella. • Por lo tanto todos los datos de una clase son privados y se accede a ellos mediante métodos públicos. • Cada dato o atributo de una clase deberá tener un método accesor y/u otro modificador.
  • 21. DEFINICIÓN DE ENCAPSULACIÓN • Siguendo con el ejemplo de un auto (observándolo como objeto), actualmente es posible saber el estado general del mismo con solo ver un tablero. • Si el auto tiene temperatura, habrá un “método” llamado termómetro que nos lo indica. De otra forma tendríamos que acceder al motor y comprobarlo manualmente.
  • 22. ENCAPSULACIÓN EN VB.NET • En VB.NET podemos y debemos aplicar el concépto de encapsulación de la siguiente forma. • Definir atributos: – Private _marca As String – Private _color As String
  • 23. ENCAPSULACIÓN EN VB.NET • Para los métodos accesores y modificadores debemos definir las propiedades de la clase mediante la intrucción Property. • La instrucción Property genera un método accesor Get y un método modificador Set. • Por defecto una instrucción Property contiene un Get y un Set, pero es posible utilizar sólo uno de los dos.
  • 25. ENCAPSULACIÓN EN VB.NET • Al momento de establecer un valor a una propiedad y de obtenerlo, se hace de la misma forma que si fuera un atributo, solo que ahora estaremos accediendo a la propiedad (ya que el atributo se encuentra oculto)
  • 27. Dos aspectos de la encapsulación • Existen dos aspectos a tener en cuenta en la encapsulación. – El primero ya lo vimos y es referido a las propiedades simples que pueda tener un objeto, que son de tipo de datos conocidos (Integer, Double, String, Boolean, etc) las cuales deben ser privadas y solo se accede a ellas mediante métodos accesores y modificadores.
  • 28. Dos aspectos de la encapsulación – El segundo es cuando un objeto se relaciona con otro, y de alguna forma debemos establecer una relación entre un objeto y otro. – En el ejemplo vemos al objeto Empresa y al objeto Empleado. – Sabemos que Empresa tiene RazonSocial, Direccion, RUT y además tiene un Trabajador que es un Empleado. Empresa +RazonSocial: String +Direccion: String +RUT: Long +Trabajador: Empleado Empleado +Cedula: Long +Nombre: String +FechaNacimiento: Date +Telefono: String +Direccion: String
  • 29. Encapsulación: relación entre objetos • En ningún momento la Empresa debe conocer propiedades que son propios del empleado, como por ejemplo su cédula. • Porque además de estar duplicando datos, estaríamos incumpliendo el concepto de objeto donde dice que cada objeto debe tener sólo sus propios métodos. Empresa +RazonSocial: String +Direccion: String +RUT: Long +CedulaTrabajador: Long Empleado +Cedula: Long +Nombre: String +FechaNacimiento: Date +Telefono: String +Direccion: String
  • 30. Encapsulación: relación entre objetos • Por lo tanto, siguiendo con el ejemplo, la Empresa sólo sabe quien es su empleado, pero nada más. Si desea conocer algún dato del mismo, debe «preguntar» a su empleado y el con gusto le brindará todos los datos que necesite. Empresa +RazonSocial: String +Direccion: String +RUT: Long +Trabajador: Empleado Empleado +Cedula: Long +Nombre: String +FechaNacimiento: Date +Telefono: String +Direccion: String Dim cedulaEmp = Empresa.Trabajador.Cedula
  • 31. CONSTRUCTORES • Para poder utilizar un objeto, previamente hemos de crearlo; esto es lo que hacemos mediante el constructor de la clase. • Para esto se utiliza un operador especial proporcionado por el lenguaje de programación que normalmente se llama ‘New’. • El constructor o los constructores son notados de una forma especial: • En VB.NET:
  • 32. CONSTRUCTORES • Así, para crear un objeto de la clase Persona, llamado Juan, escribiremos lo siguiente: – Dim Juan As Persona – Juan = New Persona() • Le estamos diciendo al método constructor que nos devuelva un nuevo objeto Persona.
  • 33. CONSTRUCTORES • Supongamos que este objeto tiene tres datos y que queremos darle valores a esos datos del objeto luego de creado: Edad, Estatura y Color_Ojos. Haremos lo siguiente: Juan.Edad = 32 Juan.Estatura = 180 Juan.Color_Ojos = “Marron”
  • 34. CREAR CONSTRUCTORES • Habitualmente, los constructores de clase se crean de tal modo que podamos hacer las dos cosas a la vez: crear el objeto y dar valores a sus datos, veamos cómo: Dim Juan As Persona Juan = New Persona(32, 180, “Marron”) • Para esto el constructor en la clase Persona de crearà de la siguiente forma: Public Sub New(ByVal pEdad As Integer, ByVal pEstatura As Integer, ByVal pColor_Ojos As String) Edad = pEdad Estatura = pEstatura Color_Ojos = pColor_Ojos End Sub
  • 35. VARIOS CONSTRUCTORES • Normalmente las clases tiene más de un constructor, de esta forma podemos crear objetos e inicializarlos de distintas formas. Así, podemos tener un constructor de la clase Persona que recibe solo la edad, otro la edad y la estatura, otro la edad, la estatura y el color de ojos, etc. • El número y tipo de constructores solo depende de nuestras necesidades y del sentido común.
  • 36. CONSTRUCTOR ARGUMENTO CERO • Existe un constructor especial al que se le llama "constructor argumento-cero" y es aquel que no recibe ningún parámetro. • Él inicializa el objeto con los valores por defecto. De este modo, podríamos tener un constructor por defecto de la clase Persona que pusiera el dato edad a 30, la estatura a 175 y el Color-de- ojos a marrón. O todos los datos en cero, o simplemente el cosntructor vacío. • En todos las clases siempre es conveniente crear un constructor de este tipo.
  • 37. DEFINICIÓN DE HERENCIA • Cualidad más importante de un sistema POO, permitiendo ahorrar tiempo de codificación. • Como todos entendemos lo que es la herencia biológica, continuaremos utilizando este ejemplo.
  • 38. DEFINICIÓN DE HERENCIA • La clase Conejo, hereda cualidades (métodos) de todas las clases predecesoras (Hervívoros y Mamíferos) pero a su vez posee métodos propios. Hervívoros a su vez hereda de Mamíferos (clase predesesora). Mamíferos Hervívoros Conejo Caballo Carnívoros Oso Gato Onivoros Humanos Perro
  • 39. DEFINICIÓN DE HERENCIA • Veamos que hereda la clase Conejo de sus clases padres: Clase Que hereda Mamíferos Se alimenta de leche materna Hervívoros Come solo vegetales Conejos Uno de sus alimentos es zanahoria • Por lo tanto podemos decir que un conejo se alimenta de leche materna, come vegetales, y su alimento preferido es la zanahoria.
  • 40. DEFINICIÓN DE HERENCIA • Cuando utilizamos herencia, es importante tener en cuenta que todo objeto hijo puede instanciarse dentro de un objeto del tipo padre.
  • 41. CLASE ABSTRACTA • Una clase abstracta es aquella que construimos para derivar de ella otras clases, pero de la que no se puede instanciar. • Por ejemplo, la clase mamífero, no existe como tal en la naturaleza, no existe ningún ser que sea tan solo mamífero, existen humanos, gatos, conejos, etc. Todos ellos son mamíferos, pero no existe un animal que sea solo mamífero.
  • 42. CLASE ABSTRACTA Mamíferos Hervívoros Conejo Caballo Carnívoros Oso Gato Onivoros Humanos Perro • Del mismo modo, la clase que se halla al inicio de la jerarquía de clases, normalmente es creada sólo para que contenga aquellos datos y métodos comunes a todas las clases que de ella derivan. • En árboles complejos de jerarquías de clases, suele haber más de una clase abstracta.
  • 43. DEFINICIÓN DE POLIMORFISMO • Por polimorfismo entendemos aquella cualidad que poseen los objetos para responder de distinto modo ante el mismo mensaje. • Tomemos las clases barco, avión y auto, todas ellas derivadas de la clase padre vehículo. Un vehículo cuenta con el método Desplazarse, el cual será heredado por las clases hijas.
  • 44. DEFINICIÓN DE POLIMORFISMO • Sin embargo, si bien todos son vehículos, cada objeto se desplaza de una forma distinta que cada una conoce.
  • 45. DEFINICIÓN DE POLIMORFISMO • En este caso si llamamos al métotodo Desplazarse desde Auto, se ejecutará el método de la clase padre, pero lo mismo pasará si lo ejecutamos desde Barco o Avión. Vehiculo +Marca +Modelo +Desplazarse(pCoordenadas) Barco +Ancla Avion +Turbinas Auto +Ruedas
  • 46. DEFINICIÓN DE POLIMORFISMO • Para solucionar este problema, debemos sobreescribir el método de la clase padre en cada clase hija para que de esta forma un mismo métdo, en este caso Desplazarse realice distintas acciones dependiendo de cada objeto. Vehiculo +Marca +Modelo +Desplazarse(pCoordenadas) Barco +Ancla +Desplazarse(pCoordenadas) Avion +Turbinas +Desplazarse(pCoordenadas) Auto +Ruedas +Desplazarse(pCoordenadas)
  • 47. POLIMORFISMO - SOBRECARGA • La sobrecarga puede ser considerada como un tipo especial de polimorfismo que casi todos los lenguajes de POO incluyen. • Varios métodos pueden tener el mismo nombre siempre y cuando el tipo de parámetros que recibe o el número de ellos sea diferente.
  • 48. POLIMORFISMO - SOBRECARGA • Por ejemplo la clase Hoja puede tener tantos método Escribir() como tipos de datos queramos escribir.
  • 49. POLIMORFISMO - SOBRECARGA • Luego al invocar la función, al momento de asignar los parámetros, nos mostrará las distintas opciones: 1 de 3: nos indica que existen 3 sobrecargas para el método Escribir

Notas del editor

  1. No aparece un lenguaje nuevo sin que incluya OOP (como es el caso de Java). Es por esto que intentaremos que todo lo que aquí se diga pueda ser aplicado a cualquier lenguaje OOP.