Está en la página 1de 12

Unidad 3.

Crear y Utilizar Objetos

Unidad 3. Crear y Utilizar Objetos

Objetivos
Construir programas computacionales creando y
utilizando objetos en JAVA:

 Declarar, instanciar e inicializar variables de referencia de


objetos
 Comparar cómo variables objeto de referencia se
almacenan en relación a las variables primitivas
 Utilizar una clase (la clase String) incluida en el Software
Developer Kit Java (SDK)
 Usar la especificación de biblioteca de clases de JAVA 2
Plataform Standard Edition para aprender sobre otras
clases de Interfaz de programación de aplicaciones (API).

Introducción
La programación orientada a objeto está basada en la abstracción de los
objetos del mundo real para la creación de programas computacionales.

Los programas orientado a objeto tienen una estructura que definen su


construcción en base a las clases; en esta unidad estaremos trabajando con la
creación y utilización de los objetos utilizando variables que hacen referencia a
los mismos, también veremos los objetos String, realizaremos una investigación
de las bibliotecas de las clases de java y la información de métodos.

Contenido de la unidad
3.1 Variables de referencia a objeto
3.2 Declaración de variable de referencia a objeto
3.3 Creación de instancia de objeto
3.4 Inicialización de variable de referencia a objeto
3.5 Uso de variable de referencia a objeto
3.6 Uso de la clase String
3.7 Bibliotecas de las clases JAVA
3.8 Información sobre los métodos

MAESTROS: José Amado y Romery Alberto Pagina:1 de 12


Unidad 3. Crear y Utilizar Objetos

3.1 Variables de referencia a objetos


Una variable de referencia a objetos contiene la dirección de un objeto
almacenado en memoria.
Para crear una referencia a objeto se deben realizar los siguientes pasos para
declarar, inicializar y crear una variable de referencia a objetos:
 Declarar una referencia al objeto
 Crear la instancia del objeto
 Inicializar la variable de referencia la objeto

3.2 Declaración variable de referencia a objetos


Para declarar una variable de referencia a objetos, se debe especificar la clase a
partir de la cual se desea crear un objeto y seleccionar el nombre que se desee
utilizar para hacer referencia al objeto. Una vez creada la referencia al objeto,
podrá crear el objeto al cual desea hacer referencia. Sin embargo, la creación de
la instancia de un objeto y la asignación del mismo a una variable de referencia a
objetos deben realizarse en la misma línea de código. A continuación se presenta
la sintaxis para la declaración de una variable de referencia a objetos, la creación
de la instancia al objeto e inicialización de la variable de referencia de objeto:
Classname identificador = new Classname();
Dónde:
classname: es el nombre la clase que hayamos definido previamente.
Identificador: es el nombre que le deseamos poner a la variable que hará
referencia al objeto.
= : Es el operador de asignación para inicializar la variable de referencia a objeto
colocada a la izquierda con la referencia del objeto creado a la derecha del
operador.
new: Es la palabra reservada que posee el lenguaje para crear los objetos y
asignarle espacio en memoria.
Classname(): Es como especificamos el tipo de objeto que deseamos crear a
partir de la clase predefinida, identificada con el nombre con el cual la hayamos
definido.
En la siguiente figura se muestra un ejemplo concreto, donde se crea una variable
de referencia a objeto a partir de la clase Cliente, llamada miCliente

MAESTROS: José Amado y Romery Alberto Pagina:2 de 12


Unidad 3. Crear y Utilizar Objetos

1.(Cliente miCliente), se crea el objeto cliente 2.(new Cliente) y se le asigna a la


variable de referencia 3.(Cliente miCliente = new Cliente(); ).

3.3 Creación de instancia de objeto

En el ejemplo anterior se muestra la clase PruebaCliente que crea una variable


de referencia a objetos llamada miCliente, creando además un objeto del tipo
Cliente con la palabra reservada new y al mismo tiempo se inicializa la variable
de referencia a objeto con el operador = asignando el objeto Cliente recién creado
a la variable de referencia miCliente. Podrá decirse que “la referencia a objetos
miCliente apunta al objeto Cliente”.

Tener en cuenta que para el ejemplo anterior debe haberse creado previamente la
clase Cliente definida en un fichero con sus características y métodos
correspondientes, según muestra la imagen presentada a continuación:

MAESTROS: José Amado y Romery Alberto Pagina:3 de 12


Unidad 3. Crear y Utilizar Objetos

3.4 Inicialización de variable de referencia a objetos

La creación de una variable de referencia a objetos puede realizarse en una o dos


líneas de código, en el pasado ejemplo podemos observar que todo está definido
en una sola línea, pero también podemos programarlo en dos línea de código de
la siguiente manera:

3.5 Uso de variable de referencia a objetos

Uso de variables referencia a objetos para manipular datos:

La palabra clave new se usa para crear una instancia de la clase.


Antes de ser instanciada con new no consume memoria,
simplemente es una declaración de tipo. Después de ser
instanciado un nuevo objeto Cliente se pueden referenciar las
variables de instancias e invocar los métodos con el nombre del
objeto.

Las instancias de objeto válidas pueden usarse para manipular


los datos de un objeto o para llamar a los métodos de un objeto,
como se muestra en la línea 8 del código del ejemplo anterior.
Para manipular los valores o invocar los métodos de un objeto
específico, se utiliza el operador punto ( . ) como una referencia
a objetos.

Cada objeto es una instancia de una clase. Esto es, es la


implementación de las características descritas por la clase a la
que pertenece. Cuando se invoca un método sobre un objeto, se
examina la clase para encontrar el código que se va a ejecutar.

MAESTROS: José Amado y Romery Alberto Pagina:4 de 12


Unidad 3. Crear y Utilizar Objetos

A continuación presentamos un ejemplo para comprender mejor los aspectos


señalados anteriormente, tomaremos la clase cliente y crearemos otra clase
PruebaCliente2 para manipular los datos a través de dos instancias diferentes al
objeto, en la cual visualizaremos su comportamiento:

En primer lugar declaramos el nombre de la clase Cliente en el fichero


Cliente.java. Una declaración de clase crea un nombre de tipo Java, de forma que
las referencia miCliente o tuCliente a un objeto de ese tipo se puede declarar
como Cliente miCliente o bien Cliente tuCliente. A partir de este momento,
miCliente y tuCliente son una referencia a un objeto de la clase Cliente. La
declaración no crea el objeto, únicamente declara una referencia a un objeto
Cliente. La referencia es inicialmente null y el objeto referenciado por micliente o
tuCliente no existe en realidad hasta que se crea explícitamente con new Cliente().

Lo que hemos hecho en el codigo presentado anteriormente es crear dos


instancias de la clase Cliente: miCliente y tuCliente, ambas son creadas en sus
espacio de memoria independiente, aunque son instancia de una misma clase,
están almacenadas en direcciones de memoria diferente e inicialmente se le
asignarán los mismos valores en sus variables de instancia, ya que tomaran los
datos con los cuales se inicializaron en la clase, por lo que al invocar el método
muestraClienteInfo() mediante los dos objetos, la primera vez en las línea 9 y 10
respectivamente, mostraran la misma información. Pero luego siguiendo el código
modificamos los valores de las variables miembro del objeto miCliente con datos

MAESTROS: José Amado y Romery Alberto Pagina:5 de 12


Unidad 3. Crear y Utilizar Objetos

diferentes y por eso en una segunda invocación al mismo método en las líneas 19
y 20 veremos como los datos varían cuando referenciamos con el objeto
miCliente y otra diferente cuando referenciamos con el objeto tuCliente.
Al compilar y ejecutar el programa anterior tendremos como resultado la salida
que se muestra a continuación:

Almacenamiento de variables de referencia a objetos en la memoria1


Las variables primitivas contienen
valores, mientras que las variables de
referencia contienen la ubicación o la
dirección de memoria de los objetos.
Las variables de referencia a objetos y
sus valores se almacenan en la
memoria Stack, mientras que los
objetos a los que apuntan se
almacenan en la memoria Heap.
El código mostrado en la figura de la
izquierda muestra como se crean dos
instancias de la clase cliente: miCliente
y tuCliente, estas son dos variables de
referencia a objetos que se almacenan

1
Fundamentals of the Java™ Programming Language

MAESTROS: José Amado y Romery Alberto Pagina:6 de 12


Unidad 3. Crear y Utilizar Objetos

en la memoria Stack y guardan la dirección de memoria donde se almacena el


objeto en la memoria Heap. La variable primitiva NoRegistro se almacenan en la
memoria Stack.

Asignación de la referencia de una variable a otra variable


Al asignar una variable de referencia a objetos a otra variable de
referencia a objetos, el valor del elemento de la derecha se
asigna al elemento de la izquierda, al igual que sucede con las
variables primitivas.

Ambas variables pasan a apuntar al mismo objeto, aunque el otro


objeto sigue existiendo. Por ejemplo al ejecutar el código que se
muestra en la siguiente figura, las variables de referencia
miCliente y tuCliente contienen la misma dirección de objeto al
ejecutar la línea de código: miCliente = tuCliente;

En este código se asigna la dirección de la variable de referencia


tuCliente (186d4c1) a la variable de referencia miCliente. Ambas
variables pasan a apuntar al mismo objeto, aunque el otro objeto,
al cual apuntaba anteriormente la variable miCliente, sigue
existiendo, pero si su dirección de memoria no es asignada a otra
variable de referencia el recolector de JAVA lo limpiará y lo
eliminará de la memoria la próxima vez que se ejecute.

Fuente: Fundamentals of the Java™ Programming Language

MAESTROS: José Amado y Romery Alberto Pagina:7 de 12


Unidad 3. Crear y Utilizar Objetos

3.6 Uso de la clase String


La clase String es una de las diversas clases que se incluyen en las bibliotecas de
clase java. Esta clase permite almacenar una secuencia de caracteres. Es
generalmente usada en la mayoría de los programas. Por lo tanto, resulta
importante conocer algunas de las características especiales de las cadenas en el
lenguaje de programación JAVA.
Hay dos formas de crear un objeto de tipo String en Java:
 Con la palabra clave new
String miNombre = new String (“Juan Perez”);
 Sin la palabra clave new
String miNombre = “Juan Perez”
Las variables de referencia a objetos String se almacenan en la memoria del
mismo modo que las otras referencias a objeto. Se crea una variable con un
nombre, ejemplo miNombre, que contiene una referencia a la ubicación del objeto
String en la memoria. El objeto String tiene un valor, proporcionado por una
cadena de caracteres que se indica durante la inicialización.
String es una clase predefinida y especial de Java orientada a manejar cadenas
constantes de caracteres. Una instancia de la clase String es inmutable, es decir,
una vez que se ha creado y se le ha asignado un valor, éste no puede modificarse
añadiendo, eliminando o cambiando caracteres. El siguiente código muestra
diferentes ejemplos de creación de referencias e instancias de la clase String:

Como se ha visto anteriormente, las constantes de la clase String o cadena de


literales se indican entre comillas dobles, sin embargo estas comillas no se
considerean parte de la cadena.

MAESTROS: José Amado y Romery Alberto Pagina:8 de 12


Unidad 3. Crear y Utilizar Objetos

Operaciones con instancias de la clase String

Al ser un objeto, una instancia de la clase String no sigue las normas de


manipulación de los datos de tipo primitivo con excepción del operador
concatenación. El operador ( + ) realiza una concatenación cuando, al menos, un
operando es un String. El otro operando puede ser de un tipo primitivo. El
resultado es una nueva instancia de tipo String. Por ejemplo:

La comparación de dos objetos String no se realiza con el operador igualdad (==),


ya que se compararían las referencias, sino que se realiza con el método equals,
de forma que cadena1.equals(cadena2) devuelve true si cadena1 y cadena2
hacen referencia a un mismo valor. Los métodos más importantes de la clase
String se resumen en la siguiente tabla.

Método Acción
Devuelve la longitud de la cadena
length()
indexOf(‘caracter’) Devuelve la posición de la primera aparición de
carácter.
lastIndexOf(‘caracter’) Devuelve la posición de la última aparición de
caracter
charAt(n) Devuelve el carácter que está en la posición n
substring(n1,n2) Devuelve la subcadena comprendida entre las
posiciones n1 y n2 ambas incluidas
toUpperCase() Devuelve la cadena convertida a mayúsculas
toLowerCase() Devuelve la cadena convertida a minúsculas
equalsIgnoreCase("cad") Igual que equals pero sin considerar mayúsculas y
minúsculas

MAESTROS: José Amado y Romery Alberto Pagina:9 de 12


Unidad 3. Crear y Utilizar Objetos

3.7 Bibliotecas de las clases JAVA


Todos los kits de desarrollo de software de Java contienen una serie de clases
preestablecidas que se pueden utilizar en los programas. Estas bibliotecas de
clases de Java se documentan en las especificaciones de bibliotecas de clase que
esta formada por una serie de páginas web en formato HTML pudiéndose cargar
en un navegador web.

Imagen tomada de: Fundamentals of the Java™ Programming Language

Una especificación de bibliotecas de clases Java es un documento


muy detallado que explica las clases de una API (Application
Programming Interface). Todas las API incluyen documentación en
la que se describe el uso de las clases, las variables y los métodos
en los programas. Si desea averiguar cómo realizar un conjunto de
tareas determinado, las especificaciones de las bibliotecas es la
mejor fuente de informacion sobre las clases preestablecidas en
Java.
Es posible acceder a las especificaciones API de Java en línea
desde el sitio web: http://docs.oracle.com/javase/7/docs/api/

MAESTROS: José Amado y Romery Alberto Pagina:10 de 12


Unidad 3. Crear y Utilizar Objetos

3.8 Información sobre los métodos


La especificación de biblioteca de clases tiene distintos métodos println, y puede
seleccionar un método según las acciones que desee ejecutar en el programa.
 La clase PrintStream tiene otros métodos para imprimir los resultados en
una pantalla, por ejemplo el método print.
 El método println es diferente del método print ya que termina la línea para
que el texto adicional se escriba en una nueva línea.
 El método a utilizar print o println dependerá de los requisitos del programa
o como deseemos que se presente la información.
 Ejemplos diferencias entre los metodos print y println:

Este programa tiene como salida:

Si cambiamos el código y en el segundo mensaje usamos el método println:

Tendremos como salida:

MAESTROS: José Amado y Romery Alberto Pagina:11 de 12


Unidad 3. Crear y Utilizar Objetos

Java™ Platform Practique la búsqueda en la API de java realizando la


Standard Ed. 7 exploración de la clase System:
 Busque en google “API de java”
 Pulse sobre el enlace que le direccione a las bibliotecas
de especificaciones de clase de Java.
 Haga click en la clase System
 Haga click en el vínculo de la variable out
 Haga click en el vínculo de la clase PrintStream

Revise el contenido y explore otras clases adicionales.

Bibliografía

 Perez, G. G. (2008). Aprendiendo JAVA y Programación orientada a


objetos. Libro de libre descarga, recuperado el 3 Junio 2013 de:
http://www.compunauta.com/forums/linux/programacion/java/ebook.html
 Sun Microsystems, Inc. (2008). Fundamentals of the Java™
Language. Sun Services, Revisión A.

MAESTROS: José Amado y Romery Alberto Pagina:12 de 12

También podría gustarte