MÓDULO 3INTRODUCCIÓN A JAVA3.3 OOP40 HORASJesús Muñozjesus@iluego.com
Contenidos tema 3 – Introducción a JavaComenzamosBases del lenguaje JavaProgramación Orientada a Objetos (OOP)Clases y objetosCreando clasesPaquetes y java classpathJavabeansHerenciaClases abstractas e interfacesPolimorfismoClases internasExcepcionesLoggingNetworking2
Contenidos de este tema3Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
Contenidos de este tema4Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
5Trabajando con clases built-inAl final de este tema el alumno podrá:Explicar la programación orientada a objetos (OOP) y algunos de sus conceptos asociados
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 mismos6Trabajando con clases built-inOOP, Programación Orientada a ObjetosEs una de las características principales de JavaEstos objetos definen propiedades y métodos
7Trabajando con clases built-inOOP, Programación Orientada a ObjetosEs una de las características principales de JavaEstos objetos definen propiedades y métodos
8Trabajando con clases built-inOOP 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 tema9Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
10EncapsulaciónOOP 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, …
11EncapsulaciónLo podemos considerar como un esquema de caja negraSe 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 tema12Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
13Clases y objetosClasePodemos considerala como una plantilla, un prototipoEs la estructura fundamental en la OOPObjetoPropiedadesEspecifican los datos definidos en la claseMétodosEspecifican las operaciones sobre las propiedades. También definidos en la clase.Un objeto es una instancia de una claseLos valores de las propiedades de una instancia son diferentes de los de otra/s instancia/sLas instancias de la misma clase comparten los mismos métodos
Contenidos de este tema14Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
15CaracterísticasReusabilidadA través del uso de instancias de una misma clase
Contenidos de este tema16Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
17Creación de instanciasPara crear una instancia de una clase, usamos el operador newPor 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 newString str2 = new String(“Hello world!”);oString str2 = "Hello world!“;
18Creación de instanciasEl operador new:Reserva memoria para el objeto y retorna una referencia de la memoriaCuando creas un objeto se invoca el constructor de la claseEl constructor:Es un método especial que ejecuta las inicializaciones, tiene el mismo nombre de la clase
Contenidos de este tema19Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
20MétodosEs un trozo de código que lleva a cabo una acción más o menos compleja y que puede ser invocadoCaracterísticas de los métodos:Puede retornar un valor o ningunoSe le pueden pasar cuantos parámetros (argumentos) se quieranDespués de finalizar la ejecución del método pasa el control al método que lo ha invocado
21MétodosLos 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étodosEsto lo podemos hacer en Java creando cuantos métodos sean necesariosLa experiencia es la única buena consejera para valorar el ámbito de acción de un determinado método
22MétodosDos tipos de métodos:De instancia:Se deben llamar después de crear la instanciaSon los más comunesStaticSe llaman de la forma [ClassName].[methodName]
23MétodosPara 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 StringDespués crearemos métodos propios, pero de momento vamos a usar String para probarPara 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);
24MétodosVamos 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 xString str2 = "hello";//this will return a boolean value trueboolean result = str1.equalsIgnoreCase( str2 );
25MétodosMétodos static:Se pueden invocar sin instanciar la clasePertenece a la clase y no a una determinada instanciaSe distinguen de los métodos de una instancia por la palabra reservada staticPara invocar un método static:NombreClase.nombreMetodoStatic (parametros);
26MétodosEjemplos de métodos static://converts the String 10, to an integerint i = Integer.parseInt(“10”);//Returns a String representation of the integer argument as// an unsigned integer base 16String hexEquivalent = Integer.toHexString( 10 );
Contenidos de este tema27Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
28Paso de parámetrosPaso por valorCuando 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
29Paso de parámetrosPaso por valor
30Paso de parámetrosPaso por referenciaCuando 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
31Paso de parámetrosPaso por referencia
Contenidos de este tema32Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
33VariablesSon los identificadores de datos. En Java los llamamos PROPIEDADESContienen valores que queremos guardar a lo largo de un determinado tiempo de ejecuciónHay 3 tipos de variables:Local (automatic):Declarada dentro de métodoVisible sólo dentro del métodoSe mantiene internamente en pilaInstanciaDeclarada dentro del cuerpo de instancia, pero fuera de cualquier métodoPertenece a la propia instanciaNo se puede referir a ella desde el contexto staticClass (static)Declarada dentro del cuerpo de clase, pero fuera de cualquier métodoVa precedida del modificador staticPertenece a la claseCompartida por todas las instancias de la clase
Contenidos de este tema34Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
35Scope de una variableDetermina 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 memoriaEs determinado por el lugar de declaración de la variable dentro del programa
36Scope de una variableDetermina 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 memoriaEs determinado por el lugar de declaración de la variable dentro del programa
37Scope de una variable – ejemplo 1El 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.
38Scope de una variable – ejemplo 1En el main los scopes son:ages[] - scope Ai in B - scope Bi in C – scope CIn the test method, the scopes of the variables are,arr[] - scope Di in E - scope E
Contenidos de este tema39Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
40CastingSignifica mapeo de un tipo de objeto a otroSe puede hacer casting de:Tipos de datos primitivosObjetos con herenciaEl casting entre tipos de datos primitivos habilita la conversión de un tipo de valor en otroNormalmente entre tipos numéricosHay un tipo de datos primitivos que no podemos hacer Existe un tipo de datos al cual no le podemos hacer casting: booleanTipos de casting:ImplícitoExplícito
41CastingSuponemos que queremos guardar el valor de un int en una variable de tipo double:int numInt = 10;double numDouble = numInt; //implicit castEn 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 intOtro ejemplo:int numInt1 = 1;int numInt2 = 2;//result is implicitly casted to type doubledouble numDouble = numInt1/numInt2;
42CastingEn el casting explícito están implicadas clases relacionadas por herenciaEmployee emp = new Employee();VicePresident veep = new VicePresident();// no cast needed for upward useemp = veep;// must cast explicitlyveep = (VicePresident)emp;
Contenidos de este tema43Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos

03 Oop

  • 1.
    MÓDULO 3INTRODUCCIÓN AJAVA3.3 OOP40 HORASJesús Muñozjesus@iluego.com
  • 2.
    Contenidos tema 3– Introducción a JavaComenzamosBases del lenguaje JavaProgramación Orientada a Objetos (OOP)Clases y objetosCreando clasesPaquetes y java classpathJavabeansHerenciaClases abstractas e interfacesPolimorfismoClases internasExcepcionesLoggingNetworking2
  • 3.
    Contenidos de estetema3Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 4.
    Contenidos de estetema4Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 5.
    5Trabajando con clasesbuilt-inAl final de este tema el alumno podrá:Explicar la programación orientada a objetos (OOP) y algunos de sus conceptos asociados
  • 6.
  • 7.
    Diferenciar entre propiedades/métodosde instancia y de clase (static)
  • 8.
    Explicar el pasode mensajes entre objetos
  • 9.
    Identificar el scopede una variable
  • 10.
  • 11.
    Comparar objetos ydeterminar la clase de los mismos6Trabajando con clases built-inOOP, Programación Orientada a ObjetosEs una de las características principales de JavaEstos objetos definen propiedades y métodos
  • 12.
    7Trabajando con clasesbuilt-inOOP, Programación Orientada a ObjetosEs una de las características principales de JavaEstos objetos definen propiedades y métodos
  • 13.
    8Trabajando con clasesbuilt-inOOP 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 estetema9Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 15.
    10EncapsulaciónOOP trata dereproducir 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.
    11EncapsulaciónLo podemos considerarcomo un esquema de caja negraSe 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 estetema12Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 18.
    13Clases y objetosClasePodemosconsiderala como una plantilla, un prototipoEs la estructura fundamental en la OOPObjetoPropiedadesEspecifican los datos definidos en la claseMétodosEspecifican las operaciones sobre las propiedades. También definidos en la clase.Un objeto es una instancia de una claseLos valores de las propiedades de una instancia son diferentes de los de otra/s instancia/sLas instancias de la misma clase comparten los mismos métodos
  • 19.
    Contenidos de estetema14Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 20.
    15CaracterísticasReusabilidadA través deluso de instancias de una misma clase
  • 21.
    Contenidos de estetema16Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 22.
    17Creación de instanciasParacrear una instancia de una clase, usamos el operador newPor 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 newString str2 = new String(“Hello world!”);oString str2 = "Hello world!“;
  • 23.
    18Creación de instanciasEloperador new:Reserva memoria para el objeto y retorna una referencia de la memoriaCuando creas un objeto se invoca el constructor de la claseEl constructor:Es un método especial que ejecuta las inicializaciones, tiene el mismo nombre de la clase
  • 24.
    Contenidos de estetema19Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 25.
    20MétodosEs un trozode código que lleva a cabo una acción más o menos compleja y que puede ser invocadoCaracterísticas de los métodos:Puede retornar un valor o ningunoSe le pueden pasar cuantos parámetros (argumentos) se quieranDespués de finalizar la ejecución del método pasa el control al método que lo ha invocado
  • 26.
    21MétodosLos métodos contienenun propósito (lógica de negocio)La solución a veces pasa por la descomposición del problema en varios métodosEsto lo podemos hacer en Java creando cuantos métodos sean necesariosLa experiencia es la única buena consejera para valorar el ámbito de acción de un determinado método
  • 27.
    22MétodosDos tipos demétodos:De instancia:Se deben llamar después de crear la instanciaSon los más comunesStaticSe llaman de la forma [ClassName].[methodName]
  • 28.
    23MétodosPara ilustrar cómollamar 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 StringDespués crearemos métodos propios, pero de momento vamos a usar String para probarPara 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.
    24MétodosVamos a verdos 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 xString str2 = "hello";//this will return a boolean value trueboolean result = str1.equalsIgnoreCase( str2 );
  • 30.
    25MétodosMétodos static:Se puedeninvocar sin instanciar la clasePertenece a la clase y no a una determinada instanciaSe distinguen de los métodos de una instancia por la palabra reservada staticPara invocar un método static:NombreClase.nombreMetodoStatic (parametros);
  • 31.
    26MétodosEjemplos de métodosstatic://converts the String 10, to an integerint i = Integer.parseInt(“10”);//Returns a String representation of the integer argument as// an unsigned integer base 16String hexEquivalent = Integer.toHexString( 10 );
  • 32.
    Contenidos de estetema27Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 33.
    28Paso de parámetrosPasopor valorCuando 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.
  • 35.
    30Paso de parámetrosPasopor referenciaCuando 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.
  • 37.
    Contenidos de estetema32Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 38.
    33VariablesSon los identificadoresde datos. En Java los llamamos PROPIEDADESContienen valores que queremos guardar a lo largo de un determinado tiempo de ejecuciónHay 3 tipos de variables:Local (automatic):Declarada dentro de métodoVisible sólo dentro del métodoSe mantiene internamente en pilaInstanciaDeclarada dentro del cuerpo de instancia, pero fuera de cualquier métodoPertenece a la propia instanciaNo se puede referir a ella desde el contexto staticClass (static)Declarada dentro del cuerpo de clase, pero fuera de cualquier métodoVa precedida del modificador staticPertenece a la claseCompartida por todas las instancias de la clase
  • 39.
    Contenidos de estetema34Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 40.
    35Scope de unavariableDetermina 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 memoriaEs determinado por el lugar de declaración de la variable dentro del programa
  • 41.
    36Scope de unavariableDetermina 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 memoriaEs determinado por el lugar de declaración de la variable dentro del programa
  • 42.
    37Scope de unavariable – ejemplo 1El 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.
    38Scope de unavariable – ejemplo 1En el main los scopes son:ages[] - scope Ai in B - scope Bi in C – scope CIn the test method, the scopes of the variables are,arr[] - scope Di in E - scope E
  • 44.
    Contenidos de estetema39Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 45.
    40CastingSignifica mapeo deun tipo de objeto a otroSe puede hacer casting de:Tipos de datos primitivosObjetos con herenciaEl casting entre tipos de datos primitivos habilita la conversión de un tipo de valor en otroNormalmente entre tipos numéricosHay un tipo de datos primitivos que no podemos hacer Existe un tipo de datos al cual no le podemos hacer casting: booleanTipos de casting:ImplícitoExplícito
  • 46.
    41CastingSuponemos que queremosguardar el valor de un int en una variable de tipo double:int numInt = 10;double numDouble = numInt; //implicit castEn 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 intOtro ejemplo:int numInt1 = 1;int numInt2 = 2;//result is implicitly casted to type doubledouble numDouble = numInt1/numInt2;
  • 47.
    42CastingEn el castingexplícito están implicadas clases relacionadas por herenciaEmployee emp = new Employee();VicePresident veep = new VicePresident();// no cast needed for upward useemp = veep;// must cast explicitlyveep = (VicePresident)emp;
  • 48.
    Contenidos de estetema43Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 49.
    44Wrapper classesMuchas deesas 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 intDouble es una clase envoltura de la primitiva doubleLong es una clase envoltura de la primitiva longUsando las clases que corresponden a cada tipo de primitiva se puede crear un objeto que recoja el mismo valor
  • 50.
    45Wrapper classesLa siguientesentencia 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 estetema46Programación Orientada a Objetos (OOP)Trabajando con clases built-inEncapsulaciónClases y objetosCaracterísticasCreación de instanciasMétodosPaso de parámetrosVariablesScope de una variableCastingWrapper classesComparación de objetos
  • 52.
    47Comparación de objetosclassEqualsTest{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 querecordeis…“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ñozjesus@iluego.com