SlideShare una empresa de Scribd logo
1 de 26
Programación orientada a objetos Ing. Rolando Steep Quezada Martínez [email_address] Programación Básica en Java y Programación Orientada a Objetos
Calidad del software   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],OBJETIVO Buenas propiedades internas Satisfacer factores externos
Factores de calidad del software ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Tecnología de objetos ,[object Object],[object Object],[object Object],[object Object],[object Object]
 
¿Qué es la programación orientada a objetos? ,[object Object],[object Object]
Resolución de problemas “con orientación a objetos” ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Características de POO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Objetos ,[object Object],[object Object],[object Object]
Clases ,[object Object],[object Object]
Clases ,[object Object],[object Object],[object Object],[object Object],Implementaciones
Clases y objetos PERRO raza, color... come, ladra... RAMBO bulldog gris come caviar ladra fuerte  En el mundo real  En OOP CLASE define datos y métodos OBJETO ocupa espacio y dura un tiempo
Clases, UML y Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Atributos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Métodos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Constructores ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Creación de objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],Control de acceso public class A{ public int at1; private int at2; … } public protected package private A a; A = new A() ; a.at1 = 6 //OK a.at2 = 5 //ERROR
Paquetes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Resumen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosPatricio Abad
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y DestructorTecnologico
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a ObjetosUVMVirtual
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevjtk1
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetoschutas666
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Ezer Ayala Mutul
 

La actualidad más candente (19)

Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Poo 1
Poo 1Poo 1
Poo 1
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Herencia
HerenciaHerencia
Herencia
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
 
Clase 4 JAVA 2012
Clase 4 JAVA 2012Clase 4 JAVA 2012
Clase 4 JAVA 2012
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 

Similar a Programación Orientada a Objetos

Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Sergio Sanchez
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completadoKai Exo
 
Poo Java
Poo JavaPoo Java
Poo Javaeccutpl
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos Marielena Lujano
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1mellcv
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)Manuel Ch.
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfMariaTeresaGarznPrez
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con javaEudris Cabrera
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Maria Garcia
 

Similar a Programación Orientada a Objetos (20)

Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
03 Oop
03   Oop03   Oop
03 Oop
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 

Más de Rolando Steep Quezada Martinez (10)

Implementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en TextoImplementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en Texto
 
Colecciones
ColeccionesColecciones
Colecciones
 
Manejo De Excepciones
Manejo De ExcepcionesManejo De Excepciones
Manejo De Excepciones
 
Diseño de Clases
Diseño de ClasesDiseño de Clases
Diseño de Clases
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Networking
NetworkingNetworking
Networking
 
Arreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de FlujoArreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de Flujo
 
Tipos Primitivos y Elementos Léxicos de Java
Tipos Primitivos y Elementos Léxicos de JavaTipos Primitivos y Elementos Léxicos de Java
Tipos Primitivos y Elementos Léxicos de Java
 
Módulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología JavaMódulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología Java
 
Manejo Avanzado de Flujos de Entrada/Salida
Manejo Avanzado de Flujos de Entrada/SalidaManejo Avanzado de Flujos de Entrada/Salida
Manejo Avanzado de Flujos de Entrada/Salida
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Programación Orientada a Objetos

  • 1. Programación orientada a objetos Ing. Rolando Steep Quezada Martínez [email_address] Programación Básica en Java y Programación Orientada a Objetos
  • 2.
  • 3.
  • 4.  
  • 5.
  • 6.  
  • 7.
  • 8.
  • 9.
  • 10.  
  • 11.
  • 12.
  • 13.
  • 14. Clases y objetos PERRO raza, color... come, ladra... RAMBO bulldog gris come caviar ladra fuerte En el mundo real En OOP CLASE define datos y métodos OBJETO ocupa espacio y dura un tiempo
  • 15.
  • 16.  
  • 17.
  • 18.  
  • 19.
  • 20.  
  • 21.
  • 22.  
  • 23.
  • 24.
  • 25.
  • 26.

Notas del editor

  1. Objetivos Conocer a nivel general conceptos de Tecnología de Objetos Entender claramente los conceptos de clase y objeto, identificando sus diferencias. Definir los conceptos de modelado: Abstracción, encapsulamiento y paquetes Definir una clase, miembro, atributo, método, constructor y paquete. Usar los modificadores de acceso private y public apropiadamente Distinguir entre una variable de instancia y local (clase). Describir como se inicializa una variable de instancia. Construir un objeto usando el operador new . Invocar un método de un objeto particular.
  2. Calidad de software y POO La Programación Orientada a Objetos es un conjunto de técnicas para obtener calidad interna como medio para obtener calidad externa (Reutilización y Extensibilidad)
  3. Factores de calidad del software Corrección .- Es la capacidad de los productos software de realizar con exactitud su tarea, tal y como es definida en la especificación. Definir los requisitos de manera precisa. Robustez .- Es la capacidad de los productos software de reaccionar adecuadamente ante situaciones excepcionales. Tienen que ver con el comportamiento (casos previstos o no). Extensibilidad .- Es la facilidad de adaptación de los productos software a los cambios en la especificación. Los cambios son frecuentes puesto que en la base de todo software hay algún fenómeno humano. Dificultad de adaptación proporcional al tamaño del sistema. Principios esenciales para facilitar la extensibilidad: Simplicidad de la arquitectura del software Descentralización : módulos autónomos
  4. Reutilización .- Es la capacidad de un producto software de ser utilizado en la construcción de diferentes aplicaciones No reinventar soluciones para problemas ya resueltos. Se escribe menos software, luego se puede dedicar mas tiempo a mejorar otros factores (fiabilidad) Compatibilidad .- Es la facilidad de combinar unos elementos software con otros Los sistemas necesitan interactuar con otros Convenciones estándar de comunicación inter-módulos Eficiencia .- Es la capacidad de un sistema software de requerir la menor cantidad posible de recursos hardware. Factor importante para la utilización Algunos están obsesionados con micro-optimizaciones Debemos conjugar eficiencia con los otros objetivos Los mecanismos OO deben ser implementados de un modo eficiente tanto en tiempo como en espacio Portabilidad .- Es la facilidad de transferir productos software a diferentes plataformas (entornos hardware y software). Facilidad de Uso .- Es la facilidad con la que personas con diferentes niveles de experiencia pueden aprender a usar los productos software y aplicarlos a resolver problemas. También incluye la facilidad de instalación, operación y supervisión. Funcionalidad .- Conjunto de posibilidades ofrecido por un sistema Evitar añadir propiedades de forma incontrolada Buen producto software debe estar basado en un pequeño número de grandes ideas Mantener constante el nivel de calidad Oportunidad.- Es la capacidad de un sistema software de ser lanzado cuando los usuarios lo desean, o antes. Economía .- Completarse con el presupuesto asignado Integridad .- Proteger contra modificaciones y accesos no autorizados Facilidad para reparaciones .- Corregir defectos sin rehacer el software Facilidades de Verificación .- Datos de prueba y procedimientos para detectar fallos
  5. Tecnología de objetos Se pueden considerar varias capas: La capa inferior son objetos (software chips) La capa intermedia son colecciones de objetos relacionados ( patrones de diseño OO ) La capa superior son aplicaciones que resuelven problemas específicos (armazones o frameworks ) Promueve el diseño basado en interfaces y arquitecturas estándares, con una organización y un proceso Durante el desarrollo del sistema lo importante es “qué es” y “qué hace” un objeto antes de decidir “cómo” se implementará Se centra en el comportamiento : operaciones que los clientes realizarán en el objeto, y operaciones que realizará sobre otros objetos Un cliente es un objeto que usa los recursos/servicios de otros objetos (servidores)
  6. Motivos que han conducido al éxito la tecnología de objetos Avances en arquitectura de computadores Avances en lenguajes de programación (C++, Smalltalk, Ada, Java, C# ...) Ingeniería del software (modularidad, encapsulado de la información, proceso de desarrollo incremental) Los límites de la capacidad de gestionar la complejidad de los sistemas simplemente con técnicas de descomposición algorítmica Ventajas de la tecnología de objetos Mejoras significativas de la productividad y calidad del código Estabilidad de los modelos respecto a entidades del mundo real Construcción iterativa Promueve la reutilización de software y de diseños (componentes, frameworks). Los sistemas OO son generalmente más pequeños que su equivalente no OO: menos código y más reutilización. Permite desarrollar sistemas más preparados para el cambio Vale para aplicaciones de pequeño y gran tamaño
  7. ¿Qué es la programación orientada a objetos? Un programa consta de un conjunto de objetos. Los objetos son abstracciones de cosas del mundo real. Nos interesa qué se puede hacer con los objetos más que cómo se hace. Cada objeto es responsable de unas tareas. Los objetos interactúan entre sí por medio de mensajes. Cada objeto es un ejemplar de una clase. Las clases se pueden organizar en una jerarquía de herencia.
  8. Resolución de problemas “con orientación a objetos” Consecuencias Un programa orientado a objetos se estructura como un conjunto de agentes que interactúan (programa como colección de objetos). Cada objeto proporciona un servicio que es utilizado por otros objetos (reutilización). La acción se inicia por la transmisión de un mensaje al objeto responsable de realizarla. Si el receptor acepta el mensaje, acepta la responsabilidad de llevar a cabo la acción solicitada. El receptor puede utilizar cualquier técnica que logre el objetivo deseado.
  9. Características de la programación orientada a objetos Abstracción Se define abstracción como la extracción y análisis de la abundancia de información en datos relacionados. Es importante que datos relacionados se mantengan juntos para su fácil manipulación. Es igualmente importante abstraer la información genérica de la información especifica con que se cuenta. Análisis sobre qué conoce y sobre qué hace un elemento determinado. Análisis de las características, atributos y métodos que son (y que no son) de interés para la aplicación en consideración. La abstracción de un elemento depende del contexto en el que se define. Encapsulamiento Se define encapsulamiento como el ocultamiento de datos relacionados detrás de una interface de métodos. Estos métodos permiten acceder a la información y manipularla convenientemente. Modularización de las características de un elemento. Un sistema se modulariza en clases, las que se modularizan en métodos y atributos. El comportamiento es encapsulado en métodos. La información es encapsulada en atributos. A través del encapsulamiento se define el qué se hace ocultando el c ómo se hace.
  10. Ocultamiento de la información Restricción de acceso al estado interno de un elemento. Si una clase requiere información sobre otra clase entonces debe solicitarla (no debe utilizarla directamente). El ocultamiento de la información previene escribir código altamente acoplado. Estándares Object Management Group (OMG) UML CORBA American National Standards Institute (ANSI) C++ SUN Microsystems JAVA EJB Componentes Un componente es una unidad modular y extensible de implementación independiente que tiene un contrato especifico de interfaz y dependencias explícitamente definidas. MODULARIDAD: posee todo lo necesario para su funcionalidad EXTENSIBILIDAD: debiera poder extenderse su funcionalidad original ABIERTO: soporte a diferentes plataformas e intreracción con otros componentes Procesos de Desarrollo Es un conjunto de fases, métodos, técnicas y prácticas que se usan para desarrollar y mantener software con sus documentos asociados. RAD, basado en componentes, Iterativo, incremental, espiral, UP. Fábricas de Software Software de soporte para desarrollar software Frameworks Conjunto reutilizable de bloques de construcción de software que se pueden usar, extender o adecuar. Patrones Es una solución reusable de un problema común que soporta la transferencia de técnicas probadas y decisiones a otros programadores.
  11. Objetos Unidad atómica que encapsula estado y comportamiento Un objeto puede caracterizar una entidad física (un teléfono, un interruptor, un cliente) o una entidad abstracta (un número, una fecha, una ecuación matemática). Todos los objetos son instancias de una clase: Los objetos se crean por instanciación de las clases. Todos los objetos de una misma clase (p.ej. automóviles) comparten ciertas características: sus atributos (tamaño, peso, color, potencia del motor, …) y el comportamiento que exhiben (aceleran, frenan, curvan, …). Características Identidad (puede distinguirse de otros objetos) Estado (datos asociados a él) Comportamiento (puede hacer cosas)
  12. Clases Implementación de un tipo de dato. Una clase sirve tanto de módulo como de tipo Tipo : ( concepto semántico ) Mecanismo de definición de nuevos tipos de datos: describe una estructura de datos (objetos) para representar valores de un dominio y las operaciones aplicables. Módulo : ( concepto sintáctico ) Mecanismo para organizar el software Encapsula componentes software
  13. Clases Cada clase tiene comportamientos o responsabilidades o mensajes que pueden ser enviados a la clase Puntos Tienen distancia desde origen puede ser trasladados, ... Líneas Tienen largo, pendiente puede intersectar otra, ... Rectángulos Tienen largo, ancho, diagonal, perímetro, área, ….
  14. Clases y objetos Clase Representa una plantilla (template) de varios objetos y describe como esos objetos están estructurados internamente. Objeto Entidad capaz de mantener un estado ( información representada por atributos) y que ofrece un conjunto de operaciones ( comportamiento representados por métodos) tanto para examinar como para modificar ese estado. 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. El estado interno de cada instancia es propia de cada una y se compone de los atributos establecidos en la clase. Podemos instanciar (crear) múltiples objetos de una misma clase crear puntos en diferente lugar del espacio. crear conjunto de líneas - todas con diferente pendiente y largo. Luego de crear un objeto, podemos aplicar operaciones de su clase a éste Encontrar la distancia de un punto al origen. Mover a punto a una posición nueva. Determinar el largo de la línea. Preguntar si dos líneas se interceptan. Formalmente, decimos que invocamos métodos de la clase o enviamos mensajes a un objeto de la clase.
  15. Clases, UML y Java UML( U nified M odeling L anguage) Lenguaje Unificado de Modelado, cuyos objetivos son: Proporcionar a los usuarios un lenguaje de modelado visual expresivo y utilizable para el desarrollo e intercambio de modelos significativos. Proporcionar mecanismos de extensión y especialización. Proporcionar una base formal para entender el lenguaje de modelado. Fomentar el crecimiento del mercado de las herramientas OO. Soportar conceptos de desarrollo de alto nivel como pueden ser colaboraciones, armazones, patrones y componentes Estado y comportamiento están relacionados . Ejemplo Un avión no puede aterrizar (acción) si no está en vuelo (estado) Representación gráfica de una clase (notación UML) Una clase se representa con un rectángulo dividido en tres partes: - El nombre de la clase (identifica la clase de forma unívoca) - Sus atributos (datos asociados a los objetos de la clase) - Sus operaciones (comportamiento de los objetos de esa clase) NOTA: Las clases se deben identificar con un nombre que, por lo general, pertenecerá al vocabulario utilizado habitualmente al hablar del problema que tratamos de resolver.
  16. Clases en Java ( sintaxis básica ) package nombrePaquete ; //define el nombre del paquete contenedor de la clase [lista de importaciones] [ public ] class NombreClase //Define la clase { //Inicio del cuerpo de la Clase //Define una constante public static final constante = valorInicial ; //Define un atributo de instancia alcance tipoDato atributoInstancia [ = valorInicial ] ; //Define un atributo de clase alcance static tipoDato atributoClase [ = valorInicial ] ; //Define un constructor public NombreClase ( [ listaArgumentos ] ) { listaSentencias ; } //Define un método de instancia alcance void| tipoRetorno metodoInstancia ( [ listaArgumentos ] ) { listaDeclaraciones ; listaSentencias ; [ return expresión ; ] //si tipo de retorno diferente de void } //Define un método de clase alcance static void| tipoRetorno metodoClase ( [ listaArgumentos ] ) { listaDeclaraciones ; listaSentencias ; [ return expresión ; ] //si tipo de retorno diferente de void } } //Fin de la clase NOTA: Una clase debe estar definida dentro de un archivo de texto con extensión *.java de la siguiente forma NombreClase.java y como primera sentencia debe especificar el paquete al cual pertence.
  17. Atributos Representan los estado o características de un objeto o conjunto de objetos Atributos de clase Los atributos de clase son aquellos que representan valores comunes a todos las instancias de una clase pueden tener un valor inicial; por ejemplo, edad promedio, total de alumnos, etc. … static double edadPromedio ; static int totalAlumnos = 0 ; Atributos de instancia Los atributos de instancia son aquellos que representan valores propios de un solo objeto que lo diferencia de otros objetos de su misma clase, pueden tener un valor por defecto; por ejemplo, nombre, fecha de nacimiento, numero ejes (auto), tamaño, etc. … String nombre ; Date fechaNacimiento ; int numeroEjes = 2 ; Constantes Las constantes de Java son definidas por el modificador final y representan valores inmutables en tiempo y espacio; por convención el nombre de las constantes debe estar totalmente en mayúsculas; por ejemplo: PI = 3.141516, etc. … static final double PI = 3.141516 ;
  18. Inicialización de Atributos Si un atributo no se inicializa se le asigna un valor por defecto en función de su tipo: Inicialización por defecto de los objetos en Java Cuando se crea un objeto con el operador new, por defecto: Las variables de instancia de tipo numérico (byte, short, int, long, float y double) se inicializan a 0. Las variables de instancia de tipo char se inicializan a ‘’. - Las variables de instancia de tipo boolean se inicializan a false. Las variables de instancia de cualquier tipo no primitivo se inicializan a null (una palabra reservada del lenguaje que indica que la referencia no apunta a ninguna parte). NOTA: Para acceder a un miembro de un objeto (leer el valor de una variable de instancia o invocar un método) hemos de tener una referencia a un objeto distinta de null. +0.0f float false boolean ‘ u000’ char null Referencia a objeto +0.0d double 0 byte,short,int,long Valor Inicial Tipo
  19. Métodos Representan el comportamiento de un Objeto o conjunto de objetos Métodos de Clase Acciones que no requieren de un Objeto específico para su realización; por ejemplo, sumar dos números, buscar por código, etc. … Los métodos de clase sólo tiene acceso a los atributos de clase. static double sumar ( double a , double b ) { double suma = 0.0 ; suma = a + b ; return suma ; } Métodos de Instancia Acciones que requieren de un Objeto específicos; por ejemplo, obtener la edad, obtener el nombre completo, cambiar el nombre, encender (auto), etc. … Los métodos de instancia tiene acceso a todos los miembros de una clase, sean de instancia o de clase. boolean encender ( ) { … } Invocar un Método (Enviar un mensaje) Calculadora. sumar( 12.2 , 13.6 ) ; objAuto . encender( ) ;
  20. Sobrecarga de métodos Java soporta sobrecarga de métodos el mismo nombre pero con DIFERENTE lista de argumentos SIEMPRE devuelven el mismo tipo public class ListaEnteros{ … public void add ( int elem){…} public void add ( int elem, int index){…} } Paso de parámetros siempre por valor los valores de los parámetros son copias de los valores que especifica el que lo invoca tipos primitivos no cambian los objetos pueden cambiar su estado  se pasa por valor la referencia Referencias Cualquier tipo que definamos en Java con una clase es un tipo no primitivo. Cuando declaramos una variable de un tipo primitivo en Java, estamos reservando espacio en memoria para almacenar un valor del tipo correspondiente. Sin embargo, cuando declaramos una variable de un tipo no primitivo en Java, lo único que hacemos es reservar una zona en memoria donde se almacenará una referencia a un objeto del tipo especificado (y no el objeto en sí, de ahí la necesidad de utilizar el operador new).
  21. Constructores Cuando utilizamos el operador new acompañado del nombre de una clase, se crea un objeto del tipo especificado (una instancia de la clase cuyo nombre aparece al lado de new). Al crear un objeto de una clase concreta, se invoca a un método especial de esa clase, denominado constructor , que es el que se encarga de inicializar el estado del objeto. Constructor por defecto Por defecto, Java crea automáticamente un constructor sin parámetros para cualquier clase que definamos. public class Cuenta { // Constante public static final double LIMITE_NORMAL = 300.00; // Variables de instancia private double saldo = 0.0d; private double limite = LIMITE_NORMAL; // Métodos ... } Al crear un objeto de tipo Cuenta con new Cuenta(), se llama al constructor por defecto de la clase Cuenta, con lo cual se crea un objeto de tipo Cuenta cuyo estado inicial será el indicado en la inicialización de las variables de instancia saldo y limite. Para facilitarnos la creación de objetos, Java nos permite definir varios constructores para una misma clase (siempre y cuando tengan parámetros diferentes).
  22. Constructores definidos por el usuario Los lenguajes de programación nos permiten definir constructores para especificar cómo ha de inicializarse un objeto al crearlo. El nombre del constructor ha de coincidir con el nombre de la clase. Podemos definir un constructor para inicializar las variables de instancia de una clase, en vez de hacerlo en la propia declaración de las variables de instancia: public class Cuenta { // Constante public static final double LIMITE_NORMAL = 300.00; // Variables de instancia private double saldo; private double limite; // Constructor sin argumentos public Cuenta ( ) { this.saldo = 0.0 ; this.limite = LIMITE_NORMAL ; } // Constructor con argumentos public Cuenta ( double saldoInicial ) { this.saldo = saldoInicial ; this.limite = LIMITE_NORMAL ; } // Métodos ... } Nota: La palabra reservada this ( instancia actual ) hace referencia al objeto que realiza la operación cuya implementación específica el método.
  23. Creación de objetos Antes de poder usar un objeto hemos de crearlo. El operador new El operador new nos permite crear objetos en Java. Tipo identificador = new Tipo ( [argumentos] ); Si escribimos un programa como el siguiente: public class Ingreso { public static void main (String args[]) { Cuenta miCuenta; miCuenta.ingresar(100.00); // Error } } El compilador nos da el siguiente error: Ingreso.java:7: variable cuenta might not have been initialized cuenta.ingresar(100.00); ^ Hemos declarado una variable que, inicialmente, no tiene ningún valor. Antes de utilizarla, deberíamos haberla inicializado (con un objeto del tipo adecuado): Cuenta cuenta = new Cuenta ( );
  24. Representación en UML Atributo Público Atributo Protegido Atributo Privado ¿Cómo se comprueba el estado de un objeto? Accediendo a las variables de instancia del objeto objeto.atributo Por ejemplo, cuenta.saldo nos permitiría acceder al valor numérico correspondiente al saldo de una cuenta siempre y cuando éste sea público y fuese una instancia de la clase Cuenta. Estándar Javabean: Una clase debe definir todos sus Atributos privados y acceso a través de métodos públicos ( set/get ); si una cuenta tiene el atributo saldo, este debe ser privado y definir los siguientes métodos: public class Cuenta{ private double saldo ; public double getSaldo() { return saldo; } public void setSaldo(double nuevoSaldo ) { saldo = nuevoSaldo ;} }
  25. Paquetes Agrupan un conjunto de clases relacionadas o altamente cohesionadas. Paquetes básicos del JDK de Java java.lang : para funciones del lenguaje //Disponible sin import java.util : para utilidades adicionales java.io : para manejo de ficheros java.awt : para diseño gráfico e interfaz de usuario java.awt.event : para gestionar eventos javax.swing : nuevo diseño de GUI java.net : para comunicaciones java.sql : para acceso a datos con JDBC