SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Conceptos de Programación
Orientada a Objetos
Univ. José Giménez
Facultad Politécnica - FP-UNA
Año 2010
¿Qué es un Objeto?
Los Objetos del Mundo Real comparten 2
características: Todos ellos tienen
● Estado
● Comportamiento.
Los perros tienen Estado (nombre, color, raza,
hambre) y Comportamiento (ladrar, traer algo,
mover la cola).
¿Qué es un Objeto?
Las bicicletas también tienen Estado (cambio
actual, revoluciones por minuto del pedal,
velocidad actual) y Comportamiento (cambiar
cambio, cambiar las revoluciones por minuto,
aplicar los frenos).
● Identificando el Estado y el Comportamiento de
los Objetos del Mundo Real es una gran forma
de comenzar a pensar en términos de
Programación Orientada a Objetos (POO).
¿Qué es un Objeto?
Ejemplo de Objetos
● Perro
● Escritorio
● Televisión
● Bicicleta
¿Qué es un Objeto?
Cuando diseñamos en POO, estas preguntas son
interesantes para definir Objetos:
● ¿Cuáles son los posibles Estados en que puede
estar este Objeto?
● ¿Cuáles son los posibles comportamientos que
este Objeto puede realizar?
¿Qué es un Objeto?
Ejemplos:
● Lampara de Escritorio
– Estado: prendido,apagado.
– Comportamiento: prender,apagar.
● Radio
– Estado: prendido,apagado,volumen actual, estación
actual.
– Comportamiento: prender, apagar, incrementar
volumen, decrementar volumen,
adelantar/atrasar, buscar canal,sintonizar.
¿Qué es un Objeto?
Los Objetos varían en complejidad.
Un objeto de software
¿Qué es un Objeto?
Los Objetos de Software son, conceptualmente,
similares a los Objetos del Mundo Real: ellos
también consisten de Estado y Comportamiento.
Un Objeto guarda su estado en campos (fields)
(variables en algunos lenguajes de
programación) y expone su comportamiento a
través de métodos (funciones en algunos
lenguajes de programación).
¿Qué es un Objeto?
Los métodos operan en el estado interno del
Objeto y sirven como el mecanismo principal
para la comunicación Objeto-a-Objeto.
Escondiendo el estado interno y requiriendo que
toda la interacción sea realizada a través de los
Métodos es conocida como Encapsulamiento de
los Datos (Data Encapsulation), un principio
fundamental de la POO.
Considere una bicicleta, por ejemplo.
¿Qué es un Objeto?
Una bicicleta modelada como Objeto de Software
¿Qué es un Objeto?
Atribuyendo Estados (velocidad actual,
revoluciones por minuto del pedal, cambio
actual) y proveyendo métodos para cambiar ese
Estado, el Objeto queda en control de como el
Mundo Exterior tiene permitido usarlo.
Por ejemplo, si la bicicleta solo tiene 6 cambios,
un método para cambiar los cambios puede
rechazar cualquier valor que es menor a 1 o
mayor a 6.
¿Qué es un Objeto?
Construyendo el código en Objetos de Software
individuales provee varios beneficios,
incluyendo:
● Modularidad: El código fuente de un Objeto
puede ser escrito y mantenido
independientemente de los códigos fuentes de
otros Objetos. Una vez creados, un Objeto
puede ser fácilmente dejado de lado dentro del
Sistema.
¿Qué es un Objeto?
● Ocultar Información: Interactuando solo con los
métodos de un Objeto, los detalles de su
implementación interna permanece oculto del
Mundo Exterior.
● Reutilización de Código: Si un Objeto ya existe
(seguramente escrito por otro desarrollador de
software), se puedes usar ese Objeto en nuestro
Programa. Esto permite que los especialistas
implementen/testeen/prueben complejos
Objetos específicos para una tarea, en el que se
puede confiar para correr en nuestro código.
¿Qué es un Objeto?
● Facilidad de Integración y de Prueba: Si un
Objeto particular se vuelve problemático, se
puede simplemente removerlo de la aplicación e
integrar un Objeto diferente en su reemplazo.
Esto es análogo arreglar problemas mecánicos
en el mundo real. Si se rompe una bombilla, se
lo reemplaza, no la máquina entera.
¿Qué es una Clase?
En el mundo real, siempre se encuentran muchos
Objetos individuales del mismo tipo. Pueden
haber miles de otras bicicletas en existencia,
todas de la misma marca y modelo. Cada
bicicleta fue construida del mismo conjunto de
Modelos y entonces contienen los mismos
componentes. En términos de Orientación a
Objeto, se dice que la bicicleta es una instancia
de la Clase de Objetos llamada Bicicletas. Una
clase es un Modelo del cual Objetos
individuales son creados.
¿Qué es una Clase?
La siguiente clase Bicicleta es una de las posibles
implementaciones de una bicicleta.
(Código Fuente de la Bicicleta)
¿Qué es una Clase?
El diseño de esta clase esta basado en los Objetos
bicicleta discutidos anteriormente. Los campos
cadence, speed y gear representan el Estado de
este Objeto, y los métodos (changeCadence,
changeGear, speedUp, etc) define su
interacción con el Mundo Exterior.
Esta es la clase BicycleDemo que crea 2 Objetos
Bicycle separados e invoca sus métodos.
(Código Fuente del Demo de la Bicicleta)
¿Qué es una Clase?
La salida de este test imprime la revolución por
minuto final, velocidad y cambio de las dos
bicicletas:
cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3
¿Qué es Herencia?
Diferentes tipos de Objetos regularmente tienen
cierta cosas en común entre si. Las bicicletas de
montaña, las bicicletas de camino y las
bicicletas en serie, por ejemplo, comparten las
características de las bicicletas (velocidad
actual, revoluciones por minuto actual, cambio
actual). Cada uno define características
adicionales que los hacen diferentes: las
bicicletas en serie tienen 2 asientos y 2
manubrios; las bicicletas de camino tienen
manubrios encorvados.
¿Qué es Herencia?
Algunas bicicletas de montaña anillos de cadena
adicionales, que les brinda un cambio de menor
proporción.
POO permite que las clases hereden los Estados y
Comportamientos comúnmente utilizadas de
otras clases. En este ejemplo, Bicycle se
convierte ahora la superclase de MountainBike,
RoadBike, y TandemBike. En el Lenguaje de
Programación Java, cada clase puede tener una
superclase directa, y cada superclase tiene el
potencial de un número ilimitado de subclases:
¿Qué es Herencia?
Una jerarquía de clases de bicicleta
¿Qué es Herencia?
La sintaxis para crear una subclase es simple. Al
comienzo de una declaración de clase, se usa la
palabra reservada extends, seguida del nombre
de la clase de la cual hereda:
class MountainBike extends Bicycle {
// new fields and methods defining a mountain
bike would go here
}
¿Qué es Herencia?
Esto brinda a MountainBike todos los mismo
campos y métodos que tiene Bicycle, además de
permitir que su código se concentre
exclusivamente en las características que lo
hacen único. Esto hace que el código para la
subclase sea fácil de leer. Sin embargo, se debe
documentar adecuadamente el estado y
comportamiento que cada superclase define, ya
que ese código no aparecerá en el código fuente
de casa subclase.
¿Qué es una Interfaz?
Los Objetos definen su interacción con el Mundo
Exterior a través de métodos que ellos exponen.
Los métodos forman la Interfaz del Objeto con el
Mundo Exterior.
Los botones al frente de un televisor, por ejemplo,
son la interfaz entre nosotros y el cableado
eléctrico dentro de la cubierta de plástico. Se
presiona el botón “Encender” para prender y
apagar el televisor.
En su forma más común, una interfaz es un grupo
de métodos relacionados con cuerpos vacíos.
¿Qué es una Interfaz?
El comportamiento de una bicicleta, si es
especificado como una interfaz, es como sigue:
interface Bicycle {
void changeCadence(int newValue); // wheel
revolutions per minute
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
¿Qué es una Interfaz?
Para implementar esta interfaz, el nombre de la
clase debe cambiar se usa la palabra clave
implements en la declaración de la clase:
class ACMEBicycle implements Bicycle {
// remainder of this class implemented as before
}
¿Qué es una Interfaz?
Implementar una interfaz permite a una clase
volverse más formal sobre el comportamiento que
promete proveer. Las interfaces forman un
contrato entre las clases y el mundo exterior, y su
contrato es obligado en tiempo de compilación por
el compilador. Si la clase dice que implementa una
interfaz, todos los métodos definidas por esa
interfaz deben aparecer en el código fuente antes
de que la clase se compile con éxito.
¿Qué es un Paquete?
Un paquete es un espacio de nombres que organiza
un conjunto de clase e interfaces relacionadas.
Conceptualmente, los paquetes son similares a las
carpetas de una computadora. E una carpeta se
guardan páginas HTML, imágenes en otra y los
scripts o aplicaciones en otra.
Preguntas y Ejercicios
● Los Objetos del Mundo Real contienen __ y __
● El estado de un Objeto de Software es almacenado
en __
● El Comportamiento de un Objeto de Software es
expuesto a través de __
● Ocultar datos internos del Mundo Exterior, y
accederlos a través de métodos expuestos
públicamente es conocido como __
● El Modelo para un Objeto de Software es llamado
__
Preguntas y Ejercicios
● El Comportamiento puede ser definido en una __ y
heredada en una __ usando la palabra clave __
● Un espacio de nombres que organiza clases e
interfaces por su funcionalidad es llamado __
● Crear nuevas clases para cada Objeto del Mundo
Real que observa.
● Por cada clase que creó, cree una interfaz que
defina su comportamiento, luego haga que la clase
lo implemente.
Referencias
● The Java Tutorials
– http://download.oracle.com/docs/cd/E17409_01/ja
vase/tutorial/index.html

Más contenido relacionado

Similar a POO Conceptos (20)

Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
POO
POOPOO
POO
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Fundamentos del Enfoque OO
Fundamentos del Enfoque OOFundamentos del Enfoque OO
Fundamentos del Enfoque OO
 
Expo
ExpoExpo
Expo
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
C# para desarrolladores VB6
C# para desarrolladores VB6C# para desarrolladores VB6
C# para desarrolladores VB6
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la poo
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 
Semana 2 Clases y Objetos en Java
Semana 2   Clases y Objetos en JavaSemana 2   Clases y Objetos en Java
Semana 2 Clases y Objetos en Java
 
Objeto
ObjetoObjeto
Objeto
 
Germán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGermán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo Framework
 
Cormo Framework
Cormo FrameworkCormo Framework
Cormo Framework
 
3 Bases De La OrientacióN A Objetos
3  Bases De La OrientacióN A Objetos3  Bases De La OrientacióN A Objetos
3 Bases De La OrientacióN A Objetos
 
Aprenda c++ avanzado
Aprenda c++ avanzadoAprenda c++ avanzado
Aprenda c++ avanzado
 
06 patrones
06 patrones06 patrones
06 patrones
 

Último

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
Condensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismoCondensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismosaultorressep
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Clase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxClase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxChristopherOlave2
 

Último (20)

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
Condensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismoCondensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismo
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Clase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxClase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptx
 

POO Conceptos

  • 1. Conceptos de Programación Orientada a Objetos Univ. José Giménez Facultad Politécnica - FP-UNA Año 2010
  • 2. ¿Qué es un Objeto? Los Objetos del Mundo Real comparten 2 características: Todos ellos tienen ● Estado ● Comportamiento. Los perros tienen Estado (nombre, color, raza, hambre) y Comportamiento (ladrar, traer algo, mover la cola).
  • 3. ¿Qué es un Objeto? Las bicicletas también tienen Estado (cambio actual, revoluciones por minuto del pedal, velocidad actual) y Comportamiento (cambiar cambio, cambiar las revoluciones por minuto, aplicar los frenos). ● Identificando el Estado y el Comportamiento de los Objetos del Mundo Real es una gran forma de comenzar a pensar en términos de Programación Orientada a Objetos (POO).
  • 4. ¿Qué es un Objeto? Ejemplo de Objetos ● Perro ● Escritorio ● Televisión ● Bicicleta
  • 5. ¿Qué es un Objeto? Cuando diseñamos en POO, estas preguntas son interesantes para definir Objetos: ● ¿Cuáles son los posibles Estados en que puede estar este Objeto? ● ¿Cuáles son los posibles comportamientos que este Objeto puede realizar?
  • 6. ¿Qué es un Objeto? Ejemplos: ● Lampara de Escritorio – Estado: prendido,apagado. – Comportamiento: prender,apagar. ● Radio – Estado: prendido,apagado,volumen actual, estación actual. – Comportamiento: prender, apagar, incrementar volumen, decrementar volumen, adelantar/atrasar, buscar canal,sintonizar.
  • 7. ¿Qué es un Objeto? Los Objetos varían en complejidad. Un objeto de software
  • 8. ¿Qué es un Objeto? Los Objetos de Software son, conceptualmente, similares a los Objetos del Mundo Real: ellos también consisten de Estado y Comportamiento. Un Objeto guarda su estado en campos (fields) (variables en algunos lenguajes de programación) y expone su comportamiento a través de métodos (funciones en algunos lenguajes de programación).
  • 9. ¿Qué es un Objeto? Los métodos operan en el estado interno del Objeto y sirven como el mecanismo principal para la comunicación Objeto-a-Objeto. Escondiendo el estado interno y requiriendo que toda la interacción sea realizada a través de los Métodos es conocida como Encapsulamiento de los Datos (Data Encapsulation), un principio fundamental de la POO. Considere una bicicleta, por ejemplo.
  • 10. ¿Qué es un Objeto? Una bicicleta modelada como Objeto de Software
  • 11. ¿Qué es un Objeto? Atribuyendo Estados (velocidad actual, revoluciones por minuto del pedal, cambio actual) y proveyendo métodos para cambiar ese Estado, el Objeto queda en control de como el Mundo Exterior tiene permitido usarlo. Por ejemplo, si la bicicleta solo tiene 6 cambios, un método para cambiar los cambios puede rechazar cualquier valor que es menor a 1 o mayor a 6.
  • 12. ¿Qué es un Objeto? Construyendo el código en Objetos de Software individuales provee varios beneficios, incluyendo: ● Modularidad: El código fuente de un Objeto puede ser escrito y mantenido independientemente de los códigos fuentes de otros Objetos. Una vez creados, un Objeto puede ser fácilmente dejado de lado dentro del Sistema.
  • 13. ¿Qué es un Objeto? ● Ocultar Información: Interactuando solo con los métodos de un Objeto, los detalles de su implementación interna permanece oculto del Mundo Exterior. ● Reutilización de Código: Si un Objeto ya existe (seguramente escrito por otro desarrollador de software), se puedes usar ese Objeto en nuestro Programa. Esto permite que los especialistas implementen/testeen/prueben complejos Objetos específicos para una tarea, en el que se puede confiar para correr en nuestro código.
  • 14. ¿Qué es un Objeto? ● Facilidad de Integración y de Prueba: Si un Objeto particular se vuelve problemático, se puede simplemente removerlo de la aplicación e integrar un Objeto diferente en su reemplazo. Esto es análogo arreglar problemas mecánicos en el mundo real. Si se rompe una bombilla, se lo reemplaza, no la máquina entera.
  • 15. ¿Qué es una Clase? En el mundo real, siempre se encuentran muchos Objetos individuales del mismo tipo. Pueden haber miles de otras bicicletas en existencia, todas de la misma marca y modelo. Cada bicicleta fue construida del mismo conjunto de Modelos y entonces contienen los mismos componentes. En términos de Orientación a Objeto, se dice que la bicicleta es una instancia de la Clase de Objetos llamada Bicicletas. Una clase es un Modelo del cual Objetos individuales son creados.
  • 16. ¿Qué es una Clase? La siguiente clase Bicicleta es una de las posibles implementaciones de una bicicleta. (Código Fuente de la Bicicleta)
  • 17. ¿Qué es una Clase? El diseño de esta clase esta basado en los Objetos bicicleta discutidos anteriormente. Los campos cadence, speed y gear representan el Estado de este Objeto, y los métodos (changeCadence, changeGear, speedUp, etc) define su interacción con el Mundo Exterior. Esta es la clase BicycleDemo que crea 2 Objetos Bicycle separados e invoca sus métodos. (Código Fuente del Demo de la Bicicleta)
  • 18. ¿Qué es una Clase? La salida de este test imprime la revolución por minuto final, velocidad y cambio de las dos bicicletas: cadence:50 speed:10 gear:2 cadence:40 speed:20 gear:3
  • 19. ¿Qué es Herencia? Diferentes tipos de Objetos regularmente tienen cierta cosas en común entre si. Las bicicletas de montaña, las bicicletas de camino y las bicicletas en serie, por ejemplo, comparten las características de las bicicletas (velocidad actual, revoluciones por minuto actual, cambio actual). Cada uno define características adicionales que los hacen diferentes: las bicicletas en serie tienen 2 asientos y 2 manubrios; las bicicletas de camino tienen manubrios encorvados.
  • 20. ¿Qué es Herencia? Algunas bicicletas de montaña anillos de cadena adicionales, que les brinda un cambio de menor proporción. POO permite que las clases hereden los Estados y Comportamientos comúnmente utilizadas de otras clases. En este ejemplo, Bicycle se convierte ahora la superclase de MountainBike, RoadBike, y TandemBike. En el Lenguaje de Programación Java, cada clase puede tener una superclase directa, y cada superclase tiene el potencial de un número ilimitado de subclases:
  • 21. ¿Qué es Herencia? Una jerarquía de clases de bicicleta
  • 22. ¿Qué es Herencia? La sintaxis para crear una subclase es simple. Al comienzo de una declaración de clase, se usa la palabra reservada extends, seguida del nombre de la clase de la cual hereda: class MountainBike extends Bicycle { // new fields and methods defining a mountain bike would go here }
  • 23. ¿Qué es Herencia? Esto brinda a MountainBike todos los mismo campos y métodos que tiene Bicycle, además de permitir que su código se concentre exclusivamente en las características que lo hacen único. Esto hace que el código para la subclase sea fácil de leer. Sin embargo, se debe documentar adecuadamente el estado y comportamiento que cada superclase define, ya que ese código no aparecerá en el código fuente de casa subclase.
  • 24. ¿Qué es una Interfaz? Los Objetos definen su interacción con el Mundo Exterior a través de métodos que ellos exponen. Los métodos forman la Interfaz del Objeto con el Mundo Exterior. Los botones al frente de un televisor, por ejemplo, son la interfaz entre nosotros y el cableado eléctrico dentro de la cubierta de plástico. Se presiona el botón “Encender” para prender y apagar el televisor. En su forma más común, una interfaz es un grupo de métodos relacionados con cuerpos vacíos.
  • 25. ¿Qué es una Interfaz? El comportamiento de una bicicleta, si es especificado como una interfaz, es como sigue: interface Bicycle { void changeCadence(int newValue); // wheel revolutions per minute void changeGear(int newValue); void speedUp(int increment); void applyBrakes(int decrement); }
  • 26. ¿Qué es una Interfaz? Para implementar esta interfaz, el nombre de la clase debe cambiar se usa la palabra clave implements en la declaración de la clase: class ACMEBicycle implements Bicycle { // remainder of this class implemented as before }
  • 27. ¿Qué es una Interfaz? Implementar una interfaz permite a una clase volverse más formal sobre el comportamiento que promete proveer. Las interfaces forman un contrato entre las clases y el mundo exterior, y su contrato es obligado en tiempo de compilación por el compilador. Si la clase dice que implementa una interfaz, todos los métodos definidas por esa interfaz deben aparecer en el código fuente antes de que la clase se compile con éxito.
  • 28. ¿Qué es un Paquete? Un paquete es un espacio de nombres que organiza un conjunto de clase e interfaces relacionadas. Conceptualmente, los paquetes son similares a las carpetas de una computadora. E una carpeta se guardan páginas HTML, imágenes en otra y los scripts o aplicaciones en otra.
  • 29. Preguntas y Ejercicios ● Los Objetos del Mundo Real contienen __ y __ ● El estado de un Objeto de Software es almacenado en __ ● El Comportamiento de un Objeto de Software es expuesto a través de __ ● Ocultar datos internos del Mundo Exterior, y accederlos a través de métodos expuestos públicamente es conocido como __ ● El Modelo para un Objeto de Software es llamado __
  • 30. Preguntas y Ejercicios ● El Comportamiento puede ser definido en una __ y heredada en una __ usando la palabra clave __ ● Un espacio de nombres que organiza clases e interfaces por su funcionalidad es llamado __ ● Crear nuevas clases para cada Objeto del Mundo Real que observa. ● Por cada clase que creó, cree una interfaz que defina su comportamiento, luego haga que la clase lo implemente.
  • 31. Referencias ● The Java Tutorials – http://download.oracle.com/docs/cd/E17409_01/ja vase/tutorial/index.html