Vous êtes sur la page 1sur 26

MATERIA FUNDAMENTOS DE PROGRAMACION UNIDAD TRES CINCO PROGRAMAS EN JAVA NOMBRES DE ALUMNO: OSCAR URIEL LOPEZ MENDEZ NOMBRE

DOCENTE M.C. ARIZBE DEL SOCORRO ARANA KANTN CARRERA: INGENIERIA EN SISTEMAS COMPUTACIONALES AULA: J-2 GRUPO: B A 1 DE MARZO DEL 2013

ndice:
Unidad 2: clases y objetos
INTRODUCCION 2.1 Declaracin de clases: atributos, mtodos, encapsulamiento. 2.2 Instanciacin de una clase. 2.3 Referencia al objeto actual. 2.4 Mtodos: declaracin, mensaje, paso de parmetros, retorno de valores. 2.5 Constructores y destructores: declaracin, uso y aplicaciones. 2.6 Sobrecarga de mtodos. 2.7 Sobrecarga de operadores: concepto y utilidad, operadores unarios y binarios.

U N I D A D iI CLASES Y OBJETOS

INTRODUCCION:
Durante los captulos anteriores se han dado unas nociones bsicas de la sintaxis de Java. A partir de ahora es cuando entramos la verdadera potencia de Java como lenguaje orientado a objetos: las clases y los objetos.

Aquellas personas que nunca hayan programado en un lenguaje orientado a objeto, o que

no conozcan las nociones bsicas de paradigma conviene que lean el captulo "

Introduccin a la programacin orientada a objetos" de este tutorial, ya que a partir de


ahora los conceptos que en l se exponen se darn por entendidos.

Dentro de la Programacin Orientada a Objetos se utilizan palabras como clases y objetos, pero qu es una clase?, qu es un objeto? Imaginemos a la raza humana, si tuviramos hablar, caminar, cantar, etc. A partir de esa clase se instanciara a Pedro, Juan, Ana, a que crear una clase de ella, los objetos seran los humanos y las funciones seran comer, todos los humanos. Qu te parecera implementar una sola clase, con la que pudieras crear todos los objetos que t quieras o necesites, y que cada uno tuviera su propia identidad, pero con las mismas caractersticas y funcionalidades implementadas por la utilizados en la POO con las siguientes definiciones: clase? Antes de averiguarlo uniformicemos nuestro conocimiento sobre los trminos ms

2.1DECLARACION DE CLASES: ATRIBUTOS, METODOS, ENCAPSULAMIENTO.

Definicin de una clase El elemento bsico de la programacin orientada a objetos en Java es la clase. Las clases son abstracciones que representan a un conjunto de objetos con un comportamiento e interfaz comn.

Podemos definir una clase como "un conjunto de cosas (fsicas o abstractas) que tienen el mismo comportamiento y caractersticas... Es la implementacin de un tipo de objeto (considerando los objetos como instancias de las clases)". Una clase no es ms que una plantilla para la creacin de objetos. Cuando se crea un objeto (instanciacin) se ha de especificar de qu clase es el objeto instanciado, para que el compilador comprenda las caractersticas del objeto.

Las clases presentan el estado de los objetos a los que representan mediante variables dinmica un espacio para tantas variables como atributos tenga la clase a la que pertenece el objeto.

denominadas atributos. Cuando se instancia un objeto el compilador crea en la memoria

Los mtodos son las funciones mediante las que las clases representan el comportamiento de los objetos. En dichos mtodos se modifican los valores de los atributos del objeto, y representan las capacidades del objeto (en muchos textos se les denomina servicios).

Desde el punto de vista de la programacin estructurada, una clase se asemejara a un mdulo, los atributos a las variables globales de dicho mdulo, y los mtodos a las funciones del mdulo.

Para crear una clase slo se necesita un archivo fuente que contenga la palabra clave para el cuerpo de la clase.

reservada class seguida de un identificador legal y un bloque delimitado por dos llaves

class MiPunto { } Un archivo de Java debe tener el mismo nombre que la clase que contiene, y se les suele se llamase MiPunto.java. Hay que tener presente que en Java se diferencia entre exactamente iguales. Aunque la clase MiPunto es sintcticamente correcta, es lo que se viene a llamar una clase

asignar la extensin ".java". Por ejemplo la clase MiPunto se guardara en un fichero que maysculas y minsculas; el nombre de la clase y el de archivo fuente han de ser

vaca, es decir, una clase que no hace nada. Las clases tpicas de Java incluirn variables y
clases de Java en distintos archivos fuente. Una clase es una plantilla para un objeto. Por lo tanto define la estructura de un objeto y su interfaz funcional, en forma de mtodos. Cuando se ejecuta un programa en Java, el sistema utiliza definiciones de clase para crear instancias de las clases, que son los objetos reales. Los trminos instancia y objeto se utilizan de manera indistinta. La forma general de una definicin de clase es: class Nombre_De_Clase { tipo_de_variable nombre_de_atributo1; tipo_de_variable nombre_de_atributo2; // . . .

mtodos de instancia. Los programas en Java completos constarn por lo general de varias

tipo_devuelto nombre_de_mtodo1( lista_de_parmetros ) { cuerpo_del_mtodo1; } tipo_devuelto nombre_de_mtodo2( lista_de_parmetros ) {

cuerpo_del_mtodo2; } // . . . }

Los tipos tipo_de_variable y tipo_devuelto, han de ser tipos simples Java o nombres de otras clases ya definidas. Tanto Nombre_De_Clase, como los nombre_de_atributo y

nombre_de_mtodo, han de ser identificadores Java vlidos.

b.) Los atributos


Los datos se encapsulan dentro de una clase declarando variables dentro de las llaves de apertura y cierre de la declaracin de la clase, variables que se conocen como atributos. Se declaran igual que las variables locales de un mtodo en concreto.

Por ejemplo, este es un programa que declara una clase MiPunto, con dos atributos enteros llamados x e y. class MiPunto { int x, y; } Los atributos se pueden declarar con dos clases de tipos: un tipo simple Java (ya descritos), o el nombre de una clase (ser una referencia a objeto, vase el punto C.a de este mismo apartado).

Cuando se realiza una instancia de una clase (creacin de un objeto) se reservar en la memoria un espacio para un conjunto de datos como el que definen los atributos de una clase. A este conjunto de variables se le denomina variables de instancia.

c.) Los mtodos

Los mtodos son subrutinas que definen la interfaz de una clase, sus capacidades y comportamiento.

Un mtodo ha de tener por nombre cualquier identificador legal distinto de los ya mismo nivel que las variables de instancia dentro de una definicin de clase.

utilizados por los nombres de la clase en que est definido. Los mtodos se declaran al

En la declaracin de los mtodos se define el tipo de valor que devuelven y a una lista forma general de una declaracin de mtodo es:

formal de parmetros de entrada, de sintaxis tipo identificador separadas por comas. La

tipo_devuelto nombre_de_mtodo (lista-formal-de-parmetros) { cuerpo_del_mtodo; } Por ejemplo el siguiente mtodo devuelve la suma de dos enteros: int metodoSuma ( int paramX, int paramY ) { return ( paramX + paramY ); }

En el caso de que no se desee devolver ningn valor se deber indicar como tipo la debera incluir un par de parntesis vacos (sin void): void metodoVacio( ) { };

palabra reservada void. As mismo, si no se desean parmetros, la declaracin del mtodo

Los mtodos son llamados indicando una instancia individual de la clase, que tendr su propio conjunto nico de variables de instancia, por lo que los mtodos se pueden referir directamente a ellas.

El mtodo inicia() para establecer valores a las dos variables de instancia sera el siguiente:

Void inicia (int paramX, int paramY ) { x = paramX; y = paramY; }

d) Encapsulamiento:
Es agrupar en una misma entidad las estructuras de datos y las funciones; ocultando la implementacin bajo una interfaz. La interfaz es lo nico que los objetos muestran a los clientes, para realizar sus servicios. Esto es, la funcionalidad de un objeto se puede encerrar o encapsular dentro de la definicin de una clase. En otras palabras se refiere al hecho de que ningn programador ni de ninguna otra parte de un programa se pueda del objeto. tener acceso a los datos de un objeto en forma directa, sino a travs de los procedimientos

2.2 instancia de una clase


C. La instanciacin de las clases: Los objetos
a.) Referencias a Objeto e Instancias

Los tipos simples de Java describan el tamao y los valores de las variables. Cada vez que se crea una clase se aade otro tipo de dato que se puede utilizar igual que uno de los tipos simples. Por ello al declarar una nueva variable, se puede utilizar un nombre de clase como tipo. A estas variables se las conoce como referencias a objeto.

Todas las referencias a objeto son compatibles tambin con las instancias de subclases de su tipo. Del mismo modo que es correcto asignar un byte a una variable declarada como instancia de este tipo de clase:

int, se puede declarar que una variable es del tipo MiClase y guardar una referencia a una

MiPunto p; Esta es una declaracin de una variable p que es una referencia a un objeto de la clase

MiPunto, de momento con un valor por defecto de null. La referencia null es una referencia a un objeto de la clase Object, y se podr convertir a una referencia a cualquier otro objeto porque todos los objetos son hijos de la clase Object.
b.) Constructores

Las clases pueden implementar un mtodo especial llamado constructor. Un constructor nos evitamos el tener que iniciar las variables explcitamente para su iniciacin. El constructor tiene exactamente el mismo nombre de la clase que lo implementa; no puede haber ningn otro mtodo que comparta su nombre con el de su clase. Una vez definido, se llamar automticamente al constructor al crear un objeto de esa clase (al utilizar el operador new).

es un mtodo que inicia un objeto inmediatamente despus de su creacin. De esta forma

El constructor no devuelve ningn tipo, ni siquiera void. Su misin es iniciar todo estado reservando memoria para sus atributos, iniciando sus valores... Por ejemplo: MiPunto( ) { inicia( -1, -1 ); }

interno de un objeto (sus atributos), haciendo que el objeto sea utilizable inmediatamente;

Este constructor denominado constructor por defecto, por no tener parmetros, establece el valor -1 a las variables de instancia x e y de los objetos que construya.

El compilador, por defecto ,llamar al constructor de la superclase Object() si no se especifican parmetros en el constructor.

Este otro constructor, sin embargo, recibe dos parmetros:

MiPunto( int paraX, int paraY ) { inicia( paramX, paramY ); } La lista de parmetros especificada despus del nombre de una clase en una sentencia

new se utiliza para pasar parmetros al constructor.

Se llama al mtodo constructor justo despus de crear la instancia y antes de que new devuelva el control al punto de la llamada.

As, cuando ejecutamos el siguiente programa: MiPunto p1 = new MiPunto(10, 20); System.out.println( "p1.- x = " + p1.x + " y = " + p1.y ); Se muestra en la pantalla: p1.- x = 10 y = 20 Para crear un programa Java que contenga ese cdigo, se debe de crear una clase que se le indique como parmetro.

contenga un mtodo main(). El intrprete java se ejecutar el mtodo main de la clase que

Para ms informacin sobre cmo crear y ejecutar un programa, as como los tipos de

programas que se pueden crear en Java, vase el captulo "II.12. Creacin de programas

Java" de este tutorial.


c.) El operador new

El operador new crea una instancia de una clase (objetos) y devuelve una referencia a ese objeto. Por ejemplo:

MiPunto p2 = new MiPunto(2,3); Este es un ejemplo de la creacin de una instancia de MiPunto, que es controlador por la referencia a objeto p2.

Hay una distincin crtica entre la forma de manipular los tipos simples y las clases en

Java: Las referencias a objetos realmente no contienen a los objetos a los que referencian. De esta forma se pueden crear mltiples referencias al mismo objeto, como por ejemplo: MiPunto p3 =p2; Aunque tan slo se cre un objeto MiPunto, hay dos variables (p2 y p3) que lo

referencian. Cualquier cambio realizado en el objeto referenciado por p2 afectar al objeto.

objeto referenciado por p3. La asignacin de p2 a p3 no reserva memoria ni modifica el

De hecho, las asignaciones posteriores de p2 simplemente desengancharn p2 del objeto, sin afectarlo:

p2 = null; // p3 todava apunta al objeto creado con new Aunque se haya asignado null a p2, p3 todava apunta al objeto creado por el operador

new.

Cuando ya no haya ninguna variable que haga referencia a un objeto, Java reclama

automticamente la memoria utilizada por ese objeto, a lo que se denomina recogida de

basura.

Cuando se realiza una instancia de una clase (mediante new) se reserva en la memoria un espacio para un conjunto de datos como el que definen los atributos de la clase que se indica en la instanciacin. A este conjunto de variables se le denomina variables de

instancia.

La potencia de las variables de instancia es que se obtiene un conjunto distinto de ellas

cada vez que se crea un objeto nuevo. Es importante el comprender que cada objeto tiene su propia copia de las variables de instancia de su clase, por lo que los cambios sobre las variables de instancia de un objeto no tienen efecto sobre las variables de instancia de otro. El siguiente programa crea dos objetos MiPunto y establece los valores de x e y de cada uno de ellos de manera independiente para mostrar que estn realmente separados.

MiPunto p4 = new MiPunto( 10, 20 ); MiPunto p5 = new MiPunto( 42, 99 ); System.out.println("p4.- x = " + p4.x + " y = " + p4.y); System.out.println("p5.- x = " + p5.x + " y = " + p5.y); Este es el aspecto de salida cuando lo ejecutamos. p4.- x = 10 y = 20 p5.- x = 42 y = 99

2.3 REFERENCIA AL OBJETO ACTUAL


Todo objeto puede hacer referencia a s mismo. Mediante la palabra clave this {lo que se conoce como una)referencia this). En un mtodo, la referencia this puede utilizarse en forma implcita y explicita para hacer referencia a las variables de instancias y otros mtodos del objeto en el cual se haya llamadlo el mtodo. El constructor recibe tres argumentos int para inicializar un objeto Horasimple. Observe que para este ejemplo hemos hecho que los nombres de los parmelos para el constructor sean idnticos a los nombres de las variables de instancia para la clase. Hicimos esto para mostrar el uso explcito de this. Si un mtodo contiene una variable local con el mismo nombre que un campo de esa clase, ese mtodo se referir a la variable local, en vez de referirse al campo. En este case, la variable local sombrea al campo en el alcance de ese mtodo. Sin embargo, el mtodo puede utilizar a this para hacer referencia al campo sombreado en forma explcita.

2.4 Mtodos: declaracin, mensaje, paso de parmetros, retorno de valores


Mensaje:

Es la operacin que un objeto realiza. Los trminos mensaje, mtodo y operacin suelen ser equivalentes.

RETORNAR UN VALOR. Mientras que la aplicacin de volumen mover el clculo del volumen de un cuadro dentro de la clase de cuadro donde pertenece, no es la mejor manera de hacerlo. Por ejemplo, qu pasa si otra parte de su programa quera saber el volumen de un cuadro, pero no mostrar su valor? Una mejor manera de implementar () del volumen es calcular el volumen de la caja y devolver el resultado al llamador PASO DE PARMETROS. Mientras que algunos mtodos no necesitan parmetros, la mayora lo. Parmetros permiten un mtodo a generalizarse. Es decir, un mtodo con parmetros puede operar en una variedad de datos o utilizarse en un nmero de situaciones ligeramente diferentes. Para ilustrar este punto, usemos un ejemplo muy sencillo. Aqu es un mtodo que devuelve el cuadrado del nmero 10: Mientras que este mtodo, de hecho, el valor de 10 al cuadrado, su uso es muy limitado. Sin embargo, si se modifica el mtodo para que toma un parmetro, como se muestra a continuacin, podr efectuar cuadrados mucho ms til. Ahora, square( ) Devuelve el cuadrado de cualquier valor que se le llama con. Es decir square( ) es ahora un mtodo de propsito general que se puede calcular la Plaza de cualquier nmero entero de valor, en lugar de slo 10. .Es importante mantener el parmetro de dos trminos y argumento rectos. Un parmetro es una variable definida por un mtodo que recibe un valor cuando se llama al mtodo. Por ejemplo, (cuadrado), es un parmetro. Un argumento es un valor que se pasa a un mtodo cuando se invoca. Puede utilizar un mtodo con parmetros para mejorar la clase de cuadro. En los ejemplos anteriores, las dimensiones de cada cuadro deban establecerse por separado por el uso de una secuencia de instrucciones.

As, un mejor enfoque para establecer las dimensiones de un cuadro es crear un mtodo que toma la dimensin de un cuadro en sus parmetros y establece cada variable de instancia adecuadamente.

2.5 constructores y destructores: declaracin, uso y aplicaciones

Constructores
Las clases pueden implementar un mtodo especial llamado constructor. Un constructor nos evitamos el tener que iniciar las variables explcitamente para su iniciacin. El constructor tiene exactamente el mismo nombre de la clase que lo implementa; no puede haber ningn otro mtodo que comparta su nombre con el de su clase. Una vez definido, se llamar automticamente al constructor al crear un objeto de esa clase (al utilizar el operador new). es un mtodo que inicia un objeto inmediatamente despus de su creacin. De esta forma

El constructor no devuelve ningn tipo, ni siquiera void. Su misin es iniciar todo estado reservando memoria para sus atributos, iniciando sus valores... Por ejemplo: MiPunto( ) { inicia( -1, -1 ); }

interno de un objeto (sus atributos), haciendo que el objeto sea utilizable inmediatamente;

Este constructor denominado constructor por defecto, por no tener parmetros, establece el valor -1 a las variables de instancia x e y de los objetos que construya.

El compilador, por defecto ,llamar al constructor de la superclase Object() si no se especifican parmetros en el constructor.

Este otro constructor, sin embargo, recibe dos parmetros:

MiPunto( int paraX, int paraY ) { inicia( paramX, paramY ); }

Como los objetos son entidades que existen en el tiempo estos deben ser creados o instanciados. Esta creacin se hace a travs de constructores.

Un constructor es una funcin miembro especial de inicializacin, que se invoca clase.

automticamente cada vez que se crea una instancia o que se declara un objeto de la

Caractersticas de un Constructor

El constructor se utiliza para inicializar variables, sobre todo las que estn en la seccin privada. El constructor en una de las funciones miembro que nunca se invocan directamente, solamente entra en funcionamiento cuando se define el objeto.

En C++ el constructor es una funcin que tiene el mismo nombre de la clase. No es obligatoria la definicin de un constructor. El cuando se crea una instancia. constructor se define si hay la necesidad de un proceso de inicio

Un constructor no retorna nada, por lo tanto no tiene sentencia return. Se puede sobrecargar el constructor, por su puesto que la lista de parmetros de cada uno de ellos tiene que ser diferente en tipo o cantidad.

Cuando se declara un constructor sin argumentos, a este se le denomina constructor por omisin. Si la clase no declara uno automticamente. explcitamente un constructor por omisin el compilador genera

Cuando se define un constructor con argumentos es necesario tambin definir un constructor por omisin en la clase. En seguida veamos la contraparte del constructor, el destructor.

Destructores
El destructor es una funcin miembro que se llama automticamente cuando un objeto de una clase sale de mbito o se destruye de manera explicita. El propsito del destructor es realizar cualquier operacin de "limpieza" necesaria antes que el objeto sea destruido. Sus caractersticas son las siguientes:

Caractersticas de un Destructor
o o

o o o o o o o

Una funcin destructora ser una funcin con el mismo nombre de la clase y precedida de la tilde. Una funcin destructora es invocada implcitamente para cada variable u objeto de la clase cuando se abandona el bloque donde fue declarado. El destructor tambin se aplica cuando se libera un objeto apuntado a travs de un puntero. La funcin destructora no puede ser parametizada, i.e., no tiene parmetros. El destructor no puede retornar ningn valor, por lo tanto no puede contener la palabra reservada return. No pueden ser declarados const, ni static. Los destructores pueden ser declarados virtual. El destructor no puede sobrecargarse ya que slo puede existir uno en la clase. Puede existir o no el destructor. Si no existe el compilador crea uno automticamente, pero si existe entonces se ejecuta el definido por el usuario. Se vuelve obligatoria la existencia del destructor en los casos en que se reserva memoria del montculo con new o con malloc. Observar en el siguiente programa ejemplo hipottico, que se toma memoria con new en el constructor, por lo tanto es obligatoria la existencia del destructor ~ejemplox( ), en donde se libera la memoria apuntada por ptr.

class ejemplox { private: int * ptr; public: ejemplox( ) { ptr= new int; } ~ejemplox( ) { delete (prt); } }; //de la clase

a.) La destruccin de los objetos

Cuando un objeto no va a ser utilizado, el espacio de memoria de dinmica que utiliza ha de ser liberado, as como los recursos que posea, permitiendo al programa disponer de todos los recursos posibles. A esta accin se la da el nombre de destruccin del objeto.

En Java la destruccin se puede realizar de forma automtica o de forma personalizada, en funcin de las caractersticas del objeto.

b.) La destruccin por defecto: Recogida de basura

El intrprete de Java posee un sistema de recogida de basura, que por lo general permite que no nos preocupemos de liberar la memoria asignada explcitamente.

El recolector de basura ser el encargado de liberar una zona de memoria dinmica que

haba sido reservada mediante el operador new, cuando el objeto ya no va a ser utilizado nuevamente).

ms durante el programa (por ejemplo, sale del mbito de utilizacin, o no es referenciado

El sistema de recogida de basura se ejecuta peridicamente, buscando objetos que ya no estn referenciados.

c.) La destruccin personalizada: finalize

A veces una clase mantiene un recurso que no es de Java como un descriptor de archivo o un tipo de letra del sistema de ventanas. En este caso sera acertado el utilizar la finalizacin explcita, para asegurar que dicho recurso se libera. Esto se hace mediante la

destruccin personalizada, un sistema similar a los destructores de C++.


nombre finalize:

Para especificar una destruccin personalizada se aade un mtodo a la clase con el

class ClaseFinalizada{ ClaseFinalizada() { // Constructor // Reserva del recurso no Java o recurso compartido } protected void finalize() { // Liberacin del recurso no Java o recurso compartido } } El intrprete de Java llama al mtodo finalize(), si existe cuando vaya a reclamar el espacio de ese objeto, mediante la recogida de basura.

Debe observarse que el mtodo finalize() es de tipo protected void y por lo tanto deber de sobreescribirse con este mismo tipo.

2.6 sobrecarga de mtodos:


SOBRECARGA DE MTODOS.

En Java es posible definir dos o ms mtodos dentro de la misma clase que comparten el mismo nombre, siempre y cuando sus declaraciones de parmetro son diferentes. Cuando esto sucede, los mtodos se dicen a sobrecargarse, y el proceso se conoce como la sobrecarga de mtodos. Sobrecarga de mtodos es una de las maneras que Java implementa el polimorfismo. Si nunca ha utilizado un lenguaje que permite la sobrecarga de mtodos y, a continuacin, el concepto puede parecer extrao al principio. Pero como puede ver, sobrecarga de mtodos es una de las caractersticas ms interesantes y tiles de Java. Cuando se invoca un mtodo sobrecargado, Java utiliza el tipo o el nmero de argumentos como su gua para determinar la versin del mtodo sobrecargado realmente llamar. Por lo tanto, los mtodos sobrecargados deben ser diferente en el tipo o el nmero de sus parmetros. Aunque los mtodos sobrecargados pueden tener diferentes tipos de devolucin, el tipo devuelto por s sola no basta distinguir dos versiones de un mtodo. Cuando Java encuentra una llamada a un mtodo sobrecargado, simplemente ejecuta la versin del mtodo cuyos parmetros coincidan con los argumentos utilizados en la llamada. Cuando usted sobrecarga un mtodo, cada versin de dicho mtodo puede realizar cualquier actividad que desee. No hay regla que indica que los mtodos sobrecargados deben relacionar entre s. Sin embargo, desde un punto de vista estilstico, la sobrecarga de mtodos implica una relacin. As, mientras que se puede utilizar el mismo nombre para sobrecargar mtodos no relacionados, usted no debe. Por ejemplo, se podra utilizar el nombre sqr para crear mtodos que devuelven el cuadrado de un nmero entero y la raz cuadrada de un valor de coma flotante. Pero estas dos operaciones son fundamentalmente diferentes. Aplicar el mtodo de la sobrecarga en derrotas de esta manera su propsito original. En la prctica, slo se deben sobrecargar las operaciones estrechamente relacionadas. SOBRE CARGA DE OPERADORES Los operadores de Java son muy parecidos en estilo y funcionamiento a los de C. Tanto C, como C++, como Java, proporcionan un conjunto de operadores para poder realizar acciones sobre uno o dos operandos. Un operador que acta sobre un solo operando es un operador unario, y un operador que acta sobre dos operandos es un operador binario.

Algunos operadores pueden funcionar como unarios y como binarios, el ejemplo ms

claro es el operador - (signo menos). Como operador binario, el signo menos, el cual hace que el operando de la derecha sea sustrado al operando de la izquierda; como operador unario hace que el signo algebraico del operando que se encuentre a su derecha sea cambiado.

. ++ ! *

[] ~ / > || op= --

() instanceof % >> >>> | <= >= == !=

+ << < & && ? : =

(*=

/=

%=

+= -= etc.) ,

Los operadores numricos se comportan como esperamos: int + int = int

Los operadores relacionales devuelven un valor booleano. Para las cadenas, se pueden utilizar los operadores relacionales para comparaciones adems de + y += para la concatenacin: String nombre = "nombre" + "Apellido"; El operador = siempre hace copias de objetos, marcando los antiguos para borrarlos, y ya

se encargar el garbage collector de devolver al sistema la memoria ocupada por el objeto eliminado. Java, a diferencia de C++, no soporta la sobrecarga de operadores. Esto significa que no es posible redefinir el entorno en el que acta un operador con respecto a los objetos de un nuevo tipo que el programador haya definido como propios. Un caso interesante, que se sale de la afirmacin anterior, es el operador + (signo ms), que se puede utilizar para realizar una suma aritmtica o para concatenar cadenas (Java lo sobrecarga internamente!). Cuando el signo ms se utiliza en esta ltima forma, el

operando de la derecha se convierte automticamente en una cadena de caracteres antes de ser concatenada con el operando que se encuentra a la izquierda del operador +. Esto asume que el compilador sabe que el operando de la derecha es capaz de soportar la muchos de los tipos internos que se utilizan. conversin. Y ese conocimiento lo tiene porque comprueba todos los tipos primitivos y

Conceptos y referencias Complementarias:

El operador new

El operador new crea una instancia de una clase (objetos) y devuelve una referencia a ese objeto. Por ejemplo:

MiPunto p2 = new MiPunto(2,3); Este es un ejemplo de la creacin de una instancia de MiPunto, que es controlador por la referencia a objeto p2.

Hay una distincin crtica entre la forma de manipular los tipos simples y las clases en Java: Las pueden crear mltiples referencias al mismo objeto, como por ejemplo: MiPunto p3 =p2; Aunque tan slo se cre un objeto MiPunto, hay dos variables (p2 y p3) que lo referencian.

referencias a objetos realmente no contienen a los objetos a los que referencian. De esta forma se

Cualquier cambio realizado en el objeto referenciado por p2 afectar al objeto referenciado por

p3. La asignacin de p2 a p3 no reserva memoria ni modifica el objeto.

De hecho, las asignaciones posteriores de p2 simplemente desengancharn p2 del objeto, sin afectarlo:

p2 = null; // p3 todava apunta al objeto creado con new

Aunque se haya asignado null a p2, p3 todava apunta al objeto creado por el operador new. Cuando ya no haya ninguna variable que haga referencia a un objeto, Java reclama

automticamente la memoria utilizada por ese objeto, a lo que se denomina recogida de basura. Cuando se realiza una instancia de una clase (mediante new) se reserva en la memoria un espacio para un conjunto de datos como el que definen los atributos de la clase que se indica en la instanciacin. A este conjunto de variables se le denomina variables de instancia.

La potencia de las variables de instancia es que se obtiene un conjunto distinto de ellas cada vez

que se crea un objeto nuevo. Es importante el comprender que cada objeto tiene su propia copia un objeto no tienen efecto sobre las variables de instancia de otro.

de las variables de instancia de su clase, por lo que los cambios sobre las variables de instancia de

El siguiente programa crea dos objetos MiPunto y establece los valores de x e y de cada uno de ellos de manera independiente para mostrar que estn realmente separados. MiPunto p4 = new MiPunto( 10, 20 ); MiPunto p5 = new MiPunto( 42, 99 ); System.out.println("p4.- x = " + p4.x + " y = " + p4.y); System.out.println("p5.- x = " + p5.x + " y = " + p5.y); Este es el aspecto de salida cuando lo ejecutamos. p4.- x = 10 y = 20 p5.- x = 42 y = 99

Acceso al objeto
a.) El operador punto (.)

El operador punto (.) se utiliza para acceder a las variables de instancia y los mtodos contenidos en un objeto, mediante su referencia a objeto:

referencia_a_objeto.nombre_de_variable_de_instancia referencia_a_objeto.nombre_de_mtodo( lista-de-parmetros );

Hemos creado un ejemplo completo que combina los operadores new y punto para crear un objeto MiPunto, almacenar algunos valores en l e imprimir sus valores finales: MiPunto p6 = new MiPunto( 10, 20 ); System.out.println ("p6.- 1. X=" + p6.x + " , Y=" + p6.y); p6.inicia( 30, 40 ); System.out.println ("p6.- 2. X=" + p6.x + " , Y=" + p6.y); Cuando se ejecuta este programa, se observa la siguiente salida: p6.- 1. X=10 , Y=20 p6.- 2. X=30 , Y=40 Durante las impresiones (mtodo println()) se accede al valor de las variables mediante p6.x y

p6.y, y entre una impresin y otra se llama al mtodo inicia(), cambiando los valores de las
variables de instancia.

Este es uno de los aspectos ms importantes de la diferencia entre la programacin orientada a hace en el mtodo es sustituir los nombres de los atributos de la clase por las correspondientes

objetos y la programacin estructurada. Cuando se llama al mtodo p6.inicia(), lo primero que se variables de instancia del objeto con que se ha llamado. As por ejemplo x se convertir en p6.x. Si otros objetos llaman a inicia(), incluso si lo hacen de una manera concurrente, no se producen

efectos laterales, ya que las variables de instancia sobre las que trabajan son distintas.
La referencia this

Java incluye un valor de referencia especial llamado this, que se utiliza dentro de cualquier

mtodo para referirse al objeto actual. El valor this se refiere al objeto sobre el que ha sido llamado el mtodo actual. Se puede utilizar this siempre que se requiera una referencia a un objeto del tipo de una clase actual. Si hay dos objetos que utilicen el mismo cdigo, seleccionados a travs de otras instancias, cada uno tiene su propio valor nico de this.

Un refinamiento habitual es que un constructor llame a otro para construir la instancia terminar de iniciar la instancia:

correctamente. El siguiente constructor llama al constructor parametrizado MiPunto(x,y) para

MiPunto() { this( -1, -1 ); // Llama al constructor parametrizado }

En Java se permite declarar variables locales, incluyendo parmetros formales de mtodos, que se solapen con los nombres de las variables de instancia.

No se utilizan x e y como nombres de parmetro para el mtodo inicia, porque ocultaran las hubiera referido al parmetro formal, ocultando la variable de instancia x: void inicia2( int x, int y ) { x = x; // Ojo, no modificamos la variable de instancia!!! this.y = y; // Modificamos la variable de instancia!!! }

variables de instancia x e y reales del mbito del mtodo. Si lo hubisemos hecho, entonces x se

El puntero this apunta al objeto activo o actual. Dentro del cdigo de cada funcin de una clase el objeto actual es implcito. El identificador this utilizado dentro de una funcin ser interpretado como un puntero al objeto a travs del cual se llam a dicha funcin.

C++ incluye una forma explicita de nombrar a este objeto mediante el identificador this. El puntero this es un puntero especial accesible por las funciones miembros. Apunta al

objeto para el cual se llama la funcin miembro. Cuando se invoca la funcin miembro de una objeto, el compilador asigna la direccin del objeto al puntero this y llama entonces a la funcin. Cada vez que una funcin miembro accesa a uno de los datos miembros del objeto, est utilizando implcitamente el puntero this.

Dentro de la Programacin Orientada a Objetos se utilizan palabras como clases y objetos, en esta investigacin podemos brindar los conceptos bases de la programacin orientada objetos

CONCLUSION

introducindonos poco apoco ala programacin, para los no programadores se estiman ejemplos y conceptos para su fcil comprensin ya que el lenguaje de java es una metodologa que basa la es Tructura de los programas en torno a los objetos, los lenguajes de POO ofrecen medios y objeto individualmente, estos lenguajes proveen una construccin (Clase) que describe a un conjunto de objetos que poseen las mismas propiedades. objetos que interactan. Un

herramientas para describir los objetos manipulados por un programa. Ms que describir cada

En la Programacin Orientada a Objetos los programas son representados por un conjunto de Objeto engloba datos y operaciones sobre estos datos. problema, sobre todo cuando ste

La Programacin Orientada a Objetos constituye una buena opcin a la hora de resolver un Es muy extenso. En este enfoque de programacin, se facilita evitar la repeticin de cdigo, no slo a travs de la creacin de clases que hereden propiedades y mtodos de otras, sino adems que el cdigo es reutilizable por sistemas posteriores que tengan alguna similitud con los ya creados.

BIBLIOGRAFIA: http://odelys2003.wordpress.com/category/programacion-orientada-aobjetos/ http://www.itistmo.edu.mx/jetc/Apuntes/Apuntes_Fundamentos_Programacio n_Sistemas/Unidad1.pdf http://www.google.com.mx/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ve d=0CE4QFjAG&url=http%3A%2F%2Fjava.ciberaula.com%2Farticulo%2Ftecn ologia_orientada_objetos%2F&ei=SQMxUbP2IMeWqAGn3IDoAQ&usg=AFQj CNGtDLalT--sqA4KEds9lT8a7Cy6Dg&bvm=bv.43148975,d.b2U


La Biblia de Java. Vanhelsuw et. Al. Anaya Multimedia. 1996. El Lenguaje de Programacin Java. Ken Arnold y James Gosling. AddisonWesley/DOMO. 1997

Vous aimerez peut-être aussi