3 Programación Orientada a Objetos
-
Upload
annimartinez -
Category
Documents
-
view
221 -
download
0
Transcript of 3 Programación Orientada a Objetos
-
8/17/2019 3 Programación Orientada a Objetos
1/73
Curso Lenguaje de Programación Java
-
8/17/2019 3 Programación Orientada a Objetos
2/73
-
8/17/2019 3 Programación Orientada a Objetos
3/73
Programación #rientada a #bjetos$
-
8/17/2019 3 Programación Orientada a Objetos
4/73
Encapsulamiento
%na posible denición deencapsulamiento ser&a' la capacidadde tiene un objeto de ocultar dele(terior su implementación$
A la parte visible del objeto se lellama inter)a*$
-
8/17/2019 3 Programación Orientada a Objetos
5/73
Encapsulamiento
+Por ,ué es necesario elencapsulamiento- public class Persona {
public String nombre;
public String apellidos; public float peso;
}
public class TestPersona {public static void
main(String[] args){Persona tu.tu / new Persona();tu$nombre / 0Juanita0.tu$apellidos / 0Pere*1on*ale*0.
tu.peso = - !."#;
-
8/17/2019 3 Programación Orientada a Objetos
6/73
Encapsulamiento
+Cómo resolvemos este problema-public class Persona {
public !tring nombre.public !tring apellidos.
private $oat peso;public $oat getPeso(){
return peso;%public void setPeso($oatpeso){
i#(peso &=!){t'is.peso =peso;%
%2
public class TestPersona {public static voidmain(String[] args){
Persona tu.tu / new Persona();tu$nombre / 0Juanita0.tu$apellidos / 0Pere*1on*ale*0.
tu.setPeso(- !."#);2
2
-
8/17/2019 3 Programación Orientada a Objetos
7/73
Encapsulamiento
Pero un buen dise3o #rientado a#bjetos implementaráencapsulamiento en todos losatributos del objeto ,uedandonuestro ejemplo como sigue:
-
8/17/2019 3 Programación Orientada a Objetos
8/73
Encapsulamiento
public class Persona {private String nombre;private String apellidos;private $oat peso;public String getpellidos() {
return apellidos;%
public void setpellidos(Stringapellidos) {
t'is.apellidos = apellidos;%public String getombre() {
return nombre;%public void setombre(String nombre){
t'is.nombre = nombre;%public $oat getPeso(){
return peso;%public void setPeso($oat peso){
i#(peso &=!){ t'is.peso = peso;%%
2
-
8/17/2019 3 Programación Orientada a Objetos
9/73
Encapsulamiento
%na clase ,ue encapsule todos susatributos es dise3ada pensado en el)uturo' por ,ue es muc4o másreutili*able' como lo veremos másadelante en 4erencia 5 sobre"escritura de métodos$
-
8/17/2019 3 Programación Orientada a Objetos
10/73
-
8/17/2019 3 Programación Orientada a Objetos
11/73
Programación #rientada a #bjetos
-
8/17/2019 3 Programación Orientada a Objetos
12/73
Constructores
En la P## se trabajan objetos' todoslos objetos tienen ,ue serconstruidos' la tarea de construir unobjeto recae en el constructor$
Los constructores se utili*an parainiciali*ar las variables atributo de laclase$
-
8/17/2019 3 Programación Orientada a Objetos
13/73
Constructores
Los constructores son estructuras mu5parecidas a los métodos' con algunasdi)erencias$
!e ejecutan automáticamente$ ;o tiene tipo de retorno$
!e llaman e(actamente igual a la clase$
El constructor va después de la palabra
reservada ne
-
8/17/2019 3 Programación Orientada a Objetos
14/73
Constructores
Ejercicio de Constructores$
vion
"marca: !tring"modelo: !tring"tipo: !tring"numero7ePla*as: int"numeroMotores: int"peso: 8oat"alturaMa(ima: 8oat"numero#peradores: int
6getMarca9: !tring
6setMarca9marca: !tring: void6$$$$96Avion96Avion9marca: !tring6Avion9marca: !tring' modelo: !tring6Avion9marca: !tring' modelo: !tring' tipo: !tring6Avion9marca: !tring' modelo: !tring' tipo: !tring' numeroPla*as: int
Testvion
6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
15/73
Constructores
#tro ejercicio de constructores$
Persona*
"nombre: !tring"apellidos: !tring"dia;acimiento: b5te"mes;acimiento: s4ort"a3o;acimiento: long")allecido: boolean
6$$$96Persona=9
6Persona=9nombre: !tring6Persona=9nombre: !tring' apellidos: !tring6Persona=9nombre: !tring' apellidos: !tring' dia: b5te' mes: s4ort' a3o: long6Persona=9nombre: !tring' apellidos: !tring' dia: b5te' mes: s4ort' a3o: long' )allecido: boolean
Persona*Test
6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
16/73
Constructores
La llamada a otros constructores enla misma clase se 4ace utili*ando lapalabra reservada t4is$ > entreparéntesis el numero de argumentos,ue utili*a el constructor' porejemplos:
t4is9marca t4is9marca' modelo$
-
8/17/2019 3 Programación Orientada a Objetos
17/73
Constructores
Modi,uemos la clase Avion para vercomo )unciona t4is9$
vion
"marca: !tring"modelo: !tring"tipo: !tring"numero7ePla*as: int"numeroMotores: int"peso: 8oat"alturaMa(ima: 8oat"numero#peradores: int
6getMarca9: !tring
6setMarca9marca: !tring: void6$$$$96Avion96Avion9marca: !tring6Avion9marca: !tring' modelo: !tring6Avion9marca: !tring' modelo: !tring' tipo: !tring6Avion9marca: !tring' modelo: !tring' tipo: !tring' numeroPla*as: int
Testvion
6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
18/73
Programación #rientada a #bjetos$
-
8/17/2019 3 Programación Orientada a Objetos
19/73
Herencia
La 4erencia esta en todas partes en Java' aun 5 cuando nosotros noescribamos código manejandointencionalmente la 4erencia$ ?odaslas clases ,ue nosotros escribimos4eredan a la Clase #bject$
+@ué es la 4erencia-
-
8/17/2019 3 Programación Orientada a Objetos
20/73
Herencia
Podemos denir 4erencia como lacapacidad ,ue tiene un objeto de 4acerpropias las caracter&sticas de un
segundo objeto$
Cuando una persona recibe las ri,ue*as
económicas de otra se le llama4erencia' de la misma manera unobjeto puede recibir las ri,ue*as9métodos 5 atributos de otro$
-
8/17/2019 3 Programación Orientada a Objetos
21/73
Herencia
La 4erencia se indica con la palabrareservada e(tendsB$ eamos unejemplo:public class Persona {
private String nombre;private String apellidos;private $oat peso;public String getpellidos() {
return apellidos;%$$$
2
public class +mpleado e,tendsPersona{
private String puesto;private $oat salario;public $oat getSalario(){return salario;2$$$
2
!uper clase
!ub clase
-
8/17/2019 3 Programación Orientada a Objetos
22/73
Herencia
Ejercicio de Herencia$
Constru5amos las clases anteriores 5constru5amos objetos de ambas 5observemos sus atributos 5 métodos$
-
8/17/2019 3 Programación Orientada a Objetos
23/73
Herencia
;otas importante sobre la 4erencia:
En java solo se puede utili*ar4erencia simple' es decir' una clasesolo puede tener una superclase$
Para simular la 4erencia mDltiple seutili*an las inter)aces' lo veremosmás adelante$
Los constructores no son 4eredados$
-
8/17/2019 3 Programación Orientada a Objetos
24/73
Encapsulamiento y
HerenciaEjercicio de epaso:Tele#ono
"marca: !tring"modelo: !tring
6$$$96contestar9: void64acerLlamada9numero: !tring: void
elular
"numeroMensajesEnviados: int
6$$$96enviarMensaje9mensaje: !tring' numero: !tring: boolean6recibirMensaje9mensaje: !tring' numero: !tring: boolean
elular*
"duracionFateria: 8oat"numeroLlamadas: int
6$$$9
elular/
6numeroGotos: int
6$$$96tomarGoto9: void
-
8/17/2019 3 Programación Orientada a Objetos
25/73
Programación #rientada a #bjetos
-
8/17/2019 3 Programación Orientada a Objetos
26/73
-
8/17/2019 3 Programación Orientada a Objetos
27/73
Modificadores de Acceso
?enemos cuatro di)erentes modicadoresde acceso en Java:
public
protected
de)ault 9no escribir un modicador
private
Mientras va5amos bajando en la lista dearriba cada modicador de acceso serámás restrictivo$
-
8/17/2019 3 Programación Orientada a Objetos
28/73
Modificadores de Acceso
La siguiente tabla muestra enresumen las caracter&sticas de losmodicadores de acceso:
0isibilidad Public
Protected 1e#ult
Private
7esde la misma clase !i !i !i !i
7esde cual,uier clase en elmismo pa,uete
!i !i !i ;o
7esde una subclase desdeel mismo pa,uete !i !i !i ;o
7esde una subclase )ueradel mismo pa,uete
!i !i' a travésde la4erencia
;o ;o
7esde cual,uier nosubclase )uera del mismo
pa,uete
!i ;o ;o ;o
-
8/17/2019 3 Programación Orientada a Objetos
29/73
Herencia
Hagamos algunos ejemplos pararevisar el comportamiento de losmodicadores de acceso$
-
8/17/2019 3 Programación Orientada a Objetos
30/73
Herencia
Cuando utili*amos la 4erencia' no4eredamos los constructores denuestra clase super$ Para poder
invocarlos utili*amos la palabrareservada super 5 entre paréntesis losargumentos ,ue utili*a el constructor$
super9.super9nmbre.
super9nombre' apellidos.
-
8/17/2019 3 Programación Orientada a Objetos
31/73
Herencia
Modi,uemos nuestro ejemplo paraver el uso de super9
Persona*
"nombre: !tring"apellidos: !tring"dia;acimiento: b5te"mes;acimiento: s4ort"a3o;acimiento: long")allecido: boolean
6$$$96Persona=9nombre: !tring6Persona=9nombre: !tring' apellidos: !tring6Persona=9nombre: !tring' apellidos: !tring' dia: b5te' mes: s4ort' a3o: long6Persona=9nombre: !tring' apellidos: !tring' dia: b5te' mes: s4ort' a3o: long' )allecido: boolean
Tests2erencia
6static main9args9: !tring:void
+mpleado
"puesto: !tring"salario: 8oat
6$$$96Empleado9nombre: !tring6Empleado9nombre: !tring' apellidos: !tring6Empleado9nombre: !tring' apellidos: !tring' puesto: !tring6Empleado9nombre: !tring' apellidos: !tring' puesto: !tring' salario: 8oat
-
8/17/2019 3 Programación Orientada a Objetos
32/73
Herencia
La palabra fnal puede ser colocadacomo un modicador de la clase porejemplo:
Indicando ,ue la clase no puede ser4eredada' la clase !tring es unejemplo de esto$
public 3nal class 45lase {
2
-
8/17/2019 3 Programación Orientada a Objetos
33/73
Herencia
La palabra reservada nal tambiénpuede ser colocada como unmodicador de un método' si secoloca indica ,ue un método nopuede ser sobre"escrito en lasubclase$ Más adelante revisaremos
esto$public class 45lase {
public 3nal voidmetodo(){
22
-
8/17/2019 3 Programación Orientada a Objetos
34/73
Programación #rientada a #bjetos
-
8/17/2019 3 Programación Orientada a Objetos
35/73
Polimorfismo
El polimorsmo puede ser denidocomo la capacidad de tratar a un objetode varias )ormas' por ejemplo' un
objeto empleado pude ser tratado comouna persona' al n 5 al cabo unempleado es una persona$
Ejemplo de una l&nea ,ue utilicépolimorsmo:
Persona p = new Empleado();
-
8/17/2019 3 Programación Orientada a Objetos
36/73
Polimorfismo
Persona p = new Empleado();
Lo ,ue estamos diciendo en la l&neaanterior es ,ue creamos un empleado'pero de ese empleado solo nosinteresa ver las caracter&sticas de su
persona$ Pero como empleadotambién tiene un puesto 5 un salario'pero no lo podremos ver$
-
8/17/2019 3 Programación Orientada a Objetos
37/73
Polimorfismo
Hagamos unejemplo de
Polimorsmo$
Tele#ono
"marca: !tring"modelo: !tring
6$$$96contestar9: void64acerLlamada9numero: !tring: void
elular
"numeroMensajesEnviados: int
6$$$96enviarMensaje9mensaje: !tring' numero: !tring: boolean6recibirMensaje9mensaje: !tring' numero: !tring: boolean
elular*
"duracionFateria: 8oat"numeroLlamadas: int
6$$$9
elular/
6numeroGotos: int
6$$$96tomarGoto9: void
Polimor3smo
6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
38/73
Polimorfismo
A4ora vemos comoutili*ar elpolimorsmo 5 elpaso de argumentosa métodos$
Tele#ono
"marca: !tring"modelo: !tring
6$$$96contestar9: void64acerLlamada9numero: !tring: void
elular
"numeroMensajesEnviados: int
6$$$96enviarMensaje9mensaje: !tring' numero: !tring: boolean6recibirMensaje9mensaje: !tring' numero: !tring: boolean
elular*
"duracionFateria: 8oat"numeroLlamadas: int
6$$$9
elular/
6numeroGotos: int
6$$$96tomarGoto9: void
Polimor3smo
64acerLlamada9tel: ?ele)ono: void6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
39/73
Programación #rientada a #bjetos9Herencia$
-
8/17/2019 3 Programación Orientada a Objetos
40/73
Sobre–Escritura de
MétodosLa sobre"escritura consiste en reempla*arel comportamiento de un método4eredado$
Para sobre"escribir un método simplemente4a5 ,ue volver a escribirlo en la sub clase$!olo pueden sobre"escribirse a,uellos
métodos ,ue sean 4eredados$' por ejemplolos métodos private no se 4eredan' por lotanto no se pueden sobre"escribir$
-
8/17/2019 3 Programación Orientada a Objetos
41/73
Sobre–Escritura de
MétodosEl siguiente es un ejemplo de sobre"escritura:
public class Tele#ononalogo{public void marcar(int numero){
Cosas para marcar con un telé)onoAnálogo2marcar9
2?ele)onoAnalogo
public class Tele#ono1igital e,tends
Tele#ononalogo{public void marcar(int numero){
Cosas para marcar con un telé)ono7igital2marcar9
2?ele)ono7igital
-
8/17/2019 3 Programación Orientada a Objetos
42/73
SobreEscritura de
MétodosEjemplo de sobre"escritura demétodos:
4ami#ero
6se(o: c4ar
6comer9!tring alimento: void6comunicarse9: void6caminar9: void6respirar9: void6aparear9pareja: Mami)ero: void
6 ira#a
6comer9!tring alimento: void6comunicarse9: void6caminar9: void6respirar9: void6aparear9pareja: Mami)ero: void
7eon
6comer9!tring alimento: void6comunicarse9: void6caminar9: void6respirar9: void6aparear9pareja: Mami)ero: void
2umano
6comer9alimento: !tring: void6comunicarse9: void6caminar9: void6respirar9: void6aparear9pareja: Mami)ero: void
-
8/17/2019 3 Programación Orientada a Objetos
43/73
Programación #rientada a #bjetos9Herencia$
-
8/17/2019 3 Programación Orientada a Objetos
44/73
SobreCarga de Métodos
La programación orientada a objetospermite el tener varios métodos conel mismo nombre pero con di)erentesrmas$ Por ejemplo podemos tener Kmétodos ,ue se llamen'suma9valor=:int' valorK:int 5
suma9valor=:8oat' valorK:8oat$
-
8/17/2019 3 Programación Orientada a Objetos
45/73
SobreCarga de Métodos
La rma de un método esta )ormadapor el nDmero 5 tipo de losargumentos$ En el ejemplo de losdos métodos suma' tenia el mismonDmero de argumentos sin embargoeran de di)erentes tipos' por lo tanto
es un método sobre"cargado$
-
8/17/2019 3 Programación Orientada a Objetos
46/73
SobreCarga de Métodos
Ejemplo de sobre"carga con valoresprimitivos:
Sobrearga
6metodo9: void6metodo9valor: b5te: void6metodo9valor.s4ort: void6metodo9valor: int: void6metodo9valor: long: void6metodo9valor: boolean: void6metodo9valor: 8oat: void6metodo9valor: double: void6metodo9valor=: b5te' valorK: b5te: void
6metodo9valor=: b5te' valorK: s4ort: void6metodo9valor=: b5te' valorK: int: void6metodo9valor=: 8oat' valorK: boolean: void
TestSobrearga
6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
47/73
SobreCarga de Métodos
Ejemplo de !obre"Carga cone)erencias:
Sobrearga8e#erencias
6metodo9: void6metodo9animal: Animal: void6metodo9leon: Leon: void6metodo9jira)a: J ira)a: void6metodo94umano: Humano: void
TestSobrearga8e#
6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
48/73
Programación #rientada a #bjetos9Herencia$
-
8/17/2019 3 Programación Orientada a Objetos
49/73
Casting con !ariables de"eferencia
El casting con variables de re)erencia)unciona un poco di)erente al castingcon primitivos$ El casting convariables de re)erencia sobre sepuede 4acer entre variables ,uetenga una relación de 4erencia$ > se
puede 4acer con algunasrestricciones ,ue veremos conejemplos$
-
8/17/2019 3 Programación Orientada a Objetos
50/73
Casting con !ariables de"eferencia
Ejemplos de casting de variables dere)erencia:
Jira)a jira)a / ne< Jira)a9.
Animal a / 9Animaljira)a.
ertebrado v / 9ertebradoa.a / 9Animalv.
jira)a / 9Jira)aa.
-
8/17/2019 3 Programación Orientada a Objetos
51/73
Casting con !ariables de"eferencia
Creemos una jerar,u&a de clasepara ver ,ue es el
casting dere)erencias
4ami#ero
"se(o: c4ar
6comer9!tring alimento: void6comunicarse9: void6caminar9: void6respirar9: void6aparear9pareja: Mami)ero: void
6 ira#a
6comer9!tring alimento: void6comunicarse9: void6caminar9: void6respirar9: void6aparear9pareja: Mami)ero: void
7eon
6comer9!tring alimento: void6comunicarse9: void6caminar9: void6respirar9: void6aparear9pareja: Mami)ero: void
2umano
6comer9alimento: !tring: void6comunicarse9: void6caminar9: void6respirar9: void6aparear9pareja: Mami)ero: void
0ertebrado
"numeroertebras: int
6get;umeroertebras9: int6set;umeroertebras9numero: int: void
Testasting8e#erencias
6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
52/73
Programación #rientada a #bjetos
-
8/17/2019 3 Programación Orientada a Objetos
53/73
Miembros Static
Los atributos 5 métodos ,ueescribimos en una clase 5 losmarcamos como static' )uncionan
di)erente$ Cuando a un miembro no leponemos la palabra static' se crea unacopia de el durante la instancia$ Perocon los miembros static no ocurre lomismo' por eso para llamarlos solotenemos ,ue poner el nombre de laclase 5 el nombre del miembro$
-
8/17/2019 3 Programación Orientada a Objetos
54/73
Miembros static
public class lase {
public int atributo*;
static public int atributo2;
2
Para llamar un miembro no static tengo ,ue4acer lo siguiente:
Clase miClase = new Clase();
miClase.atributo1 = 5;
Pero para llamar un miembro static solo tengo,ue 4acer lo as&:
Clase.atributo2 = 5;
-
8/17/2019 3 Programación Orientada a Objetos
55/73
Miembros Static
Hagamos un ejemplo para identicarcomo )uncionan los miembros static:
9icicleta
6static bicicletas: int"clave: int"marca: !tring"modelo: !tring"rodada: int
6Ficicleta96Ficicleta9marca: !tring
6Ficicleta9marca: !tring' modelo: !tring6Ficicleta9marca: !tring' modelo: !tring' rodada: int6$$$96avan*ar9: void6)renar9: void6cambiarelocidad9: int
Test9icicleta
6static main9args9: !tring:void
-
8/17/2019 3 Programación Orientada a Objetos
56/73
Miembros Static
Hagamos otro ejercicio
irculo
6static PI: double"radio: 8oat
6getadio9: 8oat6setadio9radio: 8oat: void6calcular7iametro9: 8oat6calcularPerimetro9
Testirculo
6static main9args: !tring: void
-
8/17/2019 3 Programación Orientada a Objetos
57/73
Programación #rientada a #bjetos
-
8/17/2019 3 Programación Orientada a Objetos
58/73
Clases Abstractas
%na clase abstracta es a,uella ,uetiene uno o varios métodos sinimplementar 9código 5 ,ue solo indica
su nombre 9rma$ A los métodos sinimplementación se les coloca la palabraabstract, si una clase tiene un métodoabstract' toda la clase también tiene
,ue ser abstract$
¡De una clase abstracta no podemoshacer instancias!
-
8/17/2019 3 Programación Orientada a Objetos
59/73
Clases Abstractas
Las clases abstractas no sirven paraincluir )uncionalidad ,ue varios tiposde objetos van a necesitar 5 no
,ueremos escribirla varias veces$ >utili*ando la 4erencias logramos ,ueunos objetos tenga esa
)uncionalidad$
-
8/17/2019 3 Programación Orientada a Objetos
60/73
Clases Abstractas
Ejemplo de la declaración de unaclase abstracta:
public abstract class 0e'iculo {public void encender(){%public abstract $oat acelerar();
2
class arro e,tends 0e'iculo{public $oat acelerar(){
return *!.!!#;22
-
8/17/2019 3 Programación Orientada a Objetos
61/73
Clases Abstractas
eamos un ejemplo del uso de clasesabstractas:
Veiculo
"marca: !tring"modelo: !tring6encendido: boolean"velocidadMa(ima: 8oat
6$$$96encender9: boolean6apagar9: boolean6acelerar9: 8oat6)renar9: 8oat
4otoicleta
6acelerar9: 8oat6)renar9: 8oat
arro
6acelerar9: 8oat6)renar9: 8oat
7anc'a
6acelerar9: 8oat6)renar9: 8oat
eroplano
6acelerar9: 8oat6)renar9: 8oat
-
8/17/2019 3 Programación Orientada a Objetos
62/73
Programación #rientada a #bjetos
-
8/17/2019 3 Programación Orientada a Objetos
63/73
#nterfaces
Las inter)aces en java son como clases enlas cuales solo colocamos métodosabstractos$ %na inter)a* nos permite
poner los métodos ,ue debe de tener unaclase$ %na inter)a* tampoco se puedeinstanciar 5 debe ser implementada poruna clase 9concreta ,ue esta obligada aponer )uncionalidad a los métodos$
?ambién puede ser implementada por unaclase abstracta sin embargo no estaobligada a implementar los métodos$
-
8/17/2019 3 Programación Orientada a Objetos
64/73
#nterfaces
%n ejemplo de declaración deinter)a* se 4ace de la siguientemanera:public inter#ace :nter#a {
int atributo = !;void metodo();
2
class lase implements :nter#a{public void metodo(){
22
-
8/17/2019 3 Programación Orientada a Objetos
65/73
#nterfaces
Cuando declaras un atributo en uninter)a* tiene los siguiente modicadorespor omisión:
public static
> un método:
public
Estos no pueden ser cambiados$
-
8/17/2019 3 Programación Orientada a Objetos
66/73
#nterfaces
%na inter)a* puede ser 4eredada porotra inter)aces ejemplo:
public inter#ace :nter#a* {int atributo = !;void metodo();
2
inter#ace :nter#a e,tends:nter#a*{
2
-
8/17/2019 3 Programación Orientada a Objetos
67/73
#nterfaces
%na inter)a* puede serimplementada por una claseabstracta' pero no es necesario
implementar todos sus métodos:public inter#ace :nter#a* {
int atributo = !;void metodo();
2
abstract class abstracta implements:nter#a*{
2
-
8/17/2019 3 Programación Orientada a Objetos
68/73
#nterfaces
Ejercicio de inter)aces:
0oladorNNInter)aceOO
6despegar9: void6aterri*ar9: void
4ovilNNInter)aceOO
6acelerar9incremento: 8oat: 8oat6)renar9decremento: 8oat: 8oat
uto4ovil
6acelerar9incremento: 8oat: 8oat6)renar9decremento: 8oat: 8oat
4otoicleta*
6acelerar9incremento: 8oat: 8oat6)renar9decremento: 8oat: 8oat
vion*
6acelerar9incremento: 8oat: 8oat6)renar9decremento: 8oat: 8oat
Pa
-
8/17/2019 3 Programación Orientada a Objetos
69/73
#nterfaces
#tro ejercicio de inter)aces:
0oladorNNInter)aceOO
6despegar9: void6aterri*ar9: void
4ovilNNInter)aceOO
6acelerar9incremento: 8oat: 8oat6)renar9decremento: 8oat: 8oat
"uto#o$il
6acelerar9incremento: 8oat: 8oat6)renar9decremento: 8oat: 8oat
#otoCicleta1
6acelerar9incremento: 8oat: 8oat6)renar9decremento: 8oat: 8oat
"$ion1
6acelerar9incremento: 8oat: 8oat6)renar9decremento: 8oat: 8oat6moverAlerones9: void
"$e
6despegar9: void6aterri*ar9: void6batirAlas9: void
2alcon anario 9oing * 1ucatiSuper9i>e ?awasa>iin
-
8/17/2019 3 Programación Orientada a Objetos
70/73
#nterfaces
eamos como utili*ar el polimorsmocon las clases abstractas 5 lasinter)aces:
olador volador / ne< Halcon9.
Ave ave / ne< Canarioi9.
Hagamos un ejemplo
-
8/17/2019 3 Programación Orientada a Objetos
71/73
Ejercicios de "epaso
-
8/17/2019 3 Programación Orientada a Objetos
72/73
-
8/17/2019 3 Programación Orientada a Objetos
73/73
Preguntas
+El instructor 4a sabido comunicar lasideas-
+Los contenidos 4an sido claros-
+El material 4a sido suciente paraentender los conceptos-
+@ué calicación le dar&as a el curso
4asta a4ora- +@ué aconsejar&as al instructor para
mejorar el curso 5 entiendas mejor losconceptos-