Your SlideShare is downloading. ×
MÓDULO 3<br />INTRODUCCIÓN A JAVA<br />3.3 OOP<br />40 HORAS<br />Jesús Muñoz<br />jesus@iluego.com<br />
Contenidos tema 3 – Introducción a Java<br />Comenzamos<br />Bases del lenguaje Java<br />Programación Orientada a Objetos...
Contenidos de este tema<br />3<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encaps...
Contenidos de este tema<br />4<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encaps...
5<br />Trabajando con clases built-in<br />Al final de este tema el alumno podrá:<br /><ul><li>Explicar la programación or...
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</li></li></ul><li>6<br />Trabajando con clases built-in<br />OOP, Pro...
7<br />Trabajando con clases built-in<br />OOP, Programación Orientada a Objetos<br />Es una de las características princi...
8<br />Trabajando con clases built-in<br />OOP trata de reproducir el mundo real, basándose en objetos.<br />Estos objetos...
Contenidos de este tema<br />9<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encaps...
10<br />Encapsulación<br />OOP trata de reproducir el mundo real, basándose en objetos.<br />Estos objetos están definidos...
11<br />Encapsulación<br />Lo podemos considerar como un esquema de caja negra<br />Se sabe lo que necesita en la entrada,...
Contenidos de este tema<br />12<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
13<br />Clases y objetos<br />Clase<br />Podemos considerala como una plantilla, un prototipo<br />Es la estructura fundam...
Contenidos de este tema<br />14<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
15<br />Características<br />Reusabilidad<br />A través del uso de instancias de una misma clase<br />
Contenidos de este tema<br />16<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
17<br />Creación de instancias<br />Para crear una instancia de una clase, usamos el operador new<br />Por ejemplo, si que...
18<br />Creación de instancias<br />El operador new:<br />Reserva memoria para el objeto y retorna una referencia de la me...
Contenidos de este tema<br />19<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
20<br />Métodos<br />Es un trozo de código que lleva a cabo una acción más o menos compleja y que puede ser invocado<br />...
21<br />Métodos<br />Los métodos contienen un propósito (lógica de negocio)<br />La solución a veces pasa por la descompos...
22<br />Métodos<br />Dos tipos de métodos:<br />De instancia:<br />Se deben llamar después de crear la instancia<br />Son ...
23<br />Métodos<br />Para ilustrar cómo llamar a los métodos, vamos a usar la clase String como ejemplo:<br />Puedes usar ...
24<br />Métodos<br />Vamos a ver dos ejemplos de la clase String:<br />public char charAt (int index);<br />public boolean...
25<br />Métodos<br />Métodos static:<br />Se pueden invocar sin instanciar la clase<br />Pertenece a la clase y no a una d...
26<br />Métodos<br />Ejemplos de métodos static:<br />//converts the String 10, to an integer<br />int i = Integer.parseIn...
Contenidos de este tema<br />27<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
28<br />Paso de parámetros<br />Paso por valor<br />Cuando un pass-by-value ocurre, el método crea una copia de la variabl...
29<br />Paso de parámetros<br />Paso por valor<br />
30<br />Paso de parámetros<br />Paso por referencia<br />Cuando ocurre un pass-by-reference, la referencia al objeto es pa...
31<br />Paso de parámetros<br />Paso por referencia<br />
Contenidos de este tema<br />32<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
33<br />Variables<br />Son los identificadores de datos. En Java los llamamos PROPIEDADES<br />Contienen valores que quere...
Contenidos de este tema<br />34<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
35<br />Scope de una variable<br />Determina dónde es accesible la variable dentro del programa. Podemos hablar de ámbito ...
36<br />Scope de una variable<br />Determina dónde es accesible la variable dentro del programa. Podemos hablar de ámbito ...
37<br />Scope de una variable – ejemplo 1<br />El código que tenemos a continuación representa 5 scopes indicados:<br />Th...
38<br />Scope de una variable – ejemplo 1<br />En el main los scopes son:<br />ages[] - scope A<br />i in B - scope B<br /...
Contenidos de este tema<br />39<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
40<br />Casting<br />Significa mapeo de un tipo de objeto a otro<br />Se puede hacer casting de:<br />Tipos de datos primi...
41<br />Casting<br />Suponemos que queremos guardar el valor de un int en una variable de tipo double:<br />int numInt = 1...
42<br />Casting<br />En el casting explícito están implicadas clases relacionadas por herencia<br />Employee emp = new Emp...
Contenidos de este tema<br />43<br />Programación Orientada a Objetos (OOP)<br />Trabajando con clases built-in<br />Encap...
Upcoming SlideShare
Loading in...5
×

03 Oop

1,086

Published on

FactoriaJava.com - Desarrollo Java

Curso Desarrollo y Gestión de Aplicaciones Web con Tecnología Java

Tema 03 - Módulo 03 - OOP

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,086
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "03 Oop"

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

×