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

certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 

Último (20)

certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 

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