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

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 

Último (12)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

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