You are on page 1of 10

El siguiente texto es una traduccin no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningn

momento reemplazar los contenidos generados por este grupo. Por ser una traduccin puede traer consigo errores de interpretacin. Tambin se han realizado algunos cambios para el contexto del curso. Se realizaran las acciones necesarias si el grupo JEDI o un representante del mismo exigieran la no utilizacin de este material.

Modulo 11. Clases y Objetos en Java Clases y Objetos En el mundo del software, un objeto es un componente de software con estructura similar a los objetos del mundo real. Cada objeto est compuesto por un juego de datos (propiedades y/o atributos) que son las variables que describen las caractersticas esenciales del objeto, tambin consiste en un juego de mtodos (comportamientos) que describen como el objeto se comporta. La clase es la estructura fundamental en la programacin orientada a objetos. Esta se puede tomar como una plantilla, un prototipo o un anteproyecto de los objetos. Esta consiste en dos tipos de miembros que son llamados campos (propiedades o atributos) y mtodos. Los campos especifican el tipo de datos definidos por la clase, mientras que los mtodos especifican las operaciones. Un objeto es una instancia de una clase. Las clases proporcionan la propiedad de la reusabilidad, los programas de software pueden usar una clase una y otra vez para crear muchos objetos. Variables de instancia Cuando se crea una instancia de un objeto se obtiene un juego nuevo de variables, sin embargo, la implementacin de los mtodos es compartida entre los objetos de la misma clase. Variables estticas Adicional a las variables de instancia, es posible definir variables de la clase, siendo estas variables pertenecientes a la clase. Estas variables almacenan el mismo valor para todos los objetos de la misma clase, incluso an cuando no existe ninguna instancia de la clase. Estas variables son conocidas como Variables Estticas.

CLASES
Instancia de una clase Para crear un objeto o una instancia de una clase, utilizamos el operador new, ejemplo, se escribe el siguiente cdigo si se desea crear una instancia de la clase String.

El operador new localiza memoria para el objeto y retorna una referencia a la posicin de memoria. Cuando se crea un objeto, se esta invocando al constructor. El constructor es el mtodo encargado de construir todas las instancias de la misma clase.

Declaracin de una clase en Java. La declaracin de una clase en java no es diferente a escribir en sintaxis Java una clase de la programacin orientada a objetos, por esto es primordial comprender los conceptos de clase, objeto, herencia, interfaz, encapsulacin, variables (estados) de los objetos, comportamiento de los objetos. Recordemos que una clase es el modelo de determinado tipos de objetos, es la definicin del objeto en si.

Una clase en java se declara de la siguiente forma:


ModificadorAcceso class NombreClase { // Variable, campos o estados; // Constructor; y // Funciones, mtodos o mensajes }

Modificador de acceso se estudiara ms adelante. En detalle la sintaxis se refiere a:

class es la palabra reservada del lenguaje que se usa para especificar que se esta declarando una clase. Variables, campos o estados son exactamente eso, variables de clase, estados de los objetos de este tipo de clase, recordemos el concepto de encapsulacin. Funciones, mtodos o mensajes, son las declaraciones a las funciones o mensajes para legrar la comunicacin con los objetos de este tipo o clase. Constructor, es un mtodo que se ejecuta cuando se instancia o se crea un nuevo objeto de esta clase. Ahora bien, en la programacin orientada a objetos se estudiaron tambin conceptos como la herencia o las interfaces. As que: Declaracin de una clase en Java que hereda otra clase.
ModificadorAcceso class NombreClaseHija extends ClasePadre { // campos o estados; // Constructor; y // Funciones, mtodos o mensajes }

La clase hija contiene todos los mtodos y variables de la ClasePadre, en java no existe la herencia mltiple, sea, una clase no puede heredar ms de una ClasePadre, por lo menos no directamente. Otro concepto estudiado es el concepto de interfaz, as que:

Declaracin de una clase en Java que implemente una interfaz.


ModificadorAcceso class NombreClaseImplementacin implements ClaseInterfaz1, ClaseInterfaz2 { // campos o estados; // Constructor; y // Funciones, mtodos o mensajes }

Esta clase implementa dos interfaces, la lista de interfaces que implementa esta separada por el carcter coma (,). Nota: El nombre de la clase NombreClaseImplementacin no contiene espacios, la primera letra de cada palabra esta en mayscula.

Modificador de acceso de una clase. Es la forma de determinar como otras clases pueden acceder a la clase, los modificadores de acceso de una clase son

private: Se permite acceder a la clase solo desde clases que se encuentren ubicadas dentro del mismo paquete. public: Con este se permite que se acceda a la clase desde cualquier otra clase, no importando su ubicacin.

Tipos de variables en una clase. En una clase existen 3 tipos de variables: a. Variables miembros de la clase campos. En la programacin orientada a objetos estas variables son los campos o estados de la clase. Se construyen mediante 3 componentes: Uno o ms modificadores de acceso. Dentro de los ms utilizados estn: private: Solo es posible acceder al campo dentro de la clase. public: Es posible acceder al campo desde cualquier otra clase. Importante, estos modificadores actan diferente que los modificadores de la clase. El tipo de dato, recordemos que Java tienen tipos de datos primitivos como int, short, double, boolean, char. El tipo de dato puede ser tambin un tipo de Clase en particular, para lo cual la variable sera un objeto de dicha clase. El nombre de la variable, debe cumplir las reglas de creacin de variables estudiadas en el modulo 5. Ejemplo:
ModificadorAcceso class NombreClase { private static int campoEntero; // Constructor; y // Funciones, mtodos o mensajes }

b. Variables en bloques de cdigo, incluyendo el bloque de cdigo de los mtodos. Se conocen con el nombre de variables locales, se encuentran dentro de un bloque de cdigo o dentro del cuerpo de un mtodo. La variable solo existe en el mbito sobre el cual fue creada, es decir, dentro del bloque que fue creada. La forma de declarar estas variables es: El tipo de dato

El nombre de la variable Ejemplo:


ModificadorAcceso class NombreClase { private static int campoEntero; // Constructor; y public void unMetodo() { char variableLocal; } // Funciones, mtodos o mensajes }

c. Variables en la declaracin de un mtodo parmetros de un mtodo. Las variables utilizadas en la declaracin de un mtodo son los llamados parmetros del mtodo, su construccin esta dada por: El tipo de dato El nombre de la variable

La lista de parmetros a pasar en un mtodo esta separada por el carcter coma (,). Ejemplo:
ModificadorAcceso class NombreClase { private static int campoEntero; // Constructor; y public void unMetodo() { char variableLocal; } public void otroMetodo(int primerP, char segundoP) { // Cuerpo del mtodo, primerP y segundoP solo existen en este mbito } // Funciones, mtodos o mensajes }

Metodos de Instancia Para realizar la llamada de un mtodo de un objeto instacia de una clase seguimos la siguiente notacin: miObjetoInstacia.miNombreMetodo( parmetros ) Mtodos estaticos Cuando realizamos la llamada a un mtodo estatico se esta realizando una llamada al mtodo en la clase y no es necesario tener una instancia de la clase. Se diferencian de los dems mtodos en la clase al momento de escribirlos por que tienen la palabra reservada static. MiClase.metodoEstatico( parmetros )

2. Declaracin de un mtodo.

ModificadorAcceso void otroMetodo(int primerP, char segundoP) { // Cuerpo del mtodo, primerP y segundoP solo existen en este mbito }

2.1. Componentes de un mtodo: Modificador de Acceso, es desde donde se puede acceder al mtodo, public: Se puede acceder al mtodo desde cualquier clase. private: Solo se puede acceder al mtodo desde otros mtodos de la misma clase. Tipo de datos a retornar, la palabra reservada void significa que no se retornara ningn dato, recordemos que Java tiene tipos de datos primitivos y que nosotros podemos crear nuestras propias clases, as que un mtodo puede un tipo de dato de una Clase en particular. Nombre del mtodo, existen actualmente convenciones para la construccin del nombre de los mtodos. Lista de parmetros, esta lista debe ir dentro de parntesis y debe estar separada por comas, recordemos un poco ms atrs que deca Variables en la declaracin de un mtodo) Lista de Excepciones, este tema se tratar en un modulo ms adelante. El cuerpo del mtodo o bloque de cdigo del mtodo, debe estar entre corchetes.

2.2. Convenciones en el nombre de un mtodo Existen algunas reglas bsicas para el nombre de un mtodo, no significa que Java restrinja si se utiliza un nombre o el otro, solo que por orden y estndar se siguen los siguientes enunciados. El nombre debe ser un verbo, ejemplo: correr, obtener, traer, llevar, partir, etc.

Se debe escribir en minscula y si es compuesto de varias palabras se debe iniciar la siguiente palabra con mayscula. Si el nombre es compuesto por varias palabras, la primera palabra es un verbo y la segunda un adjetivo. Entre otras.

2.3. Sobrecarga de Mtodos. La firma de un mtodo esta compuesta por su nombre y lista de parmetros que recibe, en Java los mtodos se pueden sobrecargar, es decir, pueden existir mtodos con el mismo nombre, lo importante es que su firma sea diferente. Si el nombre es el mismo la firma es diferente solo cuando su lista de parmetros es diferente. Para que la lista de parmetros sea diferente se debe tener en cuenta cantidad y tipo de datos usados en la lista. La sobrecarga se utiliza mucho cuando se quiere tener solo un mtodo y reciba parmetros diferentes. El tipo de datos a retornar no se encuentra dentro de la firma, por lo tanto un mtodo no difiere de otro por esta caracterstica.

Paso de variables a los mtodos Pasar variables a los mtodos no es ms que pasar parmetros al metdo al momento de realizar su llamado, Java distingue entre dos tipos de variables a pasar en los mtodos, la primera es paso por valor, la segunda es paso por referencia Paso de variables por valor Cuando un paso por valor se presenta, el mtodo crea una copia exacta del valor de la variable que fue pasada al mtodo. De esta manera el mtodo no puede modificar el argumento original durante los clculos o lgica en el cuerpo del mtodo. Ejemplo:

Por defecto todos los datos de tipo primitivo (int, char, long, etc) se pasan por valor. Paso de variables por referencia Cuando el paso por referencia ocurre, la refencia de la variable es pasada en el mtodo. Esto hace que el mtodo cree una copia de la refencia de la variable pasada al mtodo. Sin embargo, como no es por valor, el mtodo puede modificar el objeto al que la referencia esta apuntando, Aunque diferentes refencias existen en los mtodos, la localizacin de los datos en memoria es la misma .

REFERENCIAS
JEDI, Introduction to Programming 1

You might also like