buscador

Visita

mi茅rcoles, 6 de julio de 2016

馃搷Actividad 5 : Creaci贸n 馃摉 y 馃憠 Uso de Objetos en Java

Bienvenido al Blog, en esta oportunidad desarrollaremos un tema de introducci贸n al desarrollo de programaci贸n orientado a objetos, para entender sobre c贸mo desarrollar un sistema con el lenguaje java veremos acerca de creaci贸n y uso de objetos en Java.

  Sobre el contenido …

v  El contenido de este blog tiene como fuente el curso Fundamentos de programaci贸n de Oracle.

v  Con algunos agregados del autor "EL INFORMATICO IBERO"

Para comenzar con el tema indicado tenemos que saber c贸mo Declarar variables, instanciarlas, etc. Por ello se tiene que saber acerca de:

Declaraci贸n de referencias a objetos, instanciaci贸n de objetos e inicializaci贸n de referencias a objetos

  Las variables de referencia a objetos son variables que contienen la direcci贸n de un objeto en la memoria. Una carta es como una variable de referencia porque contiene una direcci贸n que remite a un determinado objeto “edificio”. En la ilustraci贸n siguiente se muestran varias direcciones que se帽alan a diferentes casas.

  En esta secci贸n, crear谩 clases e instanciar谩 objetos dentro de esas clases.  En el ejemplo siguiente se muestra una clase ShirtTest que crea una una variable de referencia a un objeto (myShirt), e inicializa la variable para que se帽ale a una instancia de la clase Shirt.  Una vez creada e inicializada la variable de referencia, puede utilizarse para llamar al m茅todo displayInformation del objeto  Shirt.

  Declarar e inicializar una variable de referencia es muy parecido a declarar e inicializar una variable de un tipo primitivo. La 煤nica diferencia reside en que es preciso crear una instancia de un objeto (a partir de una clase) al que debe hacer referencia la variable antes de inicializar la instancia del objeto.

  Para declarar, instanciar e inicializar variables de referencia a objetos:

o   Declare una referencia al objeto especificando su identificador y el tipo de objeto al que se帽ala la referencia (la clase del objeto).

o   Cree la instancia del objeto utilizando la palabra clave new.

o   Inicialice la variable de referencia asignando el objeto a dicha variable.

Puede realizar estos tres pasos en una sola l铆nea de c贸digo (como se ha mostrado anteriormente en el ejemplo de ShirtTest.java)

  Declaraci贸n de variables de referencia a objetos

o   Para declarar una variable de referencia a un objeto, especifique la clase a partir de la que quiere crear el objeto y seleccione el nombre que desee utilizar para hacer referencia a ese objeto. La sintaxis para declarar variables de referencia a objetos es:

NombreDeClase identificador;

o   Donde:

  NombreDeClase es la clase o tipo de objeto al que hace referencia la variable.

  El identificador es el nombre asignado a la variable de tipo NombreDeClase.

o   Por ejemplo, en la clase ShirtTest crea una variable de referencia a un objeto llamada myShirt. En principio, las referencias de objeto que son variables miembro se inicializan con null. Dado que la variable myShirt es una variable local declarada dentro de un m茅todo, no se inicializa.

o   Como ocurre con todas las variables, es importante que el identificador refleje la finalidad de la variable y que siga las reglas de nomenclatura propias de los identificadores.

  Instanciaci贸n de un Objeto


o   Una vez declarada la referencia a un objeto, puede crearse el objeto al que hace referencia. La sintaxis para instanciar un objeto es:

new NombreDeClase();

o   Donde:

  La palabra clave new crea una instancia de un objeto a partir de una clase.

  NombreDeClase es la clase o el tipo de objeto que se va a crear.

o   La instanciaci贸n del objeto y su asignaci贸n a la variable de referencia deben hacerse en la misma l铆nea de c贸digo. En la secci贸n siguiente se muestra c贸mo escribir c贸digo que instancie un objeto y efect煤e la asignaci贸n (inicialice la variable de referencia al objeto).

  Inicializaci贸n de variables de referencia a objetos

o   El 煤ltimo paso para crear una variable de referencia a un objeto es inicializar la variable asign谩ndole el objeto reci茅n creado. Al igual que ocurre con la asignaci贸n o inicializaci贸n de las dem谩s variables, esto se hace mediante el signo igual (=). La sintaxis para inicializar un objeto en una variable de referencia es:

identificador = new NombreDeClase();

o   Por ejemplo, la clase ShirtTest asigna el nuevo objeto Shirt a la variable de referencia myShirt. Se puede decir que “La variable de referencia myShirt se帽ala a un objeto Shirt”.

myShirt = new Shirt();

o   Una vez creada una instancia v谩lida de un objeto, 茅sta puede utilizarse para manejar los datos del objeto o llamar a los m茅todos del objeto.

  Creaci贸n de variables de referencia a objetos utilizando una o dos l铆neas de c贸digo

o   En el ejemplo de ShirtTest, la creaci贸n de la referencia de objeto, la creaci贸n del nuevo objeto Shirt y la inicializaci贸n de la variable se efect煤an en la misma l铆nea de c贸digo. Por ejemplo:

Shirt myShirt = new Shirt();

o   No obstante, tambi茅n est谩 permitido crear la variable de referencia a un objeto en una l铆nea y efectuar la creaci贸n del nuevo objeto y la asignaci贸n del objeto a la referencia en otra l铆nea. Las dos l铆neas de c贸digo siguientes son equivalentes a la  l铆nea mostrada anteriormente:

Shirt myShirt;

myShirt = new Shirt();

  Uso de una variable de referencia a objetos para manejar datos

o   El operador punto (.) se utiliza con las referencias a objetos para manipular los valores o hacer llamadas a los m茅todos de un objeto concreto. Por ejemplo, para cambiar la variable colorCode del nuevo objeto por ‘G’ (correspondiente a verde), deber铆a agregar la siguiente l铆nea de c贸digo a su clase ShirtTest:

myShirt.colorCode = ‘G’;

o   A continuaci贸n se muestra una clase ShirtTestTwo nueva que crea dos variables de referencia, myShirt y yourShirt, que hacen referencia a diferentes objetos Shirt.

o En este ejemplo, la declaraci贸n, instanciaci贸n e inicializaci贸n de cada variable de referencia se realizan en la misma l铆nea de c贸digo. La declaraci贸n se sit煤a a la izquierda del signo igual y la instanciaci贸n del objeto se sit煤a a la derecha de este signo. El signo igual asigna cada nueva instancia del objeto a la referencia reci茅n declarada.

o  Una vez creadas las referencias a los objetos, cada objeto puede manejarse de forma independiente. En concreto, el objeto al que se帽ala la referencia myShirt recibe un c贸digo de color (colorCode) ‘R’ de rojo, mientras que el objeto al que se帽ala la referencia yourShirt recibe el valor ‘G’ de verde en colorCode.

  • Puede escribir l铆neas de c贸digo para crear tantas referencias a objetos Shirt como desee, en funci贸n de la cantidad de memoria que tenga el equipo inform谩tico.
  • Una forma de interacci贸n de los objetos tiene como finalidad hacer que un objeto manipule los datos de otro objeto. Asimismo, un objeto puede llamar a los m茅todos de otro objeto. Por ejemplo, la referencia al objeto myShirt llama al m茅todo displayInformation. La llamada a m茅todos mediante el operador punto (.) se describe m谩s adelante.

  Almacenamiento de variables de referencia a objetos en la memoria

o   Si las variables de tipos primitivos almacenan valores, las variables de referencia a objetos almacenan la ubicaci贸n (direcci贸n de memoria) de los objetos en la memoria.

o   Las direcciones de memoria normalmente se escriben en notaci贸n decimal, empezando desde 0x (por ejemplo, 0x334009). Cada direcci贸n es exclusiva de un objeto y se asigna mientras se ejecuta un programa.

o   En la figura siguiente se muestra c贸mo se almacenan de manera diferente las variables de tipos primitivos y las de referencia a objetos.

  • Las variables que hacen referencia a objetos locales y sus valores se guardan en la memoria de pila mientras que los objetos a los que se帽alan se almacenan en el espacio de memoria din谩mica (heap). Las variables de referencia a los objetos myShirt y yourShirt contienen direcciones que se帽alan a diferentes objetos Shirt.

  Asignaci贸n de una referencia de una variable a otra

o   ¿Qu茅 cree que ocurre cuando se asigna una variable de referencia a otra variable de referencia? Por ejemplo, cuando se ejecuta el siguiente c贸digo:

o   Las variables de referencia a myShirt y yourShirt contienen la misma direcci贸n de acceso al mismo objeto.

o   Como en el caso de las variables de tipos primitivos, el valor del t茅rmino situado a la derecha se asigna al t茅rmino de la izquierda. En el ejemplo anterior, la direcci贸n de la variable yourShirt, por ejemplo 0x99f311, se asigna a la variable myShirt. Ambas variables ahora se帽alan al mismo objeto, aunque el otro objeto, aquel al que antes se帽alaba la variable myShirt, sigue existiendo.

  • A menos que haya otra variable de referencia se帽alando al primer objeto Shirt, el espacio de memoria utilizado por esa direcci贸n se recicla.

Uso de la clase String

  String es una de las muchas clases incluidas en las bibliotecas de clases de Java. La clase String permite guardar una secuencia de caracteres. Es una clase muy utilizada a lo largo de los programas. Por tanto, es importante comprender algunas de las caracter铆sticas especiales de las secuencias de caracteres en el lenguaje de programaci贸n Java.

  Creaci贸n de un objeto String con la palabra clave new

  Hay diferentes maneras de crear e inicializar un objeto String. Una de ellas es usar la palabra clave new para crear un objeto String y, al mismo tiempo, definir la secuencia de caracteres con la que se va a inicializar ese objeto:

String myName = new String(“Alfredo Lopez”);

  Cuando se crea un objeto, se llama a un constructor especial denominado constructor. Los constructores se explican m谩s adelante.

  La creaci贸n de un objeto String con la palabra new origina dos objetos String en la memoria y coloca la representaci贸n de caracteres del literal String en un espacio de la memoria din谩mica reservado para literales que se denomina grupo de almacenamiento de literales.

  Creaci贸n de un objeto String sin la palabra clave new

  Los tipos String constituyen una excepci贸n porque son la 煤nica clase que permite crear objetos sin usar la palabra clave new. Por ejemplo:

String myName = “Alfredo Lopez”;

  Esta sintaxis es muy similar a la utilizada para declarar e inicializar variables de tipos de datos primitivos.

  La creaci贸n de un objeto String sin usar la palabra clave new da lugar a un objeto String y coloca la representaci贸n de la secuencia de caracteres en el grupo de almacenamiento de literales (si el literal String no existe ya en ese grupo de almacenamiento). Para evitar la duplicaci贸n innecesaria de objetos String en la memoria, es mejor crear objetos String sin la palabra clave new.

  Almacenamiento de objetos String en la memoria

  El almacenamiento de las variables de referencia a objetos String en la memoria funciona de la misma forma que otras referencias a objetos.  Por ejemplo, la variable myString contiene una referencia a la direcci贸n de memoria en la que est谩 situado el objeto String.

  El objeto String tiene un valor, una secuencia de caracteres que se ha suministrado durante la inicializaci贸n.

  En la figura siguiente se ilustra c贸mo aparece en la memoria una variable de referencia a un objeto String.

  La direcci贸n contenida en la variable myString hace referencia a un objeto String de la memoria. El objeto String tiene una variable de atributo llamada [C value que contiene una direcci贸n referida a la secuencia de caracteres.

  Uso de variables de referencia para objetos String

o   Las variables de objetos String se utilizan como las variables de tipos primitivos. En el ejemplo siguiente se muestra una clase que indica el nombre y el trabajo de una persona:

o   En el ejemplo anterior se muestra una clase con los valores predeterminados (“Juan” y “Probador de helados”), que ser铆an el nombre y el trabajo predeterminados para cada objeto PersonTwo. Esta sintaxis permite conocer la clase String sin tener que hacer llamadas especiales a los m茅todos. En general, no le interesar谩 que sus clases contengan datos espec铆ficos de la instancia. Un valor m谩s adecuado para la variable name es “-nombre requerido-”. Un valor m谩s adecuado para la variable job es “-trabajo requerido-”.

Estudio de las bibliotecas de clases de Java

  Todos los SDK de tecnolog铆a de Java contienen una serie de clases precodificadas que se utilizan en los programas. Estas bibliotecas est谩n documentadas en la especificaci贸n de las bibliotecas de clases correspondientes a la versi贸n del SDK que se est茅 utilizando. La especificaci贸n se compone de una serie de p谩ginas web en formato HTML (Hypertext Markup Language) que pueden cargarse en los navegadores web.

  Especificaci贸n de la biblioteca de clases de Java

  Una especificaci贸n de biblioteca de Java es un documento muy detallado donde se explican las clases del Application Programming Interface (API). Cada API incluye documentaci贸n donde se describe el uso de las clases, las variables y los m茅todos de los programas.

  Cuando busque una forma de realizar ciertos conjuntos de tareas, esta especificaci贸n es la mejor fuente de informaci贸n sobre las clases precodificadas de las bibliotecas de Java.

  Para ver la especificaci贸n del API de Java SE en Internet, vaya al siguiente sitio web:. http://www.oracle.com/technetwork/java/javase/documentation/index.html

  Y seleccione el v铆nculo de los documentos fundamentales del API correspondiente al n煤mero de versi贸n del JDK que est茅 utilizando. Por ejemplo:

1.       http://docs.oracle.com/javase/6/docs/api/

2.       http://docs.oracle.com/javase/7/docs/api/

En la figura siguiente puede verse un ejemplo de la documentaci贸n correspondiente a una clase del API:

  Uso de la especificaci贸n de la biblioteca de clases de Java para obtener informaci贸n sobre un m茅todo

o   A lo largo de todo el curso ha estado utilizando la clase System. En concreto, ha utilizado el m茅todo println para mostrar en la pantalla la salida de los programas: System.out.println(datos_para_imprimir_en_la_pantalla);

o   El m茅todo System.out.println es un m茅todo que viene precodificado en el lenguaje de programaci贸n Java. Utilice los pasos siguientes para obtener m谩s informaci贸n sobre este m茅todo a trav茅s del API de Java SE:

  Utilice el navegador web para buscar la primera p谩gina de la documentaci贸n del API de Java SE.

  Haga clic en la clase System de la lista.

  Observe que la clase System posee una variable llamada out que es una variable de referencia a un objeto PrintStream. De hecho, println es un m茅todo perteneciente a la clase PrintStream.

  Haga clic en el v铆nculo de la variable out para ver m谩s datos sobre esta variable.

  Haga clic en el v铆nculo de la clase PrintStream al comienzo de la explicaci贸n relativa a la variable out.

  Desplace hacia abajo el texto del m茅todo println. Hay varios m茅todos println. La clase PrintStream tiene otros m茅todos para imprimir la salida en una pantalla.

o   Por ejemplo, dispone del m茅todo print. La documentaci贸n aclara que la diferencia entre los m茅todos println y print es que println aplica un salto de l铆nea, de forma que el texto adicional se imprime en una l铆nea nueva. Por ejemplo:

o   Presenta lo siguiente en la pantalla: Carpe diemDisfruta de la vida

o   Por tanto, en funci贸n de lo que deba hacer el programa, preferir谩 usar el m茅todo print en lugar de println.

o   Comprender el modo de usar la documentaci贸n de la biblioteca de clases de Java SE es fundamental para explotar al m谩ximo todo el potencial de la tecnolog铆a Java.

No hay comentarios.:

Publicar un comentario

Raul Tamani A. ©. Im谩genes del tema de fpm. Con tecnolog铆a de Blogger.

Adblock Detectado

Apoya este sitio desactivando el Adblock para seguir navegando. ¡Gracias!

¡Ya Desactive el Adblock!