Вы находитесь на странице: 1из 31

2008

Programacin en Java 2SE Bsico

Artemio Olvera M. & Esteban Moyao Ch. Cuerpo Acadmico de Bioingeniera 12/01/2008 Instituto Tecnolgico de Cuautla

I.

INTRODUCCION A JAVA.

1.1 1.2 1.3 1.4 1.5

Qu es java? El compilador de java. La mquina virtual de java. Configurar el compilador. Estructura de un programa en java.

II.

PROGRAMACION EN JAVA.

2.1 Variables. 2.1.1 Nombre de variables 2.1.2 Variables Primitivas y no primitivas. 2.1.3 Definicin e inicializacin de variables. 2.1.4 Visibilidad y vida de las variables 2.2 Operadores. 2.2.1 Precedencia de operadores. 2.3 Estructuras de control. 2.3.1 Selectivas (if, if-else, switch) 2.3.2 Ciclos 2.3.2.1 While 2.3.2.2 DoWhile 2.3.2.3 For 2.3.2.4 Sentencias break y continue, break y continue con etiquetas 2.4 Arreglos.

III.

CLASES EN JAVA.

3.1 3.2 3.3 3.4

3.5

3.6

3.7 3.8 3.9

Concepto. Definicin de una clase. Creacin de objetos. Variables miembro. 3.4.1 Variables miembro de objeto. 3.4.2 Variables miembro de clase (static) Modificadores. 3.5.1 Modificadores de clases. 3.5.2 Modificadores de variables. 3.5.3 Modificadores de acceso. Mtodos. 3.6.1 Mtodos de Objeto. 3.6.2 Mtodos de clase (static). 3.6.3 Paso de argumentos. 3.6.4 Mtodos sobrecargados 3.6.5 Constructores. Herencia. Acceso a variables de otra clase. Casting.

1 INTRODUCCION A JAVA.
1.1 Qu es java? Es un lenguaje de programacin orientado a objetos, y es independiente la plataforma. Se le conoce tambin por el nombre JDK (Java Development Kit). Contiene un conjunto de libreras y/o programas que permiten desarrollar aplicaciones tambin incorpora una versin de reducida que nos permite nicamente ejecutar aplicaciones en java, dicha versin se le conoce como JRE. Sun ha desarrollado tres ediciones para cada mbito tecnolgico. 1) J2SE (Java 2 Standart Edition ) 2) J2EE (Java 2 Enterprise Edition ) 3) J2ME (Java 2 Micro Edition ) 1.2 El compilador de java. Es un traductor, que toma el cdigo fuente ( .java ), el cual es traducido para generar un cdigo intermedio llamado bytecode que tiene como extensin ( .class ). El bytecode ser interpretado a cdigo mquina por una mquina virtual. 1.3 La maquina virtual de java. Es un programa nativo, es decir se ejecuta en una plataforma especfica y es capaz de interpretar y ejecutar instrucciones bytecode, el cual es generado por el compilador 1.4 Configurar el compilador. Debemos seguir los siguientes 6 pasos: 1.- Buscar la ruta donde se encuentran los binarios de java, normalmente es en: C:\Archivos de programa\Java\jdk1.6.0_06\bin 2.- Copiar la ruta completa 3.- Ir a miPC >> propiedades >>pestaa: opciones avanzadas 4.- Clic en Variables de entorno. En el cuadro de abajo seleccionar Path. 5.- Clic en modificar. Despus en Valor de variable, ir al final de la lnea escribir ( ; ) y pegar la ruta que copiamos anteriormente. 6.- Aceptar todo y ya podemos compilar y corre aplicaciones java desde cualquier directorio.

1.5 Estructura de un programa en java. [modificarAcceso] [ModificadorClase] class NomClase [extends nomBase] [implements ListaIterfaces] { //definicin de variables y mtodos miembro public static void main(String args[]){ //definicin de variables locales //instrucciones } } . Ejemplo: . public class clase_1 { int x; public static void main(String args[]){ int x=56; System.out.println( hola bienvenido al curso de java2 : + x); } }

2 PROGRAMACION EN JAVA.
2.1 Variables Es un espacio reservado en memoria RAM con cierta longitud o tamao. 2.1.1 Nombre de variables Identificadores Un identificador es un nombre que identifica a una variable, a un mtodo o funcin miembro, a una clase. Todos los lenguajes tienen ciertas reglas para componer los identificadores:
1.

Todos los identificadores han de comenzar con: [a-z] [A-Z]: Una letra. [ _ ]: El carcter subrayado. [ $ ]: El carcter dlar. Puede incluir, pero no comenzar por un nmero No puede incluir el carcter espacio en blanco Distingue entre letras maysculas y minsculas No se pueden utilizar las palabras reservadas como identificadores

2. 3. 4. 5.

Adems de estas restricciones, hay ciertas convenciones que hacen que el programa sea ms legible (Tabla 2.1.1), pero que no afectan a la ejecucin del programa.

La primera y fundamental es la de encontrar un nombre que sea significativo, de modo que el programa sea lo ms legible posible. El tiempo que se pretende ahorrar eligiendo nombres cortos y poco significativos se pierde con creces cuando se revisa el programa despus de cierto tiempo.

Tipo de identificador
nombre de una clase

Convencin
Comienza por letra mayscula comienza con letra minscula comienza por letra minscula En letras maysculas

Ejemplo
String, Rectangulo, CinematicaApplet

nombre de funcin

calcularArea, getValue, setColor

nombre de variable nombre de constante

area, color, appletSize PI, MAX_ANCHO

Tabla 2.1.1a Convenciones para los identificadores.

Palabras reservadas. En el siguiente cuadro se listan las palabras reservadas, aquellas que emplea el lenguaje Java, y que el programador no puede utilizar como identificadores. Algunas de estas palabras le resultarn familiares al programador del lenguaje C/C++. Las palabras reservadas sealadas con un asterisco (*) no se utilizan. Abstract Case const* Else Float If Int Null Protected Satatic Throw Boolean cast* Continue Extends For Implements Interface operator* Public Super Transient Break Catch Default False future* Import long outer* rest* switch true byte char do final generic* inner* native package Return synchronized Try Byvalue* class double finally goto* instanceof new private short this var*

Tabla 2.1.1b Palabras reservadas del lenguaje Java.

2.1.2 Variables primitivas y no primitivas Tipo Descripcin boolean Tamao (1 bit). Tiene dos valores true o false. Caracteres Unicode de 16 bits (2 bytes) .Los caracteres alfa-numricos son los mismos que los ASCII con el bit alto puesto a 0. El intervalo de valores va desde 0 hasta 65535 (valores de 16-bits sin signo). Tamao 8 bits (1 byte). El intervalo de valores va desde -27 hasta 27 -1 (-128 a 127) Tamao 16 bits (2 bytes). El intervalo de valores va desde -215 hasta 215-1 (-32768 a 32767) Tamao 32 bits (4 bytes). El intervalo de valores va desde -231 hasta 231-1 (-2147483648 a 2147483647) Tamao 64 bits (8 bytes). El intervalo de valores va desde -263 hasta 263-1 (-9223372036854775808 a 9223372036854775807) Tamao 32 bits (4 bytes). Nmeros en coma flotante de simple precisin. Estndar IEEE 754-1985 (de 1.40239846e45f a 3.40282347e+38f) Tamao 64 bits (8 bytes). Nmeros en coma flotante de doble precisin. Estndar IEEE 754-1985. (de 4.94065645841246544e324d a 1.7976931348623157e+308d.)

Char

Byte

Short

Int

Long

Float

double

Tabla 2.1.2a Variables primitivas Los tipos bsicos que utilizaremos en la mayor parte de los programas sern boolean, int y double. Las variables no primitivas: se les conoce como variables de referencia, por que hacen referencia un tipo de dato primitivo a travs de una clase. Tipo o Clase Integer Float Double String Descripcin Referencia a un entero Referencia a un float Referencia a un doubl Referencia a un arreglo de char Constructor Integer (int x) Float (float x) Double (double x) String( mi cadena)

Tabla 2.1.2b Variables No primitivas

2.1.3 Definicin e inicializacin de variables. Definir una variable significa crear una variable, mientras que inicializar quiere decir que vamos a darle un valor a una variable que ya est declarada. Sintaxis para declarar una variable. [Modificador Acceso][Modificador de Variable] tipo_de_dato Identificador; Inicializar una variable Identificador = valor;

[Modificador de Acceso]: especifica el tipo de acceso que tendr la variable. Sus posibles valores pueden ser.

public: quiere decir que es pblica private: quiere decir que es privada protected: quiere decir que es protegida Sin especificar: quiere decir que es por paquete., y se puede acceder a esta variable a travs de una instancia, pero solo de clases que se encuentren el mismo paquete. nota: no te asustes, ms adelante vamos a ver cul es la funcin de cada uno a detalle.

Se pude acceder desde: La propia clase Subclase (mismo paquete) Otras clases (mismo paquete) Subclases (otros paquetes)

protected Si Si Si Si pero ,Con objetos que pertenecen a la subclase Otras clases (otros paquetes) Si No No Tabla 2.1.3a Accesos con sus modificadores de acceso

Public Si Si Si Si

private Si No No No

paquete Si Si si No

No

[Modificador de Variable]: Indica caractersticas especficas de las variables y sus posibles valores son. static: es nico para todos los objetos de la clase y se pude usar en toda la clase y en cualquier mtodo dentro de la clase (como si fuera global). final: indica que esta variable no se pude modificar de ninguna manera y por tanto (se convierte en Constante).

Mod Acceso public public prvate protected

Mod Variable static

Tipo int int String

Identificador X J Saludo

float Y Final double PI Tabla 2.1.3b Ejemplo de cmo declarar e inicializar variables

Valor 3 200 Bienvenido a J2SE 7.10f 3.1516789

2.1.4 Visibilidad y vida de las variables. La Visibilidad se refiere al tipo de acceso que tiene la variable con respecto a otras clases y paquetes, dicho de otra manera en la visibilidad, se aplican los modificadores de acceso. Mientras que la vida de las variables se refiere a cuando inicia la variable y cuando termina, las variables se declaran dentro de un bloque de llaves { }, donde termina el bloque de llaves se dice que ah termina la vida de las variables y por lo tanto fuera de ese bloque, las variables no se pueden utilizar. int x; public int x; private int x; protected int x; Visibilidad de la variable x { Int x; x=10; } // inicia la vida de la variable // se declara la variable //es correcto // termina la vida de la variable

X=34; //incorrecto Vida de la variable x

2.2 Operadores 2.2.1 Precedencia de operadores Descripcin Parentecis operadores unarios multiplicacin y divisin suma y resta Desplazamiento operadores relacionales Igualdad operador AND operador XOR operador OR AND booleano OR booleano Condicional operadores de asignacin () ++op --op op++ op-*/% +<< >> >>> < > <= => == != & ^ | && || ?: = += -= *= /= %= &= ^= |= <<= >>= >>>= Operadores

2.3 Estructuras de control 2.3.1 Condicionales ( if,if-else, switch ). Estructuras selectivas o condicionales es lo mismo. if : estructura de control que nos permite tomar decisiones su sintaxis es. if (condicin ){ Instruccin } Si condicin toma el valor true (verdadero), entonces se ejecuta la instruccin, en caso contrario no se ejecuta.

10

if- else: hace lo mismo que el if pero con la diferencia de que cuando condicin no sea true (verdadero), se ejecutara la instruccin dentro del bloque else. if ( condicin ){ Instruccin1 } else{ Instruccion2 } if anidado: es un if dentro de otro if if (condicin ){ Instruccin1 If(condicin 2){ Instruccion2 } } else{ Instruccion3 }

? : es un if abreviado para hacer condiciones simples y permite incluir una condicin dentro de una expresin. variable = condicin ? Expresion1:Expresion2;

switch: Al igual que el if, sta estructura de control nos permite tomar decisiones, normalmente se utiliza cuando usamos muchos if cuando tenemos muchas opciones de donde elegir (mltiples decisiones ). Su sintaxis es la siguiente. switch ( valor ){ case 1: Instruccin1 break; case 2: Instruccin2 break; case 3: Instruccin3 break; case 4: Instruccin4 break; default: Instruccin 4

11

2.3.2 Ciclos Los ciclos son estructuras de repeticin. En java tenemos tres estructuras repetitivas o ciclos.

2.3.2.1 while: evala la condicin, si esta es true (verdadera) entra al bloque y ejecuta las instrucciones dentro de este. Vuelve a evaluar la condicin hasta que esta sea false (falsa), su sintaxis es. while ( condicion ){ Instrucciones }

2.3.2.2 do while: en este caso primero hace las operaciones o ejecuta las instrucciones y despus evala la condicin, si es true se repite y si es false se termina el ciclo.

do { Instrucciones }while( condicion );

2.3.2.3 for: funciona de la misma manera que el while, pero su sintaxis es muy diferente.

for( inicializacin; condicin; incremento ){ Instrucciones }

12

2.3.2.4 Sentecias break y continue, break y continue con etiquetas. break : se sale de un bloque o ciclo donde se est ejecutando, sin realizar el resto de las sentencias. Se aplica tanto para los if como para los ciclos. continue: solo se utiliza en los ciclos, y lo que hace es saltarse las dems instrucciones y despus continua incrementando el ndice.

x=0; while( condicin1 ){ if(condicion2){ x++; continue; } Mensaje ( hola: +x); x++; }

for( x=0 ; condicin1; x++ ){ if(condicion2){ continue; } Mensaje ( hola +x); }

En este ejemplo si la condicin2 es verdadera, el mensaje de rojo ya no se ejecutara, hasta la siguiente pasada siempre y cuando la condicion2 sea falsa. Break y continue con etiquetas: las etiquetas indican un lugar donde continuar la ejecucin de un programa despus de un break o continue. Las etiquetas siempre van delante de un bloque de llaves { } (if, switch, ciclos) y solo se utiliza cuando se tiene uno o ms ciclos o bloques dentro de otro ciclo ciclo: for(i=0;condicion1;i++){ while(true){ if(condicion2){ break ciclo; } else{ break; } } System.out.println ("hola "+i); }

13

ciclo1: for(i=0;condicion1;i++){ ciclo2: for(j=0;condicin; j++){ if(condicion){ continue ciclo1 }else{ continue ciclo2 } } } 2.4 Arreglos. Un arreglo es una secuencia de datos del mismo tipo, los datos se llaman elementos del arreglo y se numeran 0, 1, 2,3.n, a estos nmeros se les llama ndice. Los ndices sirven para localizar un elemento dentro del arreglo, empiezan con cero y terminan con el tamao del arreglo -1.

Ejemplo: a[ 0 ], a[ 1 ],a[ 2 ], ,a[ n-1 ] Donde a : es el nombre del arreglo [0, 1, 2, , n-1 ] : son los ndices n : es el tamao mximo del arreglo. a[ ndice ] : es el elemento del arreglo. Sintaxis para crear un arreglo unidiemensional. Existen dos formas y se citan en el siguiente cuadro. Ojo, solo estamos declarando el arreglo.

Tipo_de_dato [ ] indentificador; Tipo_de_dato indentificador [ ]; Ejemplos char letras[ ]; int [ ] numero; String palabras [ ]; Sintaxis y ejemplo de creacin o declaracin de arreglos.

14

Sintaxis para crear un arreglo unidimensional con una longitud determinada. Definir la cantidad de elementos de un arreglo.

Tipo_de_dato nombreArreglo [ ] = new Tipo_de_dato [numero_de_elementos]; ..Ejemplos char letras[ ] = new char[10]; int numero[ ] = new int[10]; String palabras [ ] = new String[10];

Sintaxis y ejemplos de creacin e inicializacin de un arreglo

Darle un valor al arreglo unidimensional. Es preciso darle un valor a los arreglos antes ser utilizados, aunque por defecto se inicializan a 0.

nombreArreglo [ indice ] = valor_del_arreglo; ..Ejemplos... letras[0 ] = a; letras[2 ] = b; numero[ 0] = 1; numero[ 1] = 123; numero[ 2] = 41;

Para saber el tamao o longitud del arreglo se usa length ejemplo: letras.length; Con la instruccin de arriba sabemos cuntos elementos tiene el arreglo letras.

15

Arreglos bidimensionales. Anteriormente vimos arreglos de una dimensin o unidimensionales, en esta ocasin vamos a ver los arreglos bidimensionales. Los arreglos bidimensionales consisten en un arreglo de arreglos, es decir un arreglo unidimensional donde cada elemento es un arreglo.

Sintaxis de un arreglo bidimensional. Tipo_de_dato [ ] [ ]indentificador; Tipo_de_dato indentificador [ ] [ ]; Ejemplos int matriz[ ][ ]; int [ ] [ ] pantalla;

Sintaxis para crear un arreglo con una longitud determinada. Tipo_de_dato nombreArreglo [ ] [ ]= new Tipo_de_dato [num_filas] [num_columnas]; ..Ejemplos int matriz[ ][ ] = int [ 4 ] [ 2 ]; int [ ] [ ] pantalla = [ 600 ] [400 ] int;

Darle valor a un arreglo bidimensional. Es preciso darle un valor a los arreglos antes ser utilizados, aunque por defecto se inicializan a 0.

nombreArreglo [ ndice_filas ] [ndice_columnas]= valor_del_arreglo; ..Ejemplos... matriz[ 0 ][ 0 ] = 23; matriz[ 0 ][ 1 ] = 5; matriz[ 1][ 1 ] = 41; [ 123 ] [200 ] pantalla = 2345;

16

3 CLASES EN JAVA. 3.1 Concepto. Clase: es una agrupacin de datos (variables) y de funciones (mtodos) que operan sobre esos datos. La clase debe llamarse igual que el nombre del archivo. Ejemplo, el archivo se llama: HolaMundo.java la clase se llamar: HolaMundo

La programacin orientada a objetos se basa en la programacin de clases. Un programa se construye a partir de un conjunto de clases Una vez definida la clase, es posible declarar elementos de esta clase como mtodos y variables. 3.2 Definicin de una clase. [modificarAcceso] [ModificadorClase] class NomClase [extends nomBase] [implements ListaIterfaces] { Variables Mtodos } . Ejemplo: . public class Vasos { String tamanio; // grande,mediano.chico String color; // rojo,azul,amarillo,naranja String estampago; // cereza,cara,mounstro } 3.3 Creacin de objetos Un objeto o instancia, es un ejemplar concreto de una clase. Podemos ver las clases como tipos de datos para una variable, mientras que los objetos pueden verse como variables concretas de un tipo de dato determinado.

Objeto de la clase Vasos Clase Vasos

17

Un objeto contiene una copia exacta de las variables y mtodos de la clase con la que se cre dicho objeto. Sintaxis para crear un objeto. NombreClase nom_objeto;

Para inicializar un objeto se usa la palabra reservada new nom_objeto = new NombreClase( ); Ejemplo: Crear un objeto (instancia o ejemplar) con el nombre vaso de la clase Vasos Vasos vaso= new Vasos();

3.4 Variables miembro. Son las variables que se declaran dentro de la clase. Las variables miembro se declaran dentro de la clase, pero fuera de cualquier mtodo. Como ejemplo vamos a tomar la clase Vasos, que est en la parte de arriba, en sta clase hay 3 variables miembro ( tamanio, color y estampado).

3.4.1 Variables miembro de objeto. Son las variables que tiene un objeto de una determinada clase, por ejemplo vamos tomar en cuenta el objeto vaso que se cre en el tema 3.3, ste objeto tiene tres variables miembro de objeto (tamanio, color, estampado). Para poder obtener el valor de una variable miembro de objeto, debemos hacer lo siguiente: Nombre_objeto.variable_miembro

Ejemplo:

vaso.tamanio vaso.color vaso.estampado

Nota: Recordar que vaso es un objeto de la clase Vasos

18

3.4.2 Variables miembro de clase (static). Son variables propias de la clase y no de cada objeto, a estas variables tambin se las llama variables de clase o variables static. Este tipo de variables son similares a las globales en c/c++. Las variables static o de clase, se suelen utilizar para definir constantes comunes para todos los objetos de la clase y cuando ste es el caso se usa el modificador de variable final. Ejemplo: a la clase Vasos le vamos agregar una variable static constante y otra que solo sea global. static final String MATERIAL = plastico; //constante static int presio; //variable miembro de clase static (global)

3.5 Modificadores. Un modificador es un elemento del lenguaje java. Un modificador se coloca delante de la definicin de una variable miembro, delante de mtodos o clases que alteran o condicionan el significado del elemento.

3.5.1 Modificadores de clase. Indica caractersticas especficas de la clase que estamos construyendo y sus posibles valores son. abstract: indica que a la clase le falta el cdigo de algn mtodo (al menos uno). Es decir posee un mtodo abstracto, pero no tiene el cdigo de ese mtodo, siendo responsable la clase derivada la que proporcionara el cdigo. A partir de una clase abstracta no se pueden crear objetos. abstract class Prueba2 { public abstract void suma(int x,int y); }

final: Evita que la clase pueda ser derivada(nadie puede derivarse de esta clase). final class Prueba3 { int x; }

19

extends: Indica que hereda atributos de otra clase base, sino incluimos extends, por default se hereda de la clase Object.

class implementar extends Prueba2{ private int x; public static void main(String[] args) { implementar ver = new implementar(); ver.suma(4,5); } public void suma(int x,int y){ this.x=x+y; System.out.println (this.x); } }

Nota: por cierto en java solo se puede heredar de una sola clase. implements: Indica que esta clase es de tipo interfaz, indicado por la lista de interfaces separados por comas. 3.5.2Modificadores de variable. Indica caractersticas especficas de las variables y sus posibles valores son. static: Es nico para todos los objetos de la clase y se pude usar en toda la clase y en cualquier mtodo dentro de la clase (como si fuera global). Final: Indica que sta variable no se pude modificar de ninguna manera y por tanto (se convierte en Constante).

20

3.5.3 Modificadores de Acceso Los modificadores de acceso, permiten al diseador o programador de una clase determinar quien accede a los datos y mtodos miembro de una clase. Los modificadores siempre van antes de la declaracin de un elemento de la clase. Donde un elemento puede ser (una variable, un objeto, un mtodo e incluso la misma clase).

Existen 4 modificadores de acceso. 1.- public : Quiere decir que todos las clases pueden acceder al elemento. Si es un dato miembro, todos pueden leer y modificar su valor, si es un mtodo, todos pueden invocarlo.

class Modificadores { public int x; //todos tienen acceso }

2.- private: Solo se puede acceder a los datos desde la clase donde estn declarados, ninguna otra clase puede ver o modificar el valor de un elemento privado.

class Modificadores { private int y;//solo esta clase tiene acceso }

3.- protected: Es una combinacin de public y private , protected proporciona acceso pblico para las clases derivadas y acceso privado para el resto de las clases.

class Modificadores { protected int z;//solo las clases derivadas de esta clase //tienen acceso }

21

4.- sin modificador: Indica que el elemento se puede acceder desde cualquier clase que este dentro del mismo paquete.

class Modificadores { int w;//todas las clases dentro del paquete donde se //encuentra sta clase tienen acceso }

Ejemplos: class Modificadores { public int x; private y; protected z; Int w; public static void main(String args[]){ Modificadores ver= new Modificadores(); int var1=ver.x; int valor2=ver.w; int valor3=ver.z; } }

Nota: el modificador de acceso protected se ver en el tema de herencia 3.6 Mtodos. Mtodos: son funciones definidas dentro de una clase, es decir mtodos miembro. Existen 2 tipos de mtodos los que retornan o devuelven valor y los que no retornan. Mtodos que no retornan valor: utilizan la palabra void al definir el mtodo. Mtodos que retornan valor: al momento de definir el mtodo se especifica el tipo de dato que va a retornar, y al final del mtodo se pone return para devolver el valor;

22

Sintaxis de los mtodos: [modificador _acceso] [modificador_funcion] tipo nom_funcion (lista_parametros)[throws lista_excepciones]{ //instrucciones } ----------------------------------------------------------ejemplo----------------------------------------------------------void suma(){ //no retorna valor int s=6+6; } int multiplicar(){ //retorna un valor entero int m= 6*6; return m; }

3.6.1 Mtodos de objeto Se aplican siempre a un objeto de la clase, mediante el operador ( ) Ejemplo: creamos un mtodo suma y otro multiplicar, y lo invocamos con el objeto ver de la clase Mtodos public class Metodos{ public void suma(){ int s=10+5; } int multiplicar(){ int m= 9*9; return m; } public static void main(String agrs[]){ Metodos ver = new Metodos(); ver.suma(); int x= ver.multiplicar(); } }

3.6.2 Mtodos de clase (static).

23

Son mtodos de clase, para declararlo se le antepone al nombre, la palabra static, y para invocarlo solo se pone el nombre del mtodo. No hay necesidad de crear un objeto. Ejemplo: public class Metodos{ public static void suma(){ int s=10+5; } public static void main(String agrs[]){ suma(); } }

3.6.3 Paso de argumentos a mtodos Los argumentos o mejor conocidos como parmetros, son variables que tiene un mtodo dentro de los parntesis y estas funcionan como locales, es decir cuando termine el bloque de llaves de ese mtodo finalizan la variables. Ejemplo de paso de parmetros. public class PasoParametros{ void suma( int x , int y ){ int s=x+y; } public static void main(String args){ PasoParametros llamar = new PasoParametros(); llamar.suma( 3, 20 ); } }

24

3.6.4 Mtodos sobrecargados. Son aquellos mtodos que tienen el mismo nombre, y su comportamiento es diferente. La diferencia en cada mtodo sobrecargado es el nmero de parmetros o argumentos. Ejemplo de mtodos sobre cargados. void suma(){ int s=10+9; } void suma(int x, int y){ int s=x+y; } int suma(int x){ int s=5+10+x; return s; }

3.6.5 Constructores. Los constructores son mtodos especiales, se utilizan para inicializar objetos y variables, para llamar a un mtodo constructor se utiliza la palabra new. Sino definimos un constructor, java crea uno por default, que no recibe nada y no hace nada. Un constructor tiene las siguientes caractersticas. 1. El nombre del constructor tiene que ser igual al de la clase. 2. Puede recibir cualquier nmero de argumentos y de cualquier tipo. 3. No devuelve ningn valor y no usa void Ejemplo de cmo crear un constructor. public class Punto { int x, y; public Punto( ){ } public Punto( int x, int y ){ this.x=x; this.y=y; } } Invocar o llamar un constructor. public class Punto { // Constructores anteriores public static void main(String args[] ){ Punto p1=new Punto(); p1.x=10; p1.y=10; Punto p2=new Punto(20,20); } }

25

3.7 Acceso a las variables de otra clase. Para poder acceder a variables y funciones de otra clase, es muy simple, solo debemos crear un objeto con la clase en donde se encuentran las variables y funciones que queremos usar. Ejemplo: public class ClaseJava { int x=0, y=0, z=0; private int a=0; void modificar_a(int val){ a=val; } int leer_a( ){ return a; } void ver_xyz( ){ System.out.println(x = + x); System.out.println(y = + y); System.out.println(z = + z); } } public class Accesando { public static void main( String args[] ){ ClaseJava acceso=new ClaseJava ( ); acceso.ver_xyz( ); acceso.x=1; acceso.y=2; acceso.z=3; acceso.ver_xyz( ); acceso.leer_a( ); acceso.modificar_a(10 ); acceso.leer_a( ); } }

3.8 Herencia. La herencia consiste en copiar todas las propiedades de una clase base a una subclase, la herencia est presente cuando se crean nuevos objetos definidos en trminos de objetos ya existentes. Para crear una subclase se usa la palabra extends.

26

Ejemplo, a partir de la clase base Ave, se pude crear la subclase Pato. public class Ave{ int n_patas; int velocidad; void vuela(){ System.out.println(Volando); } void come(){ System.out.println(Volando); } } //aplicando la herencia public class Pato extends Ave{ public Pato( ){ n_patas=2; velocidad=30; } Void camina(){ System.out.println(caminando); } public static vod main( String args[] ){ Pato lucas = new Pato(); lucas.come(); lucas.camina(); lucas.vuela(); } }

3.9 Casting. El Casting tambin conocido como trasformaciones de tipo, es un proceso para transformar una variable primitiva a otro tipo e incluso para transformar un objeto de una clase a otra, siempre y cuando haya una relacin de herencia entre ambas. Dentro del casting de variables primitivas se distinguen dos clases, implcito y explicito. Implcito: no se necesita escribir cdigo, ya que ocurre cuando se realiza un conversin ancha, es decir cuando se coloca un valor pequeo dentro de un contenedor grande. Ejemplo:

int n1=100; //ocupa 4 bytes (contenedor pequeo) long n2=n1; //ocupa 8 bytes (contenedor grande)

27

Explicito: en este si se necesita escribir cdigo, ya que ocurre cuando se realiza una conversin estrecha, es decir cuando se coloca un valor grande en un contenedor pequeo. En este caso puede haber prdida de datos. Ejemplo: int n1=100; //ocupa 4 bytes (contenedor grande) short n2=n1; //ocupa 2 bytes (contenedor pequeo), error esto no es posible short n2 =(short)n1; //esto sera lo correcto, a esto se le llama casting explicito Hay ocasiones en que se pierde datos al hacer el casting, como sabes un int tiene un tamao de 4 bytes y un short tiene 2 bytes, por tanto si ocupamos todo el tamao de un int, al hacer el casting y guardarlo en un short se perdern 2 bytes. Ejemplo: int n1=1000000; //ocupa 4 bytes (contenedor grande) short n2 =(short)n1; //tambin es correcto, pero se pierden datos Cuando queremos declarar un flotante tenemos que poner la letra f despus del nmero, de lo contrario marcaria un error de compilacin. Ejemplo: float promedio=23.4f; //correcto float promedio=23.4; //incorrecto

Esto se debe a que el numero 23.4 esta disfrazado como un flotante ( float ), pero en realidad es un double. La letra f: indica que el valor es un dato flotante, por lo tanto si le quitamos la letra f se considera como double. De acuerdo a esto podemos decir que (23.4f es diferente de 23.4), el primero es flotante y el segundo es double. Veamos lo que pasa: un double tiene un tamao de 8 bytes, mientras que un float tienen 4 bytes, estamos tratando de guardar un contendor grande en uno pequeo. Se puede solucionar con un casting explicito. float promedio=23.4f; //correcto float promedio= ( float )23.4; //correcto

28

Tambin se puede hacer casting entre clases, siempre y cuando exista una relacin de herencia. Ejemplo: Supongamos que tenemos dos clases A y B. class A{ int x=29; void printer(){ System.out.println ("hola mundo, soy A"); } } class B{ int x=10; int y=2; void printer(){ System.out.println ("que onda mundo, soy B"); } }

Hacemos un arreglo de objetos de clase base Object, y estos objetos los vamos a convertir con un castin a objetos de la clase A y B public class Casting { public static void main(String[] args) { Object objetos[]=new Object[2]; //arreglo de objetos objetos[0]=new A(); //inicializamos el objeto en pos 0 con la clase A objetos[1]=new B(); //inicializamos el objeto en pos 1 con la clase B // Hacemos el casting explicito para convertir un objeto genrico a un objeto de la clase A y B segn sea el caso A objetoA =(A) objetos[0]; //convertimos un objeto genrico a un objeto de clase A B objetoB =(B)objetos[1]; //convertimos un objeto genrico a un objeto de clase B objetoA.printer(); //llama al mtodo printer de la clase A objetoB.printer(); //llama al mtodo printer de la clase B } }

29

Bibliografa.
Pginas webs http://www.cica.es/formacion/JavaTut/ http://es.wikibooks.org Libros. Programacin en java 2 Algoritmos, Estructuras de datos y Programacin O.O. Mcgraw-hill (2002, 1 edicin) Luis Joyanes Aguilar. Estructuras de datos en java. Pearson. Mark Allen Weiss.

Tutoriales digitales. Aprenda java como si estuviera en primero. Universidad de Navarra, escuela superior de ingenieros. Javier Garca de Jaln, Jos Ignacio Rodrguez, Iigo Mingo, Aitor Imaz, Alfonso Brazales, Albero Larzabal, Jess Calleja, Jon Garca. Java desde Cero.

30

Вам также может понравиться