SlideShare una empresa de Scribd logo
1 de 48
MÓDULO 3 INTRODUCCIÓN A JAVA 3.3 OOP 40 HORAS Jesús Muñoz jesus@iluego.com
Contenidos tema 3 – Introducción a Java Comenzamos Bases del lenguaje Java Programación Orientada a Objetos (OOP) Clases y objetos Creando clases Paquetes y java classpath Javabeans Herencia Clases abstractas e interfaces Polimorfismo Clases internas Excepciones Logging Networking 2
Contenidos de este tema 3 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
Contenidos de este tema 4 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
5 Trabajando con clases built-in Al final de este tema el alumno podrá: ,[object Object]
Diferenciar entre clases y objetos
Diferenciar entre propiedades/métodos de instancia y de clase (static)
Explicar el paso de mensajes entre objetos
Identificar el scope de una variable
Castings
Comparar objetos y determinar la clase de los mismos,[object Object]
7 Trabajando con clases built-in OOP, Programación Orientada a Objetos Es una de las características principales de Java Estos objetos definen propiedades y métodos
8 Trabajando con clases built-in OOP trata de reproducir el mundo real, basándose en objetos. Estos objetos están definidos por sus: Propiedades (o características) Métodos (o acciones que pueden hacerse sobre ellos) Imaginemos un objeto COCHE: Propiedades: color, matrícula, número puertas, … Métodos: arrancar, parar, consultar kilómetros, …
Contenidos de este tema 9 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
10 Encapsulación OOP trata de reproducir el mundo real, basándose en objetos. Estos objetos están definidos por sus: Propiedades (o características) Métodos (o acciones que pueden hacerse sobre ellos) Imaginemos un objeto COCHE: Propiedades: color, matrícula, número puertas, … Métodos: arrancar, parar, consultar kilómetros, …
11 Encapsulación Lo podemos considerar como un esquema de caja negra Se sabe lo que necesita en la entrada, y lo que produce, pero no cómo lo hace internamente. Esto nos asegura que la implementación puede cambiar sin afectar al resultado y sin tener que modificar la llamada al método
Contenidos de este tema 12 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
13 Clases y objetos Clase Podemos considerala como una plantilla, un prototipo Es la estructura fundamental en la OOP Objeto Propiedades Especifican los datos definidos en la clase Métodos Especifican las operaciones sobre las propiedades. También definidos en la clase. Un objeto es una instancia de una clase Los valores de las propiedades de una instancia son diferentes de los de otra/s instancia/s Las instancias de la misma clase comparten los mismos métodos
Contenidos de este tema 14 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
15 Características Reusabilidad A través del uso de instancias de una misma clase
Contenidos de este tema 16 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
17 Creación de instancias Para crear una instancia de una clase, usamos el operador new Por ejemplo, si queremos crear una instancia de la clase String, escribimos el siguiente código: La clase String es especial, es la única que puedes crear sin usar la palabra reservada new String str2 = new String(“Hello world!”); o String str2 = "Hello world!“;
18 Creación de instancias El operador new: Reserva memoria para el objeto y retorna una referencia de la memoria Cuando creas un objeto se invoca el constructor de la clase El constructor: Es un método especial que ejecuta las inicializaciones, tiene el mismo nombre de la clase
Contenidos de este tema 19 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
20 Métodos Es un trozo de código que lleva a cabo una acción más o menos compleja y que puede ser invocado Características de los métodos: Puede retornar un valor o ninguno Se le pueden pasar cuantos parámetros (argumentos) se quieran Después de finalizar la ejecución del método pasa el control al método que lo ha invocado
21 Métodos Los métodos contienen un propósito (lógica de negocio) La solución a veces pasa por la descomposición del problema en varios métodos Esto lo podemos hacer en Java creando cuantos métodos sean necesarios La experiencia es la única buena consejera para valorar el ámbito de acción de un determinado método
22 Métodos Dos tipos de métodos: De instancia: Se deben llamar después de crear la instancia Son los más comunes Static Se llaman de la forma [ClassName].[methodName]
23 Métodos Para ilustrar cómo llamar a los métodos, vamos a usar la clase String como ejemplo: Puedes usar la Java API documentation para ver la referencia completa de todos los métodos de la clase String Después crearemos métodos propios, pero de momento vamos a usar String para probar Para llamar a un método escribimos lo siguiente: nombreDelObjeto.nombreDelMetodo(parametros); String strInstancia1 = new String (“soy una instancia de la clase String”); char x = strInstancia1.charAt(2);
24 Métodos Vamos a ver dos ejemplos de la clase String: public char charAt (int index); public boolean equalsIgnoreCase (String cadena); Un ejemplo: String str1 = "Hello"; char x = str1.charAt(0); //will return the character H //and store it to variable x String str2 = "hello"; //this will return a boolean value true boolean result = str1.equalsIgnoreCase( str2 );
25 Métodos Métodos static: Se pueden invocar sin instanciar la clase Pertenece a la clase y no a una determinada instancia Se distinguen de los métodos de una instancia por la palabra reservada static Para invocar un método static: NombreClase.nombreMetodoStatic (parametros);
26 Métodos Ejemplos de métodos static: //converts the String 10, to an integer int i = Integer.parseInt(“10”); //Returns a String representation of the integer argument as // an unsigned integer base 16 String hexEquivalent = Integer.toHexString( 10 );
Contenidos de este tema 27 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
28 Paso de parámetros Paso por valor Cuando un pass-by-value ocurre, el método crea una copia de la variable pasada. De esta manera, el método no puede modificar accidentalmente el valor original, aunque modifigue los parámetros durante los cálculos. Todos los datos de tipos primitivos son pass-by-value
29 Paso de parámetros Paso por valor
30 Paso de parámetros Paso por referencia Cuando ocurre un pass-by-reference, la referencia al objeto es pasada al método llamador. Esto significa que el método crea una copia de la referencia de la variable pasada al método. Sin embargo, a diferencia del paso por valor, el método puede modificar el objeto actual al cual la referencia está apuntando es la misma
31 Paso de parámetros Paso por referencia
Contenidos de este tema 32 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
33 Variables Son los identificadores de datos. En Java los llamamos PROPIEDADES Contienen valores que queremos guardar a lo largo de un determinado tiempo de ejecución Hay 3 tipos de variables: Local (automatic): Declarada dentro de método Visible sólo dentro del método Se mantiene internamente en pila Instancia Declarada dentro del cuerpo de instancia, pero fuera de cualquier método Pertenece a la propia instancia No se puede referir a ella desde el contexto static Class (static) Declarada dentro del cuerpo de clase, pero fuera de cualquier método Va precedida del modificador static Pertenece a la clase Compartida por todas las instancias de la clase
Contenidos de este tema 34 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
35 Scope de una variable Determina dónde es accesible la variable dentro del programa. Podemos hablar de ámbito de la variable. Determina, también y por tanto, el ciclo de vida de una variable, o cuánto tiempo estará ésta presente en memoria Es determinado por el lugar de declaración de la variable dentro del programa
36 Scope de una variable Determina dónde es accesible la variable dentro del programa. Podemos hablar de ámbito de la variable. Determina, también y por tanto, el ciclo de vida de una variable, o cuánto tiempo estará ésta presente en memoria Es determinado por el lugar de declaración de la variable dentro del programa
37 Scope de una variable – ejemplo 1 El código que tenemos a continuación representa 5 scopes indicados: The scope of variable i is A. The scope of variable j is B. The scope of variable k is C. The scope of variable m is D. The scope of variable n is E.
38 Scope de una variable – ejemplo 1 En el main los scopes son: ages[] - scope A i in B - scope B i in C – scope C In the test method, the scopes of the variables are, arr[] - scope D i in E - scope E
Contenidos de este tema 39 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
40 Casting Significa mapeo de un tipo de objeto a otro Se puede hacer casting de: Tipos de datos primitivos Objetos con herencia El casting entre tipos de datos primitivos habilita la conversión de un tipo de valor en otro Normalmente entre tipos numéricos Hay un tipo de datos primitivos que no podemos hacer  Existe un tipo de datos al cual no le podemos hacer casting: boolean Tipos de casting: Implícito Explícito
41 Casting Suponemos que queremos guardar el valor de un int en una variable de tipo double: int numInt = 10; double numDouble = numInt; //implicit cast En este ejemplo se hace un casting implícito, ya que el tipo double soporta un rango mayor de valores que incluye también los de tipo int Otro ejemplo: int numInt1 = 1; int numInt2 = 2; //result is implicitly casted to type double double numDouble = numInt1/numInt2;
42 Casting En el casting explícito están implicadas clases relacionadas por herencia Employee emp = new Employee(); VicePresident veep = new VicePresident(); // no cast needed for upward use emp = veep; // must cast explicitly veep = (VicePresident)emp;
Contenidos de este tema 43 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos

Más contenido relacionado

La actualidad más candente

Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoJuan Carlos Espinoza
 
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
 
2.android java
2.android   java2.android   java
2.android javaguidotic
 
Fundamentos POO en JS. Mixins y Traits.
Fundamentos POO en JS. Mixins y Traits.Fundamentos POO en JS. Mixins y Traits.
Fundamentos POO en JS. Mixins y Traits.Maximiliano Fierro
 
16 17 tecnologias python oop
16 17 tecnologias python oop16 17 tecnologias python oop
16 17 tecnologias python oopSoftware Guru
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .netjohnny herrera
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 

La actualidad más candente (20)

Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
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
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
Clases en java
Clases en javaClases en java
Clases en java
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase
 
2.android java
2.android   java2.android   java
2.android java
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Fundamentos POO en JS. Mixins y Traits.
Fundamentos POO en JS. Mixins y Traits.Fundamentos POO en JS. Mixins y Traits.
Fundamentos POO en JS. Mixins y Traits.
 
Qué es la poo
Qué es la pooQué es la poo
Qué es la poo
 
16 17 tecnologias python oop
16 17 tecnologias python oop16 17 tecnologias python oop
16 17 tecnologias python oop
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Aprendiendo objetos en c++
Aprendiendo objetos en c++Aprendiendo objetos en c++
Aprendiendo objetos en c++
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .net
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Presentacion5
Presentacion5Presentacion5
Presentacion5
 
05 Creando Clases
05   Creando Clases05   Creando Clases
05 Creando Clases
 

Destacado (20)

Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Thread 02
Thread 02Thread 02
Thread 02
 
Sockets UDP
Sockets UDPSockets UDP
Sockets UDP
 
Thread 01
Thread 01Thread 01
Thread 01
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
Comunicación en Grupo
Comunicación en GrupoComunicación en Grupo
Comunicación en Grupo
 
Log4J
Log4JLog4J
Log4J
 
Comunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSPComunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSP
 
JSP
JSPJSP
JSP
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
 
Curso Jsp
Curso JspCurso Jsp
Curso Jsp
 
13 Networking
13   Networking13   Networking
13 Networking
 
FPJUCE - Capitulo2
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2
 
02 Bases Del Lenguaje Java
02   Bases Del Lenguaje Java02   Bases Del Lenguaje Java
02 Bases Del Lenguaje Java
 
06 Paquetes Y Java Classpath
06   Paquetes Y Java Classpath06   Paquetes Y Java Classpath
06 Paquetes Y Java Classpath
 
Entrega final
Entrega finalEntrega final
Entrega final
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Tutorial eclipse 1
Tutorial eclipse 1Tutorial eclipse 1
Tutorial eclipse 1
 
Conceptos de la poo
Conceptos de la pooConceptos de la poo
Conceptos de la poo
 

Similar a 03 Oop

Similar a 03 Oop (20)

Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
POO
POOPOO
POO
 
Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
POOCPP2.ppt
POOCPP2.pptPOOCPP2.ppt
POOCPP2.ppt
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)
 
Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Revista java world cap 8,9,10
Revista java world cap 8,9,10Revista java world cap 8,9,10
Revista java world cap 8,9,10
 
Poocpp2
Poocpp2Poocpp2
Poocpp2
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
 

Más de Network Sens

Más de Network Sens (9)

J2EE - 01 Arquitectura Web
J2EE - 01   Arquitectura WebJ2EE - 01   Arquitectura Web
J2EE - 01 Arquitectura Web
 
12 Logging
12   Logging12   Logging
12 Logging
 
11 Excepciones
11   Excepciones11   Excepciones
11 Excepciones
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
09 Clases Abstractas E Interfaces
09   Clases Abstractas E Interfaces09   Clases Abstractas E Interfaces
09 Clases Abstractas E Interfaces
 
08 Herencia
08   Herencia08   Herencia
08 Herencia
 
07 Javabeans
07   Javabeans07   Javabeans
07 Javabeans
 
01 - Introducción
01 - Introducción01 - Introducción
01 - Introducción
 
04 Clases Y Objetos
04   Clases Y Objetos04   Clases Y Objetos
04 Clases Y Objetos
 

Ú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
 
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
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
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
 
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
 
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
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
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
 
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
 
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
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
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
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 

Ú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
 
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.
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
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
 
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
 
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
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
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
 
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
 
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
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
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
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 

03 Oop

  • 1. MÓDULO 3 INTRODUCCIÓN A JAVA 3.3 OOP 40 HORAS Jesús Muñoz jesus@iluego.com
  • 2. Contenidos tema 3 – Introducción a Java Comenzamos Bases del lenguaje Java Programación Orientada a Objetos (OOP) Clases y objetos Creando clases Paquetes y java classpath Javabeans Herencia Clases abstractas e interfaces Polimorfismo Clases internas Excepciones Logging Networking 2
  • 3. Contenidos de este tema 3 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 4. Contenidos de este tema 4 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 5.
  • 7. Diferenciar entre propiedades/métodos de instancia y de clase (static)
  • 8. Explicar el paso de mensajes entre objetos
  • 9. Identificar el scope de una variable
  • 11.
  • 12. 7 Trabajando con clases built-in OOP, Programación Orientada a Objetos Es una de las características principales de Java Estos objetos definen propiedades y métodos
  • 13. 8 Trabajando con clases built-in OOP trata de reproducir el mundo real, basándose en objetos. Estos objetos están definidos por sus: Propiedades (o características) Métodos (o acciones que pueden hacerse sobre ellos) Imaginemos un objeto COCHE: Propiedades: color, matrícula, número puertas, … Métodos: arrancar, parar, consultar kilómetros, …
  • 14. Contenidos de este tema 9 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 15. 10 Encapsulación OOP trata de reproducir el mundo real, basándose en objetos. Estos objetos están definidos por sus: Propiedades (o características) Métodos (o acciones que pueden hacerse sobre ellos) Imaginemos un objeto COCHE: Propiedades: color, matrícula, número puertas, … Métodos: arrancar, parar, consultar kilómetros, …
  • 16. 11 Encapsulación Lo podemos considerar como un esquema de caja negra Se sabe lo que necesita en la entrada, y lo que produce, pero no cómo lo hace internamente. Esto nos asegura que la implementación puede cambiar sin afectar al resultado y sin tener que modificar la llamada al método
  • 17. Contenidos de este tema 12 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 18. 13 Clases y objetos Clase Podemos considerala como una plantilla, un prototipo Es la estructura fundamental en la OOP Objeto Propiedades Especifican los datos definidos en la clase Métodos Especifican las operaciones sobre las propiedades. También definidos en la clase. Un objeto es una instancia de una clase Los valores de las propiedades de una instancia son diferentes de los de otra/s instancia/s Las instancias de la misma clase comparten los mismos métodos
  • 19. Contenidos de este tema 14 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 20. 15 Características Reusabilidad A través del uso de instancias de una misma clase
  • 21. Contenidos de este tema 16 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 22. 17 Creación de instancias Para crear una instancia de una clase, usamos el operador new Por ejemplo, si queremos crear una instancia de la clase String, escribimos el siguiente código: La clase String es especial, es la única que puedes crear sin usar la palabra reservada new String str2 = new String(“Hello world!”); o String str2 = "Hello world!“;
  • 23. 18 Creación de instancias El operador new: Reserva memoria para el objeto y retorna una referencia de la memoria Cuando creas un objeto se invoca el constructor de la clase El constructor: Es un método especial que ejecuta las inicializaciones, tiene el mismo nombre de la clase
  • 24. Contenidos de este tema 19 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 25. 20 Métodos Es un trozo de código que lleva a cabo una acción más o menos compleja y que puede ser invocado Características de los métodos: Puede retornar un valor o ninguno Se le pueden pasar cuantos parámetros (argumentos) se quieran Después de finalizar la ejecución del método pasa el control al método que lo ha invocado
  • 26. 21 Métodos Los métodos contienen un propósito (lógica de negocio) La solución a veces pasa por la descomposición del problema en varios métodos Esto lo podemos hacer en Java creando cuantos métodos sean necesarios La experiencia es la única buena consejera para valorar el ámbito de acción de un determinado método
  • 27. 22 Métodos Dos tipos de métodos: De instancia: Se deben llamar después de crear la instancia Son los más comunes Static Se llaman de la forma [ClassName].[methodName]
  • 28. 23 Métodos Para ilustrar cómo llamar a los métodos, vamos a usar la clase String como ejemplo: Puedes usar la Java API documentation para ver la referencia completa de todos los métodos de la clase String Después crearemos métodos propios, pero de momento vamos a usar String para probar Para llamar a un método escribimos lo siguiente: nombreDelObjeto.nombreDelMetodo(parametros); String strInstancia1 = new String (“soy una instancia de la clase String”); char x = strInstancia1.charAt(2);
  • 29. 24 Métodos Vamos a ver dos ejemplos de la clase String: public char charAt (int index); public boolean equalsIgnoreCase (String cadena); Un ejemplo: String str1 = "Hello"; char x = str1.charAt(0); //will return the character H //and store it to variable x String str2 = "hello"; //this will return a boolean value true boolean result = str1.equalsIgnoreCase( str2 );
  • 30. 25 Métodos Métodos static: Se pueden invocar sin instanciar la clase Pertenece a la clase y no a una determinada instancia Se distinguen de los métodos de una instancia por la palabra reservada static Para invocar un método static: NombreClase.nombreMetodoStatic (parametros);
  • 31. 26 Métodos Ejemplos de métodos static: //converts the String 10, to an integer int i = Integer.parseInt(“10”); //Returns a String representation of the integer argument as // an unsigned integer base 16 String hexEquivalent = Integer.toHexString( 10 );
  • 32. Contenidos de este tema 27 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 33. 28 Paso de parámetros Paso por valor Cuando un pass-by-value ocurre, el método crea una copia de la variable pasada. De esta manera, el método no puede modificar accidentalmente el valor original, aunque modifigue los parámetros durante los cálculos. Todos los datos de tipos primitivos son pass-by-value
  • 34. 29 Paso de parámetros Paso por valor
  • 35. 30 Paso de parámetros Paso por referencia Cuando ocurre un pass-by-reference, la referencia al objeto es pasada al método llamador. Esto significa que el método crea una copia de la referencia de la variable pasada al método. Sin embargo, a diferencia del paso por valor, el método puede modificar el objeto actual al cual la referencia está apuntando es la misma
  • 36. 31 Paso de parámetros Paso por referencia
  • 37. Contenidos de este tema 32 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 38. 33 Variables Son los identificadores de datos. En Java los llamamos PROPIEDADES Contienen valores que queremos guardar a lo largo de un determinado tiempo de ejecución Hay 3 tipos de variables: Local (automatic): Declarada dentro de método Visible sólo dentro del método Se mantiene internamente en pila Instancia Declarada dentro del cuerpo de instancia, pero fuera de cualquier método Pertenece a la propia instancia No se puede referir a ella desde el contexto static Class (static) Declarada dentro del cuerpo de clase, pero fuera de cualquier método Va precedida del modificador static Pertenece a la clase Compartida por todas las instancias de la clase
  • 39. Contenidos de este tema 34 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 40. 35 Scope de una variable Determina dónde es accesible la variable dentro del programa. Podemos hablar de ámbito de la variable. Determina, también y por tanto, el ciclo de vida de una variable, o cuánto tiempo estará ésta presente en memoria Es determinado por el lugar de declaración de la variable dentro del programa
  • 41. 36 Scope de una variable Determina dónde es accesible la variable dentro del programa. Podemos hablar de ámbito de la variable. Determina, también y por tanto, el ciclo de vida de una variable, o cuánto tiempo estará ésta presente en memoria Es determinado por el lugar de declaración de la variable dentro del programa
  • 42. 37 Scope de una variable – ejemplo 1 El código que tenemos a continuación representa 5 scopes indicados: The scope of variable i is A. The scope of variable j is B. The scope of variable k is C. The scope of variable m is D. The scope of variable n is E.
  • 43. 38 Scope de una variable – ejemplo 1 En el main los scopes son: ages[] - scope A i in B - scope B i in C – scope C In the test method, the scopes of the variables are, arr[] - scope D i in E - scope E
  • 44. Contenidos de este tema 39 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 45. 40 Casting Significa mapeo de un tipo de objeto a otro Se puede hacer casting de: Tipos de datos primitivos Objetos con herencia El casting entre tipos de datos primitivos habilita la conversión de un tipo de valor en otro Normalmente entre tipos numéricos Hay un tipo de datos primitivos que no podemos hacer Existe un tipo de datos al cual no le podemos hacer casting: boolean Tipos de casting: Implícito Explícito
  • 46. 41 Casting Suponemos que queremos guardar el valor de un int en una variable de tipo double: int numInt = 10; double numDouble = numInt; //implicit cast En este ejemplo se hace un casting implícito, ya que el tipo double soporta un rango mayor de valores que incluye también los de tipo int Otro ejemplo: int numInt1 = 1; int numInt2 = 2; //result is implicitly casted to type double double numDouble = numInt1/numInt2;
  • 47. 42 Casting En el casting explícito están implicadas clases relacionadas por herencia Employee emp = new Employee(); VicePresident veep = new VicePresident(); // no cast needed for upward use emp = veep; // must cast explicitly veep = (VicePresident)emp;
  • 48. Contenidos de este tema 43 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 49. 44 Wrapper classes Muchas de esas clases tienen los mismos nombres que los tipos de datos, excepto que el nombre comienza con una letra mayúscula: Integer es una clase envoltura de la primitiva int Double es una clase envoltura de la primitiva double Long es una clase envoltura de la primitiva long Usando las clases que corresponden a cada tipo de primitiva se puede crear un objeto que recoja el mismo valor
  • 50. 45 Wrapper classes La siguiente sentencia crea una instancia de la clase Integer con un valor entero de 7801: Integer dataCount = new Integer(7801); Y algunos ejemplos más: int newCount = dataCount.intValue(); String pennsylvania = "65000"; int penn = Integer.parseInt(pennsylvania);
  • 51. Contenidos de este tema 46 Programación Orientada a Objetos (OOP) Trabajando con clases built-in Encapsulación Clases y objetos Características Creación de instancias Métodos Paso de parámetros Variables Scope de una variable Casting Wrapper classes Comparación de objetos
  • 52. 47 Comparación de objetos class EqualsTest { public static void main(String[] arguments) { String str1, str2; str1 = "Free the bound periodicals."; str2 = str1; System.out.println("String1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); str2 = new String(str1); System.out.println("String1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); System.out.println("Same value? " + str1.equals(str2)); } }
  • 53. Es importante que recordeis… “Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado” Adelante!!! Jesús Muñoz jesus@iluego.com