SlideShare una empresa de Scribd logo
Programacion Orientado a
Objetos
INING° PEDRO BELTRAN CANESSA
Programacion
Procedimiental
Programa:
– Secuencia de instrucciones que describen
la solucion
– Conjunto de llamadas a funciones
Codigo y datos: separados, sin ninguna
conección formal
– Codigo --> funciones
– Datos --> estructuras
Programacion Orientada a
Objetos
Todo es un objeto, descrito por caracteristicas
y acciones.
– Caracteristicas --> datos
– Acciones --> funciones que operan sobre los
datos
Programa:
– Conjunto de objetos que se relacionan entre
si,
– “Comunicandose" a traves de mensajes.
Quebrado a, b, c;
a = Quebrado_Pedir();
b = Quebrado_Pedir();
c = Quebrado_Sumar(a,b);

Quebrado a, b, c;
a = new Quebrado();
b = new Quebrado();
a.Pedir();
b.Pedir();
c = a.Sumar(b);
Lenguajes Orientados a Objetos
Simula
Smalltalk
C++
Object Pascal
Java
C#
Conceptos de Orientación a
Objetos
Abstracción
Visión simplificada de una realidad
– Enfocarse en lo esencial.
POO intenta abstraer lo mas importante de
un objeto:
Estado del objeto (Atributos).
Comportamiento del objeto (Métodos).

Comportamientos comunes entre objetos
relacionados.
Abstracción
Qué es un objeto?
 Un objeto es una abstracción de un conjunto de
cosas del mundo real de tal forma que:
 Todos los elementos del conjunto (las instancias)
tienen las mismas características.
 Todas las instancias están sujetas a y conforman
las mismas reglas.
Mundo Real

Software

Abstracción
Características de los objetos:





Identidad
Clasificación
Herencia
Polimorfismo

Estas características pueden ser usadas en
forma independiente, pero juntas se
complementan.
Identidad

Una bicicleta roja

Doris

caballo

Variable

antena parabólica

Mi Computadora

Dirección

unCredito
unDebito
unaCuenta
unaCuentadeAhorros

10001324
54647875
87896545
87020486

Una tabla de símbolos

Residencia de Doris

cuenta bancaria
Clasificación
Vehículo

Animal

Punto

Figura

(1,3)
(2,2)
(2,1)

(5,2.5)
Clases y Objetos
Class Template

Objetos
Clase
Es la plantillas que describe a un conjunto de
objeto, con los mismos
– atributos (variables)
– metodos (funciones)
– relaciones
Un objeto es una instancia de una clase.
Los objetos creados a partir de una clase,
– Tienen una estructura idéntica,
– Pero identidad propia
Clase
 Clase

--> TDA

– Tipo de Dato Abstracto
 Es

la definicion de un nuevo tipo de dato
 Un objeto es la variable de dicho tipo
 Ejemplo:
– Clase: Perro
– Objetos: Balto, Firulais, etc
Ejemplo de Clase

Clase Bicicleta
Atributos

Abstraídos en

Tamaño de frame
Tamaño de llanta
Material ...
Métodos
Cambio
Mover
Frenar...

Objetos bicicletas
Ejemplo de Clase
Java
UML
Alumno
- nombre: String
:
- domicilio: String

public class Alumno
{
private String nombre;
private String domicilio;
public Alumno(String n, String d)
{}
public void setNombre (String n)
{}
public String getNombre()
{}

+Alumno (n:String, d:String)
+setNombre(n:String):void
+getNombre():String

}
Instancia
 Una instancia es un objeto creado a partir
de una clase.

 La clase describe la estructura de la
instancia (información y comportamiento),
mientras que el estado actual de la instancia
es definido por las operaciones ejecutadas.
Instancia
Alumno
- nombre: String
:
- domicilio: String
+Alumno (n:String, d:String)
+setNombre(n:String):void
+getNombre():String
Creación de instancias u objetos a partir de la clase Alumno:
Alumno alumno1 = new Alumno(“Juan Perez”, “Las Peñas”);

alumno1: Alumno
nombre = Juan Perez
domicilio = Las Peñas
alumno2: Alumno
nombre = Abel García
domicilio = Los ceibos

Alumno alumno2 = new Alumno(“Abel Garcia”, “Los ceibos”);
Alumno alumno3 = new Alumno(“Jose Lopez”, “Centenario”);

alumno3: Alumno
nombre = Jose Lopez
domicilio = Centenario
Constructor
Método especial con el mismo nombre de la
clase.
Es llamado automáticamente cuando un
objeto de una clase es creado.
Se encarga inicializar las variables del objeto.
Puede tomar argumentos pero no pueden
retornar un valor.
Se puede tener más de un constructor en una
clase.
Constructor
 Permite instanciar objetos de la clase
Alumno
- nombre: String
:
- domicilio: String
+Alumno (n:String, d:String)
+setNombre(n:String):void
+getNombre():String

alumno1 = new Alumno(“Juan Perez”, “Las Peñas”);
alumno2

= new Alumno(“Abel Garcia”, “Los Ceibos”);
Ejemplo de Constructor
public class Count {
private int count;
public Count( ) {
count = 0;
}
public Count (int number) {
count = number;
}
}
Count contador = new Count( );
Relaciones entre objetos
• Tiene: a un objeto “pertenecen” objetos de
otras clases
– Ejemplo: Un computador tiene un teclado

• Conoce: un objeto conoce datos sobre
objetos de otra clase
– Ejemplo: un estudiante conoce en que curso
se registro

• Es un: un objeto comparte caracteristicas
con otra clase
– Ejemplo: un estudiante es una persona
ES UN: Herencia
Es un mecanismo para compartir atributos y
métodos entre clases.
Por la herencia se forman jerarquías de
clases (superclases y subclases).
Las subclases heredan los atributos y
métodos de las superclases.
Relación “es un”.
Superclase
Permite la reutilización de código.
Subclase
Ejemplo

Mamífero
# colorOjo:String
+ getcolorOjo():String

Perro
# frecLadrido:int
+ ladrar():void

PastorAlemán

Poodle

+ esAleman():void

+ esFrances():void

Gato
# frecMaullido:int
+maullar():void
Ejemplo de Herencia
Herencia
ANTES

DESPUES

Auto
maxFuel
maxNroDePasajeros
modelo
velocidad
acelerar()
desacelerar()
doblarAIzq()
doblarADcha()

Vehiculo
maxFuel
maxNroDePasajeros
velocidad

Avion
maxAltitud
maxFuel
maxNroDePasajeros
velocidad
nroDeMotores
acelerar()
desacelerar()
descender()
ascender()

superclase

acelerar()
desacelerar()

Auto
modelo

Avion
maxAltitud
nroDeMotores

doblarAIzq()
doblarADcha()

descender()
ascender()

subclases
Herencia
Java

UML

public class Vehiculo {

Vehiculo

}
public class Auto extends Vehiculo{
}
Auto

Avion

public class Avion extends Vehiculo{
}
Tipos de Herencia
 Simple:

una clase (clase hija) puede
heredar de otra clase (tener una clase
padre).
 Múltiple: una clase (clase hija) puede
heredar de otras clases padres (tener
varias clases padres).
Herencia Multiple
Herencia Múltiple
Problema de ambigüedad: unVehiculoAnfibio.Desplazarse();

Los lenguajes ofrecen mecanismos para deshacer la ambigüedad (en
C++ => unVehiculoAnfibio.VehiculoTerrestre::Desplazarse()).
Tipos de Clases


Clases abstractas


No pueden ser instanciadas.
 Usadas solamente como superclases.
 Organizan características comunes a algunas clases y especifican una
interfaz común para todas sus subclases.
 Pueden tener métodos abstractos (métodos sin implementación).


Clases concretas o comunes






Pueden ser instanciadas.
Tiene un comportamiento específico.
Implementan los métodos abstractos que heredan de las clases
abstractas.

Clases finales



Clases especiales que no pueden tener descendencia.
Unicamente permiten instanciar objetos.
Clases abstractas
Figura {Abstracto}

public abstract class Figura {
...
}
Circulo

Rectangulo

public class Circulo extends Figura{
...
}
public class Rectangulo extends Figura{
...
}

Figura f = new Figura();
Polimorfismo
 Significa que la misma operación puede comportarse
diferente en clases distintas.
 El polimorfismo está muy ligado a la herencia.
 Distintas instancias del mismo tipo interpretan el
mismo mensaje en diferentes formas.
 El polimorfismo requiere enlace dinámico
 Enlace dinámico: la llamada se resuelve en tiempo de
ejecución.
 Enlace estático: la llamada se resuelve en tiempo de
compilación
Ejemplo de Polimorfismo
Atributo:
Figura Geométrica

area
Método:

obtenerArea

Rectangulo

Circulo

Atributo:
radio

Atributos:

Métodos:

longitud

Circulo

ancho

obtenerArea

Métodos:

Rectangulo
obtenerArea
Ejemplo de Polimorfismo
método abstracto

Método
abstracto

Figura {abstracto}

Figura f = new Rectangulo();
int s = f.obtenerArea();

+obtenerArea()

Circulo
+obtenerArea()

Rectangulo
+obtenerArea()

método concreto
Method Overriding
La clase hija puede extender o redefinir
(override) el comportamiento de la clase
padre.
El Method Overriding (sobremontado de
método), permite implementar un mismo
método de una superclase, en una subclase.
Hay dos clases de overriding.
 Redefinición: Se reemplaza el método de la
superclase totalmente.
 Extensión: Se aumenta el método original con un
comportamiento adicional.
Method Overriding
Method Overloading
El Method Overloading (sobrecarga de
método) permite implementar polimorfismo.
El Method Overloading permite al programador
definir varios métodos con el mismo nombre,
pero con diferentes parámetros (cantidad y/o
tipo).
Ejmp:
 public void getCab( );
 public void getCab(String cabbieName);
 public void getCab(int numberOfPassengers);
Method-call Binding
 Method-call binding es conectar la llamada a un
método con el cuerpo de un método.
 Existen dos tipos de Method-call Binding:
 Early Binding (Unión Temprana).
 Cuando el binding es hecho por el compilador se lo conoce
como early binding.
 El early binding, es el único tipo de binding que tienen los
lenguajes estructurados.

 Dynamic Binding o Late Binding (Unión Tardía).
 Cuando el binding se hace en tiempo de ejecución se lo
conoce como late binding (Unión Tardía) o dynamic
binding.
 El receptor específico de un mensaje dado, no se conoce
usualmente, hasta el tiempo de ejecución, de tal forma que la
determinación de qué método se debe llamar, no se puede
determinar, hasta la ejecución.
Method-call Binding
square
draw_1

shape
user

draw
request

circle
draw_2

Figura {abstracto}

+obtenerArea()

Circulo
+obtenerArea()

Rectangulo
+obtenerArea()

Figura1 f = new Rectangulo();
int s = f.obtenerArea();
Interfases
La interfase es el medio de comunicación
entre objetos.
Una interface especifica un contrato que una
clase o componente debe ofrecer.
La interfase de un objeto está conformada
por los atributos y métodos públicos.
Los objetos deben definir las interfases de
todos los servicios que desean prestar.
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.
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.
Message Passing (Paso de
Mensaje)
Un objeto (cliente) puede comunicarse con
otro objeto (agente) solo a través del
mecanismo de message passing (paso de
mensaje).
Para que un objeto cliente, pueda enviar un
mensaje a un objeto agente, este último debe
tener definidas sus interfases.
El mensaje debe ser dirigido a un objeto
específico (el agente), y contener el nombre
del servicio (método) requerido.
Message Passing (Paso de
Mensaje)
La interpretación del mensaje depende del
receptor.
Un objeto de una clase responde a
cualquier mensaje definido en la clase. Ej:





float coordX = unRectangulo.DameCoordX();
unRectangulo.Mover(0, 20);
unRectangulo.Dibujar();
Mensajes

Objeto A

Datos

Objeto B

Datos

Datos

Datos

Datos
Datos

Datos
Datos
Mensajes
f:Factura

i:Item

obtenerPrecio()

a:Articulo

obtenerCosto()

calcularPrecio()

public class Factura {
...
i.obtenerPrecio();
...
}

public class Item {
public obtenerPrecio(){
a.obtenerCosto();
this.calcularPrecio();
}
private calcularPrecio(){
...
}
}
Estructura de una Clase
Ejemplos de clases en Java
public class Person {
private String name, address;

public String getName() {
return name;
}
public void setName(String n) {
name = n;
}
public String getAddress() {
return address;
}
public void setAddress(String adr) {
address = adr;
}
}
public class Payroll{
String name;
Person P = new Person();
P.setName(“Joe”);
//….más código
name = P.getName();
}
public abstract class FiguraGeometrica {
protected double area;
public abstract double obtenerArea();
}
public class Circulo extends FiguraGeometrica {
double radio;
public Circulo (double r) {
radio = r;
}
public double obtenerArea() {
area = 3.14 * (radio * radio);
return (area);
}
}
Ejercicio: Implementar la clase Rectángulo
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.

Más contenido relacionado

La actualidad más candente

POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura
1da4
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
Alessandra Marin
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
1da4
 
Ejercicios normalizacion
Ejercicios normalizacionEjercicios normalizacion
Ejercicios normalizacion
Erick Alexis Molleapaza Palomino
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
innovalabcun
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosGeovanny Yungán
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normal
ITCV
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
Angel Laverde ID
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
basilioj
 
Desarrollo Orientado a Objetos
Desarrollo Orientado a ObjetosDesarrollo Orientado a Objetos
Desarrollo Orientado a Objetos
Jorge Alberto Lorenzo Losada
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
boncastell
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacionoswchavez
 
Problemas de diseño de base de datos
Problemas de diseño de base de datosProblemas de diseño de base de datos
Problemas de diseño de base de datos
gonzalopomboza
 
Base de Datos para la Farmacia Chimú
Base de Datos para la Farmacia ChimúBase de Datos para la Farmacia Chimú
Base de Datos para la Farmacia Chimú
Luis Tafur Trujillo
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
Jose R. Hilera
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
Programación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 ExcepcionesProgramación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 Excepciones
José Antonio Sandoval Acosta
 

La actualidad más candente (20)

POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
Ejercicios normalizacion
Ejercicios normalizacionEjercicios normalizacion
Ejercicios normalizacion
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
 
Guía de ejercicios de normalizacion
Guía de ejercicios de normalizacionGuía de ejercicios de normalizacion
Guía de ejercicios de normalizacion
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normal
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 
Desarrollo Orientado a Objetos
Desarrollo Orientado a ObjetosDesarrollo Orientado a Objetos
Desarrollo Orientado a Objetos
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
 
Problemas de diseño de base de datos
Problemas de diseño de base de datosProblemas de diseño de base de datos
Problemas de diseño de base de datos
 
modelo entidad-relacion
modelo entidad-relacionmodelo entidad-relacion
modelo entidad-relacion
 
Base de Datos para la Farmacia Chimú
Base de Datos para la Farmacia ChimúBase de Datos para la Farmacia Chimú
Base de Datos para la Farmacia Chimú
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
Programación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 ExcepcionesProgramación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 Excepciones
 
Pruebas de escritorio
Pruebas de escritorioPruebas de escritorio
Pruebas de escritorio
 

Similar a PROGRAMACIÓN ORIENTADA A OBJETOS

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ec
Silvana Vargas
 
6. PROGRAMACION OO.pptx
6. PROGRAMACION OO.pptx6. PROGRAMACION OO.pptx
6. PROGRAMACION OO.pptx
Dieguess
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
Juan Rodríguez
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
jhordy2000
 
Dev c++ en oo
Dev c++ en ooDev c++ en oo
Dev c++ en oo
Diego Fernado Coronado
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosAntonio Palomares Sender
 
Conceptos POO PV
Conceptos POO PVConceptos POO PV
Conceptos POO PV
David Clara
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Javazousbabastre
 
Prototype-based, object-oriented programming
Prototype-based, object-oriented programmingPrototype-based, object-oriented programming
Prototype-based, object-oriented programming
Baltasar García Perez-Schofield
 
Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12
jack_corvil
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
Bernardo Cruz Martinez
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
José Antonio Sandoval Acosta
 
Programacion
ProgramacionProgramacion
Programacion
jalfonso9971
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
Karime Hernández
 

Similar a PROGRAMACIÓN ORIENTADA A OBJETOS (20)

Poo
PooPoo
Poo
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ec
 
Tema2
Tema2Tema2
Tema2
 
Java
JavaJava
Java
 
6. PROGRAMACION OO.pptx
6. PROGRAMACION OO.pptx6. PROGRAMACION OO.pptx
6. PROGRAMACION OO.pptx
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Dev c++ en oo
Dev c++ en ooDev c++ en oo
Dev c++ en oo
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Conceptos POO PV
Conceptos POO PVConceptos POO PV
Conceptos POO PV
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Prototype-based, object-oriented programming
Prototype-based, object-oriented programmingPrototype-based, object-oriented programming
Prototype-based, object-oriented programming
 
Clase 2
Clase 2 Clase 2
Clase 2
 
Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Programacion
ProgramacionProgramacion
Programacion
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 

Más de PEDRO OSWALDO BELTRAN CANESSA

Curso android studio
Curso android studioCurso android studio
Curso android studio
PEDRO OSWALDO BELTRAN CANESSA
 
Ds 004-2017-minedu-reglamento-de-la-ley-n-29988
Ds 004-2017-minedu-reglamento-de-la-ley-n-29988Ds 004-2017-minedu-reglamento-de-la-ley-n-29988
Ds 004-2017-minedu-reglamento-de-la-ley-n-29988
PEDRO OSWALDO BELTRAN CANESSA
 
Las 6 generaciones de computadoras
Las 6 generaciones de computadorasLas 6 generaciones de computadoras
Las 6 generaciones de computadoras
PEDRO OSWALDO BELTRAN CANESSA
 
E economie air_france
E economie air_franceE economie air_france
E economie air_france
PEDRO OSWALDO BELTRAN CANESSA
 
Ley reforma-magisterial-29944
Ley reforma-magisterial-29944Ley reforma-magisterial-29944
Ley reforma-magisterial-29944
PEDRO OSWALDO BELTRAN CANESSA
 
Manual técnicas de programación pbc
Manual técnicas de programación pbcManual técnicas de programación pbc
Manual técnicas de programación pbc
PEDRO OSWALDO BELTRAN CANESSA
 
1 gestión de_proyectos
1 gestión de_proyectos1 gestión de_proyectos
1 gestión de_proyectos
PEDRO OSWALDO BELTRAN CANESSA
 
Curso recursividad
Curso   recursividadCurso   recursividad
Curso recursividad
PEDRO OSWALDO BELTRAN CANESSA
 
Diseno creacion-bases-datos-completo
Diseno creacion-bases-datos-completoDiseno creacion-bases-datos-completo
Diseno creacion-bases-datos-completo
PEDRO OSWALDO BELTRAN CANESSA
 
Mini curso de java
Mini curso de javaMini curso de java
Mini curso de java
PEDRO OSWALDO BELTRAN CANESSA
 
Bromas informáticas
Bromas informáticasBromas informáticas
Bromas informáticas
PEDRO OSWALDO BELTRAN CANESSA
 
Manual de microcontroladores
Manual de microcontroladoresManual de microcontroladores
Manual de microcontroladores
PEDRO OSWALDO BELTRAN CANESSA
 
Teoría de Números
Teoría de NúmerosTeoría de Números
Teoría de Números
PEDRO OSWALDO BELTRAN CANESSA
 
Matemática Lúdica
Matemática LúdicaMatemática Lúdica
Matemática Lúdica
PEDRO OSWALDO BELTRAN CANESSA
 
Programacion en Java (II)
Programacion en Java (II)Programacion en Java (II)
Programacion en Java (II)
PEDRO OSWALDO BELTRAN CANESSA
 
PROGRAMACIÓN EN JAVA (I)
PROGRAMACIÓN EN JAVA (I)PROGRAMACIÓN EN JAVA (I)
PROGRAMACIÓN EN JAVA (I)
PEDRO OSWALDO BELTRAN CANESSA
 
Windows 7
Windows 7Windows 7
Instalacin de-moodle-1203175408925671-3
Instalacin de-moodle-1203175408925671-3Instalacin de-moodle-1203175408925671-3
Instalacin de-moodle-1203175408925671-3
PEDRO OSWALDO BELTRAN CANESSA
 
Introduccion a la programación orientada a objetos
Introduccion a la programación orientada a objetosIntroduccion a la programación orientada a objetos
Introduccion a la programación orientada a objetos
PEDRO OSWALDO BELTRAN CANESSA
 

Más de PEDRO OSWALDO BELTRAN CANESSA (20)

Curso android studio
Curso android studioCurso android studio
Curso android studio
 
Ds 004-2017-minedu-reglamento-de-la-ley-n-29988
Ds 004-2017-minedu-reglamento-de-la-ley-n-29988Ds 004-2017-minedu-reglamento-de-la-ley-n-29988
Ds 004-2017-minedu-reglamento-de-la-ley-n-29988
 
Las 6 generaciones de computadoras
Las 6 generaciones de computadorasLas 6 generaciones de computadoras
Las 6 generaciones de computadoras
 
E economie air_france
E economie air_franceE economie air_france
E economie air_france
 
Ley reforma-magisterial-29944
Ley reforma-magisterial-29944Ley reforma-magisterial-29944
Ley reforma-magisterial-29944
 
Manual técnicas de programación pbc
Manual técnicas de programación pbcManual técnicas de programación pbc
Manual técnicas de programación pbc
 
1 gestión de_proyectos
1 gestión de_proyectos1 gestión de_proyectos
1 gestión de_proyectos
 
Curso recursividad
Curso   recursividadCurso   recursividad
Curso recursividad
 
Diseno creacion-bases-datos-completo
Diseno creacion-bases-datos-completoDiseno creacion-bases-datos-completo
Diseno creacion-bases-datos-completo
 
Mini curso de java
Mini curso de javaMini curso de java
Mini curso de java
 
Bromas informáticas
Bromas informáticasBromas informáticas
Bromas informáticas
 
Manual de microcontroladores
Manual de microcontroladoresManual de microcontroladores
Manual de microcontroladores
 
Teoría de Números
Teoría de NúmerosTeoría de Números
Teoría de Números
 
Matemática Lúdica
Matemática LúdicaMatemática Lúdica
Matemática Lúdica
 
Programacion en Java (II)
Programacion en Java (II)Programacion en Java (II)
Programacion en Java (II)
 
PROGRAMACIÓN EN JAVA (I)
PROGRAMACIÓN EN JAVA (I)PROGRAMACIÓN EN JAVA (I)
PROGRAMACIÓN EN JAVA (I)
 
Windows 7
Windows 7Windows 7
Windows 7
 
Instalacin de-moodle-1203175408925671-3
Instalacin de-moodle-1203175408925671-3Instalacin de-moodle-1203175408925671-3
Instalacin de-moodle-1203175408925671-3
 
Introduccion a la programación orientada a objetos
Introduccion a la programación orientada a objetosIntroduccion a la programación orientada a objetos
Introduccion a la programación orientada a objetos
 
Contraseñas en seguridad informática
Contraseñas en seguridad informáticaContraseñas en seguridad informática
Contraseñas en seguridad informática
 

Último

biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 

Último (20)

biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 

PROGRAMACIÓN ORIENTADA A OBJETOS

  • 2. Programacion Procedimiental Programa: – Secuencia de instrucciones que describen la solucion – Conjunto de llamadas a funciones Codigo y datos: separados, sin ninguna conección formal – Codigo --> funciones – Datos --> estructuras
  • 3. Programacion Orientada a Objetos Todo es un objeto, descrito por caracteristicas y acciones. – Caracteristicas --> datos – Acciones --> funciones que operan sobre los datos Programa: – Conjunto de objetos que se relacionan entre si, – “Comunicandose" a traves de mensajes.
  • 4. Quebrado a, b, c; a = Quebrado_Pedir(); b = Quebrado_Pedir(); c = Quebrado_Sumar(a,b); Quebrado a, b, c; a = new Quebrado(); b = new Quebrado(); a.Pedir(); b.Pedir(); c = a.Sumar(b);
  • 5. Lenguajes Orientados a Objetos Simula Smalltalk C++ Object Pascal Java C#
  • 7. Abstracción Visión simplificada de una realidad – Enfocarse en lo esencial. POO intenta abstraer lo mas importante de un objeto: Estado del objeto (Atributos). Comportamiento del objeto (Métodos). Comportamientos comunes entre objetos relacionados.
  • 9. Qué es un objeto?  Un objeto es una abstracción de un conjunto de cosas del mundo real de tal forma que:  Todos los elementos del conjunto (las instancias) tienen las mismas características.  Todas las instancias están sujetas a y conforman las mismas reglas. Mundo Real Software Abstracción
  • 10. Características de los objetos:     Identidad Clasificación Herencia Polimorfismo Estas características pueden ser usadas en forma independiente, pero juntas se complementan.
  • 11. Identidad Una bicicleta roja Doris caballo Variable antena parabólica Mi Computadora Dirección unCredito unDebito unaCuenta unaCuentadeAhorros 10001324 54647875 87896545 87020486 Una tabla de símbolos Residencia de Doris cuenta bancaria
  • 13. Clases y Objetos Class Template Objetos
  • 14. Clase Es la plantillas que describe a un conjunto de objeto, con los mismos – atributos (variables) – metodos (funciones) – relaciones Un objeto es una instancia de una clase. Los objetos creados a partir de una clase, – Tienen una estructura idéntica, – Pero identidad propia
  • 15. Clase  Clase --> TDA – Tipo de Dato Abstracto  Es la definicion de un nuevo tipo de dato  Un objeto es la variable de dicho tipo  Ejemplo: – Clase: Perro – Objetos: Balto, Firulais, etc
  • 16. Ejemplo de Clase Clase Bicicleta Atributos Abstraídos en Tamaño de frame Tamaño de llanta Material ... Métodos Cambio Mover Frenar... Objetos bicicletas
  • 17. Ejemplo de Clase Java UML Alumno - nombre: String : - domicilio: String public class Alumno { private String nombre; private String domicilio; public Alumno(String n, String d) {} public void setNombre (String n) {} public String getNombre() {} +Alumno (n:String, d:String) +setNombre(n:String):void +getNombre():String }
  • 18. Instancia  Una instancia es un objeto creado a partir de una clase.  La clase describe la estructura de la instancia (información y comportamiento), mientras que el estado actual de la instancia es definido por las operaciones ejecutadas.
  • 19. Instancia Alumno - nombre: String : - domicilio: String +Alumno (n:String, d:String) +setNombre(n:String):void +getNombre():String Creación de instancias u objetos a partir de la clase Alumno: Alumno alumno1 = new Alumno(“Juan Perez”, “Las Peñas”); alumno1: Alumno nombre = Juan Perez domicilio = Las Peñas alumno2: Alumno nombre = Abel García domicilio = Los ceibos Alumno alumno2 = new Alumno(“Abel Garcia”, “Los ceibos”); Alumno alumno3 = new Alumno(“Jose Lopez”, “Centenario”); alumno3: Alumno nombre = Jose Lopez domicilio = Centenario
  • 20. Constructor Método especial con el mismo nombre de la clase. Es llamado automáticamente cuando un objeto de una clase es creado. Se encarga inicializar las variables del objeto. Puede tomar argumentos pero no pueden retornar un valor. Se puede tener más de un constructor en una clase.
  • 21. Constructor  Permite instanciar objetos de la clase Alumno - nombre: String : - domicilio: String +Alumno (n:String, d:String) +setNombre(n:String):void +getNombre():String alumno1 = new Alumno(“Juan Perez”, “Las Peñas”); alumno2 = new Alumno(“Abel Garcia”, “Los Ceibos”);
  • 22. Ejemplo de Constructor public class Count { private int count; public Count( ) { count = 0; } public Count (int number) { count = number; } } Count contador = new Count( );
  • 23. Relaciones entre objetos • Tiene: a un objeto “pertenecen” objetos de otras clases – Ejemplo: Un computador tiene un teclado • Conoce: un objeto conoce datos sobre objetos de otra clase – Ejemplo: un estudiante conoce en que curso se registro • Es un: un objeto comparte caracteristicas con otra clase – Ejemplo: un estudiante es una persona
  • 24. ES UN: Herencia Es un mecanismo para compartir atributos y métodos entre clases. Por la herencia se forman jerarquías de clases (superclases y subclases). Las subclases heredan los atributos y métodos de las superclases. Relación “es un”. Superclase Permite la reutilización de código. Subclase
  • 25. Ejemplo Mamífero # colorOjo:String + getcolorOjo():String Perro # frecLadrido:int + ladrar():void PastorAlemán Poodle + esAleman():void + esFrances():void Gato # frecMaullido:int +maullar():void
  • 28. Herencia Java UML public class Vehiculo { Vehiculo } public class Auto extends Vehiculo{ } Auto Avion public class Avion extends Vehiculo{ }
  • 29. Tipos de Herencia  Simple: una clase (clase hija) puede heredar de otra clase (tener una clase padre).  Múltiple: una clase (clase hija) puede heredar de otras clases padres (tener varias clases padres).
  • 31. Herencia Múltiple Problema de ambigüedad: unVehiculoAnfibio.Desplazarse(); Los lenguajes ofrecen mecanismos para deshacer la ambigüedad (en C++ => unVehiculoAnfibio.VehiculoTerrestre::Desplazarse()).
  • 32. Tipos de Clases  Clases abstractas  No pueden ser instanciadas.  Usadas solamente como superclases.  Organizan características comunes a algunas clases y especifican una interfaz común para todas sus subclases.  Pueden tener métodos abstractos (métodos sin implementación).  Clases concretas o comunes     Pueden ser instanciadas. Tiene un comportamiento específico. Implementan los métodos abstractos que heredan de las clases abstractas. Clases finales   Clases especiales que no pueden tener descendencia. Unicamente permiten instanciar objetos.
  • 33. Clases abstractas Figura {Abstracto} public abstract class Figura { ... } Circulo Rectangulo public class Circulo extends Figura{ ... } public class Rectangulo extends Figura{ ... } Figura f = new Figura();
  • 34. Polimorfismo  Significa que la misma operación puede comportarse diferente en clases distintas.  El polimorfismo está muy ligado a la herencia.  Distintas instancias del mismo tipo interpretan el mismo mensaje en diferentes formas.  El polimorfismo requiere enlace dinámico  Enlace dinámico: la llamada se resuelve en tiempo de ejecución.  Enlace estático: la llamada se resuelve en tiempo de compilación
  • 35. Ejemplo de Polimorfismo Atributo: Figura Geométrica area Método: obtenerArea Rectangulo Circulo Atributo: radio Atributos: Métodos: longitud Circulo ancho obtenerArea Métodos: Rectangulo obtenerArea
  • 36. Ejemplo de Polimorfismo método abstracto Método abstracto Figura {abstracto} Figura f = new Rectangulo(); int s = f.obtenerArea(); +obtenerArea() Circulo +obtenerArea() Rectangulo +obtenerArea() método concreto
  • 37. Method Overriding La clase hija puede extender o redefinir (override) el comportamiento de la clase padre. El Method Overriding (sobremontado de método), permite implementar un mismo método de una superclase, en una subclase. Hay dos clases de overriding.  Redefinición: Se reemplaza el método de la superclase totalmente.  Extensión: Se aumenta el método original con un comportamiento adicional.
  • 39. Method Overloading El Method Overloading (sobrecarga de método) permite implementar polimorfismo. El Method Overloading permite al programador definir varios métodos con el mismo nombre, pero con diferentes parámetros (cantidad y/o tipo). Ejmp:  public void getCab( );  public void getCab(String cabbieName);  public void getCab(int numberOfPassengers);
  • 40. Method-call Binding  Method-call binding es conectar la llamada a un método con el cuerpo de un método.  Existen dos tipos de Method-call Binding:  Early Binding (Unión Temprana).  Cuando el binding es hecho por el compilador se lo conoce como early binding.  El early binding, es el único tipo de binding que tienen los lenguajes estructurados.  Dynamic Binding o Late Binding (Unión Tardía).  Cuando el binding se hace en tiempo de ejecución se lo conoce como late binding (Unión Tardía) o dynamic binding.  El receptor específico de un mensaje dado, no se conoce usualmente, hasta el tiempo de ejecución, de tal forma que la determinación de qué método se debe llamar, no se puede determinar, hasta la ejecución.
  • 42. Interfases La interfase es el medio de comunicación entre objetos. Una interface especifica un contrato que una clase o componente debe ofrecer. La interfase de un objeto está conformada por los atributos y métodos públicos. Los objetos deben definir las interfases de todos los servicios que desean prestar.
  • 43. 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.
  • 44. 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.
  • 45. Message Passing (Paso de Mensaje) Un objeto (cliente) puede comunicarse con otro objeto (agente) solo a través del mecanismo de message passing (paso de mensaje). Para que un objeto cliente, pueda enviar un mensaje a un objeto agente, este último debe tener definidas sus interfases. El mensaje debe ser dirigido a un objeto específico (el agente), y contener el nombre del servicio (método) requerido.
  • 46. Message Passing (Paso de Mensaje) La interpretación del mensaje depende del receptor. Un objeto de una clase responde a cualquier mensaje definido en la clase. Ej:    float coordX = unRectangulo.DameCoordX(); unRectangulo.Mover(0, 20); unRectangulo.Dibujar();
  • 48. Mensajes f:Factura i:Item obtenerPrecio() a:Articulo obtenerCosto() calcularPrecio() public class Factura { ... i.obtenerPrecio(); ... } public class Item { public obtenerPrecio(){ a.obtenerCosto(); this.calcularPrecio(); } private calcularPrecio(){ ... } }
  • 50. Ejemplos de clases en Java public class Person { private String name, address; public String getName() { return name; } public void setName(String n) { name = n; } public String getAddress() { return address; } public void setAddress(String adr) { address = adr; } }
  • 51. public class Payroll{ String name; Person P = new Person(); P.setName(“Joe”); //….más código name = P.getName(); }
  • 52. public abstract class FiguraGeometrica { protected double area; public abstract double obtenerArea(); } public class Circulo extends FiguraGeometrica { double radio; public Circulo (double r) { radio = r; } public double obtenerArea() { area = 3.14 * (radio * radio); return (area); } } Ejercicio: Implementar la clase Rectángulo
  • 53. 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.