Está en la página 1de 113

J AVA ++

Ing. Jorge Butler B.


2
I NTRODUCCI ON
Surgi en 1991.
Como lenguaje de programacin en 1995.
Al programar en JAVA no se parte de cero
sino utiliza clases ya existentes.
El JDK (Java Development Kit) es un
conjunto de programas y libreras que
permiten desarrollar, compilar y ejecutar
programas en Java. Permite detener la
ejecucin de un programa para ver el valor
de las variables.

3
I NTRODUCCI ON
Un package es una agrupacin de clases
que tienen una finalidad relacionada.
Existe una jerarqua de packages que se
refleja en nombres compuestos separados
por un punto.
Es habitual nombrar los packages con
letras minsculas y los nombres de clases
deben empezar siempre con mayscula.
4
CONCEPTO DE CLASE Y
HERENCI A
Una clase es una agrupacin de datos
(variables o campos) y de funciones
(mtodos) que operan sobre esos datos.
A estos datos y funciones pertenecientes a
una clase se les denomina variables y
mtodos o funciones miembro.
La POO se basa en el programacin de
clases. Un programa se construye a partir
de un conjunto de clases
5
CLASE Y HERENCI A
Una vez definida e implementada una clase,
es posible declarar elementos de esta clase
de modo similar a como se declaran las
variables ( int, double, float, etc.).
Los elementos declarados de una clase se
denominan objetos de la clase.
La clase es lo genrico, es el patrn o
modelo para crear objetos.
6
CLASE Y HERENCI A
Cada objeto tiene sus propias copias de las
variables miembro , con sus propios valores
Las clases pueden tener variables static que
son propias de la clase y no de cada objeto.
La HERENCI A permite que se pueda
definir nuevas clases basadas en clases
existentes.
Una derivada de otra (extends) hereda
todas sus variables y mtodos.
7
CLASE Y HERENCI A
La clase derivada puede aadir variables y
mtodos a los heredados.
Todas las clases en Java son derivadas de
la clase java.lang.Object, por lo que
heredan todos los mtodos y variables de
sta.
Para indicar que una clase deriva de otra
se utiliza la palabra extends:
class CirculoGrafico extends Circulo
8
EJ EMPLO DE
I NSTRUCCI ONES
En los ejemplos:
import java.util.Vector;
import java.awt.*;
Se importan clases de los packages de Java.
En el primero a la clase Vector y en el
segundo a todas las clases.
En Java todas son clases ; no se puede
definir una variable o una funcin que no
pertenezca a una clase.
9
EJ EMPLO .....
class Ejemplo1
{ public static main(String arg[ ])
Las clases son verdaderos tipos de datos o
datos creados por el usuario.
Un objeto es una variable concreta de una
clase.
La definicin de un programa siempre
comienza con el mtodo main.
10
EJ EMPLO......
System.out.println(comienza el main);
Imprime una cadena de caracteres en la
salida estndar del sistema.
Circulo c = new Circulo(2.0, 2.0, 4.0);
Es equivalente a:
Circulo c;
c = new Circulo (2.0, 2.0, 4.0);

11
EJ EMPLO....
En esas instrucciones se crea una
referencia llamada c a un objeto de la
Clase Circulo.
Crear una referencia es como crear un
nombre vlido para referirse a un objeto de
la clase.
Con el operador new se crea un objeto
propiamente dicho.
12
EJ EMPLO.....
Los parmetros o argumentos que se
incluyen a continuacin del nombre de la
clase se le pasan al constructor de la clase
y representan las coordenadas del centro y
el radio.
Debe tener en cuenta que una Clase es lo
genrico, en este caso Crculos, y un objeto
es algo en concreto, en este caso c es un
circulo especifico.
13
EJ EMPLO....
La clase especifica que cada objeto necesita
tres datos: dos coordenadas y un radio, que
son las variables miembros de la clase.
La sentencia:
System.out.println(Radio = + c . r +
unidades.);
imprime un texto que contiene el valor del
radio.
14
EJ EMPLO....
El operador + permite unir tres subcadenas
y se le conoce como operador de
concatenacin.
Observe que el radio del objeto c aceza
colocando el nombre del objeto con un
punto y seguido por el nombre de la
variable.
15
EJ EMPLO...
La palabra public indica que puede ser
utilizada por cualquier clase
La palabra static indica que es un mtodo
de clase, es decir, un mtodo que puede ser
usado aunque no se haya creado ningn
objeto de la clase.
16
NOMENCLATURA
En Java es habitual utilizar nombre con
minscula.
Cuando un nombre consta de varias
palabras es habitual poner una a
continuacin de otra, poniendo con
mayscula la primera letra de la siguiente
palabra. Ej.. totalNotas.
El nombre de las clases deben comenzar
con maysculas.
17
NOMENCLATURA
Los nombres de objetos, los nombres de
mtodos y variables miembro, el de las
variables locales comienzan siempre con
minscula.
18
ESTRUCTURA GENERAL
Un programa fuente tiene una extensin
java (*.java).
Los programas compilados son *.class.
Un programa fuente puede tener mas de
una clase pero solo una puede ser public.
El nombre del archivo fuente debe coincidir
con el de la clase public
19
ESTRUCTURA GENERAL
Si en un archivo aparece la declaracin:
public class MiClase {........}
entonces el nombre del archivo debe ser
MiClase. Java.
Deben coincidir maysculas y minsculas.
Las clase de java se agrupan en packages
que son libreras de clases.
Si la clase no se define como miembro de un
package se utiliza el directorio activo.
20
VARI ABLES
Es un nombre que contiene un valor que
puede cambiar a lo largo del programa.
Hay dos tipos principales de variables:
Variables de tipos primitivos, estn
definidas mediante un valor nico.
Variables referencia, son referencias o
nombres de una informacin mas
compleja como un array u objeto de una
determinada clase.
21
VARI ABLES
Desde el punto de vista de su papel en el
programa, las variables pueden ser:
Variables miembro de una clase: se
definen dentro de una clase, fuera de
cualquier mtodo; pueden ser primitivos
o de referencia.
Variables locales: se definen dentro de
un mtodo o dentro de cualquier bloque
de instrucciones.
22
NOMBRE DE VARI ABLES
Pueden ser cualquier conjunto de
caracteres numricos o alfanumricos.
No pueden incluirse como nombres las
palabras reservadas del Java.
Los tipos primitivos de variables aquellas
variables sencillas que contienen los tipos
de informacin mas habituales tales como
valores booleanos, caracteres y de valores
numricos enteros o flotantes.
23
TI POS PRI MI TI VOS DE
VARI ABLES
El Java dispone de 8 tipos: un tipo puede
almacenar valores verdadero y falso; otro
almacenar caracteres (char), y 6 tipos para
guardar valores numricos.
Cuatro tipos para enteros (byte, short, int,
long).
Dos para valores de punto flotante (float y
double)
24
CARACTERI STI CAS DE LOS
TI POS PRI MI TI VOS
El tipo boolean no es un valor numrico
(0-1) como en el C/C++, sino un valor true
o false.
El tipo char ocupa 2 bytes por carcter.
Los tipos byte, short, int, long son nmeros
enteros que pueden ser positivos y
negativos. No existe el sin signo.
Se utiliza la palabra void para indicar la
ausencia de un tipo de variable
determinado.
25
DEFI NI CI ON E
I NI CI ALI ZACI ON DE
VARI ABLES
Se define especificando el tipo y el nombre.
Las variables primitivas se inicializan a
cero (salvo boolean y char, que se
inicializan a false y \0).
Las variables de tipo referencia son
inicializadas por defecto a un valor null.
Una referencia es una variable que indica
donde se encuentra un objeto (lugar en la
memoria del computador)
26
DEFI NI CI ON E
I NI CI ALI ZACI ON DE
VARI ABLES
Si se desea que esta referencia apunte a un
nuevo tipo de objeto es necesario utilizar el
operador new, sino no se encuentra
apuntando a ningn objeto asignandosele el
valor null.
Un tipo particular de referencia son los
arrays o vectores ya sean de variables
primitivas o de objetos.
27
EJ EMPLO DE
DECLARACI ON E
I NI CI ALI ZACI ON
int x; // Declaracin de variable primitiva
int y = 5;
MyClass unaRef; // Referencia a un objeto
MyClass; se inicializa a null.
unaRef = new MyClass( );// La referencia
apunta al nuevo objeto creado.
MyClass segundaRef = unaRef;// Segunda
referencia, se inicializa igual a unaRef.
28
EJ EMPLO DE
DECLARACI ON E
I NI CI ALI ZACI ON
int [ ] vector;//Array inicializado a null.
vector=new int[10];vector inicializado en 0
double [ ] v={1.0, 2.6, 3.1};// Declaracin
e inicializacin vector de 3 elementos.
MyClass [ ] lista = new MyClass[5]// Se
crea vector de 5 referencias a objetos. Las
5 referencias inicializadas en null.
29
EJ EMPLO DE
DECLARACI ON E
I NI CI ALI ZACI ON
lista[0] = unaRef;
lista [1] = new MyClass;
En el ejemplo las referencias unaRef,
segundaRef y lista[0] actuarn sobre el
mismo objeto.
30
AMBI TO DE UNA
VARI ABLE
En Java todas las variables deben estar
incluidas en una clase.
Todas las variables definidas dentro de un
bloque son visibles y existen dentro de este
bloque.
Las variables definidas dentro de un if no
son validas al finalizar las sentencias
correspondientes a dicho if.
31
AMBI TO DE UNA VARI ABLE
Las variables miembro de una Clase
declarada como public son accesibles a
travs de una referencia a un objeto de
dicha clase utilizando un operador punto.
Las variables miembro declaradas como
private no son accesibles directamente
desde otras clases.
Las funciones miembro de una clase tienen
acceso directo a todas las variables
miembro de la clase.
32
AMBI TO DE UNA VARI ABLE
Las funciones miembro de una clase B
derivada de una clase A , tienen acceso a
todas las variables miembro de A
declaradas como public o protected, pero
no las declaradas como private.
Es posible declarar una variable dentro de
un bloque con el mismo nombre que una
variable miembro , pero no con el mismo
nombre de otra variable local.
33
AMBI TO DE UNA VARI ABLE
La variable declarada dentro de un bloque
oculta a la variable miembro en ese bloque.
Para acceder a la variable miembro oculta
ser preciso utilizar el operador this.
La forma de crear nuevos objetos es
utilizando el operador new.

34
AMBI TO DE UNA VARI ABLE
Cuando se utiliza el operador new, la
variable de tipo referencia guarda la
posicin de memoria donde esta
almacenado este nuevo objeto.
La eliminacin de los objetos la realiza el
garbage collector, quien automticamente
libera o borra la memoria ocupada por un
objeto cuando no existe una referencia
apuntando hacia dicho objeto.
35
OPERADORES
Aritmticos: +, -, *, / , %.
Asignacin: +=, -=, *=, /=, %=
Unarios: +, - sirven para mantener o
cambiar el signo de una variable, constante
o expresin.
El operador instanceof permite saber si un
objeto pertenece a una determinada clase o
no. Nombre_objeto instanceof nom_clase
36
OPERADORES
El operador condicional ? Permite realizar
bifurcaciones.
expresin_booleana ? res1 : res2
z = (x > y) ? X+3 : x+5;
Evala y devuelve res1 se el resultado es
true y res2 si es false.
El Java dispone del operador de incremento
++ y decremento --.
37
OPERADORES
Existen los siguiente operadores relacionales:
<, >, >=, <=, ==, !=.
Existen los sgtes. Operadores lgicos:
&&, | | , ! , & , |
Si se considera solamente un & o | la
evaluacin del segundo operando se realiza
aunque la evaluacin del primer operando
de respuesta negativa.
38
OPERADORES
El operador + se utiliza para concatenar
cadena de caracteres.
System.out.println(El resultado asciende a
+ result + unidades);
Todos los operadores excepto los de
asignacin se evalan se izquierda a
derecha.

39
SENTENCI A I F
Las estructuras de control permiten tomar
decisiones y realizar un proceso repetidas
veces.
Las bifurcaciones permiten ejecutar una
entre varias acciones en funcin del valor
de una expresin lgica o relacional.
La bifurcacin if permite ejecutar un
conjunto de sentencias en funcin del valor
que tenga la condicin.
40
SENTENCI A I F
if (expresin booleana)
{ ...........................
sentencias;
}
else
{ .........................
sentencias;
}
41
EJ EMPLO DE SENTENCI A
I F
int numero = 61;
if (Math.abs(numero) < 10)
Math.abs calcula el valor absoluto
System.out.println(numero tiene un
digito);
else if (Math.abs(numero)<100)
System.out.println(tiene dos digitos);
else
System.out.println(tiene mas de dos);
42
SENTENCI A SWI TCH
Es una alternativa al if para mas de dos
salidas.
switch (expresin)
{ case value1: sentencia; break;
case value2: sentencia; break;
case value3: sentencia; break;
default: sentencia;
}
43
SENTENCI A SWI TCH
No es posible establecer rango de
condiciones, sino se debe comparar con
valores concretos.
En ausencia del break se ejecutan todas las
condiciones que siguen hasta encontrar un
break o termine el switch.
44
SENTENCI A SWI TCH
char c = (char) (Math.random( ) * 26 +a);
Generacin aleatoria de letras minsculas
System.out.println (La letra + c);
switch ( c )
{ case a:
case e:
case i:
case o:
case u :
System.out.println (es una vocal); break;
}
45
BUCLE WHI LE
El conjunto de sentencias se ejecuta
mientras la condicin sea true(verdadera).
while (condicin)
{ sentencia;
}
while (x>10)
{ P = Q+8;
x= x-1;
}
46
BUCLE FOR
Es semejante al while, con la diferencia que
el incremento o decremento de la variable
de control se realiza automticamente.
for (int i=1, j=i+10; i<5; i++, j=2*i)
{System.out.println( i = + i + j = + j);
}
Salida: 1,11; 2,4; 3,6; 4,8
47
BUCLE DO WHI LE
Es similar al bucle while pero con la
particularidad de que el control est al final
del bucle..
do
{ sentencia;
................
} while (condicin)
48
SENTENCI A BREAK Y
CONTI NUE CON ETI QUETAS
Las etiquetas permiten indicar un lugar
donde continuar la ejecucin de un
programa despus de un break o un
continue.
El nico lugar donde se pueden incluir
etiquetas es justo delante de un bloque de
instrucciones entre llaves (if, switch, while,
do...while, for) y solo se deben utilizar
cuando se tiene uno o mas bucles dentro de
otro bucle y se desea salir o continuar
49
EJ EMPLO BREAK
bucleI:
for (int i=0, j=0; i<100; i++)
{ while (true)
{ if ((++j) >5)
break bucleI;
finaliza ambos bucles
else break; } }
finaliza bucle interno
50
CLASES EN J AVA
La clases son el centro de la POO.
Las clases pueden ser declaradas como
pblicas (public) y como package (accesible
slo para otras clases del package)
Las variables miembro y los mtodos
pueden ser public, private, protected, y
package.
Una clase puede derivar de otra y es ese
caso hereda todas sus variables y mtodos.
51
CLASES EN J AVA
Una clase derivada puede aadir nuevas
variables y mtodos y/o redefinirlos.
Los objetos de distintas clases
pertenecientes a una misma jerarqua o que
implementan una misma interface pueden
tratarse de una forma general e
individualizada, al mismo tiempo.
Una clase es una agrupacin de datos y de
funciones que operan sobre esos datos.
52
CLASES EN J AVA
[public] class nombre
{ declaracin de variables y mtodos
.............................
}
La palabra public es opcional, si no se pone
la clase solo es visible para las dems
clases del package. Todos los mtodos y
variables deben ser definidos dentro de las
llaves de la clase.
53
CLASES EN J AVA
Un objeto es un ejemplar concreto de la
clase, las clases son como los tipos de
variables.
Todas las variables y funciones deben
pertenecer a una clase. No hay variables y
funciones globales.
Si una clase deriva de otra (extends),
hereda todas sus variables y mtodos.
54
CLASES EN J AVA
Java tiene una jerarqua de clases estndar
de la que pueden derivar las clases que
crean los usuarios.
Una clase solo puede heredar de una nica
clase.
Si no se indica de que clase deriva, por
defecto la clase deriva de Object que es la
base de toda la jerarqua de clases.
55
CLASES EN J AVA
En un archivo se pueden definir varias
clases, pero no puede haber mas que una
clase public . Este archivo se debe llamar
igual que la clase public con extensin java.
Si una clase contenida en un archivo no es
public puede tener otro nombre.
Las clases se pueden agrupar en packages
introduciendo al comienzo del archivo:
package nombre_del_package
56
VARI ABLES MI EMBRO DE
OBJ ETO
Cada objeto tiene su propia copia de
variables miembro.
Las variables miembro de una clase,
tambin llamadas campos pueden ser de
tipos primitivo (boolean, int, long, etc.) u
referencia a objetos de otra clase.
No pueden existir datos sin inicializar.
Las de tipo primitivo se actualizan
automticamente.
57
VARI ABLES MI EMBRO DE
OBJ ETO
Tambin es posible hacerlo en la
declaracin :
long nDatos = 100;
Las variables miembro se inicializan en el
mismo orden en que aparecen en la
codificacin de la clase si es que unas
dependen de otras.
Se puede aplicar un mtodo a un objeto
poniendo el nombre del objeto y luego el
nombre del mtodo separados por un punto
58
VARI ABLES MI EMBRO DE
OBJ ETO
Las variables miembro pueden ir
precedidas en su declaracin por uno de los
modificadores de acceso: public, private,
protected, package.

59
VARI ABLES MI EMBRO DE
CLASE
Una clase puede tener variables propias de
la clase y no de cada objeto
A estas variables se le conocen con el
nombre de variables de clase o static.
Pueden usarse para definir constantes
comunes para todos los objetos de la clase.
Son parecidas a las variables globales en
C++.
60
VARI ABLES MI EMBRO DE
CLASE
Las variables de clase se crean
anteponiendo la palabra static a su
declaracin.
Para llamarlas se puede utilizar el nombre
de la clase o del objeto antepuesto con un
punto. Circulo.nCirculos
Si no se les da valor en la declaracin, las
variables miembro static se inicializan con
los valores por defecto.
61
VARI ABLES DE TI PO FI NAL
Una variable de tipo primitivo declarada
como final no puede cambiar su valor a lo
largo de la ejecucin.
Puede ser considerada como una constante
y equivale a la palabra const del C++.
Pueden ser final tanto las variables
miembro como las locales.
62
METODOS DE OBJ ETOS
Son funciones definidas dentro de una clase
Salvo los mtodos static o de clase, se
aplican siempre a un objeto de la clase por
medio del operador punto.
public
Circulo elMayor(Circulo c)
{ if (this . r>=c)
return this
else return c;
63
METODOS DE OBJ ETOS
Al comienzo se debe definir el tipo del valor
de retorno.
Los mtodos tienen visibilidad directa de
las variables miembro del objeto, es decir
acceder a ellas sin calificarlas con un
nombre de objeto o tambin mediante el
operador this.
El valor de retorno puede ser un valor de
tipo primitivo o una referencia..
64
METODOS DE OBJ ETOS
Solo puede haber un valor de retorno que
puede ser un objeto o un array.
Se puede devolver un objeto de la misma
clase o de una subclase.
Los mtodos pueden definir variables
locales que a diferencia de las variables
miembro no se inicializan por defecto.
Si se incluye la palabra native en la
definicin permite incluir funcione escritas
en otros lenguajes que se encuentran
almacenadas en al librera DLL.
65
METODOS
SOBRECARGADOS
Al igual que el C++ permite usar mtodos
distintos con el mismo nombre que se
diferencian por el nmero y/o tipo de los
argumentos.
Si existe el mtodo cuyos argumentos se
ajuste exactamente al tipo de los
argumentos de la llamada, se llama a este.
Si no existe uno que se ajuste exactamente,
se intenta promover los argumentos de la
llamada al tipo inmediato superior y se
llama al mtodo que coincida.
66
PASO DE ARGUMENTOS
Los argumentos de los tipos primitivos se
pasan siempre por valor.
Se puede pasar una referencia a un objeto y
dentro de la funcin utilizar los mtodos de
ese objeto.
Dentro de un mtodo se pueden usar
variables locales de los tipos primitivos o
referencias, las cuales dejan de existir al
termino de la ejecucin del mtodo.
Los argumento ficticios de un mtodo tienen
categora de variables locales del mtodo.
67
METODOS DE CLASE
Son los mtodos que no actan sobre
objetos concretos a travs del operador
punto.
Pueden recibir objetos de su clase como
argumentos explcitos, pero no tienen
argumento implcito ni pueden utilizar this.
Los mtodos y variables de clase se crean
anteponiendo la palabra static.
Para llamarlos se utiliza el nombre de la
clase: Math . sin (ngulo)
68
CONSTRUCTORES
Es un mtodo que se llama
automticamente cada vez que se crea un
objeto de una clase.
La principal funcin del constructor es
reservar memoria e inicializar las variables
miembro de la clase.
Los constructores no tienen valor de
retorno y su nombre es igual al de la clase.
69
CONSTRUCTORES
Su argumento implcito es el objeto que se
est creando.
Una clase tiene varios constructores que se
diferencian por el tipo y nmero de
argumentos.
Se llama constructor por defecto al que no
tiene argumentos.
El constructor de una subclase puede
llamar al constructor de su superclase por
medio de la palabra super.
70
CONSTRUCTORES
De esta forma un constructor solo tiene que
inicializar por si mismo las variables no
heredadas.
Si el programador no crea un constructor
para una clase, el compilador crea uno por
defecto.
Los constructores pueden tener los
modificadores de acceso public, private, etc
71
I NI CI ALI ZADORES STATI C
Es un mtodo que se llama
automticamente al crear la clase . Se
diferencia del constructor en que no es
llamado para cada objeto sino una vez para
toda la clase.
Los inicializadores static se crean dentro de
la clase, como mtodos sin nombre y sin
valor de retorno, con tan solo la palabra
static y el cdigo entre llaves.
72
PACKAGES
Es una agrupacin de clases.
Para que una clase pase a formar parte de
un package, por ejm. Llamado pkgName se
tiene que codificar:
package pkgName
como primera sentencia del archivo.
Los nombres de los packages se suelen
escribir con minscula para distinguirlos de
las clases.
73
PACKAGES
Todas las clases que forman parte de un
package deben estar en el mismo directorio.
Se utilizan para agrupar clases
relacionadas.
La sentencia import permite abreviar el
nombre de las clases, variables y mtodos,
evitando el tener que escribir
continuamente el nombre del package.
Se importan por defecto el package
java.lang y el package actual o por defecto.
74
LA CLASE OBJ ECT
Es la raz de toda la jerarqua de clases,
todas las clases derivan de ella.
Una clase puede redefinir cualquiera de los
mtodos heredados de su superclase.
El nuevo mtodo sustituye al heredado.
Los mtodos de la superclase que han sido
redefinidos pueden ser accedidos por medio
de la palabra super.
75
CLASES O METODOS
ABSTRACTOS
Una clase abstracta es aquella de la que no
se pueden crear objetos.
Su utilidad es permitir que otras clases
deriven de ella.
public abstract class Geometria
Una clase abstract puede tener mtodos que
no son abstract.
Un mtodo abstract no puede ser static.
76
I NTERFACES
Es un conjunto de declaraciones de
mtodos (sin definicin) .
Una clase puede implementar una o varias
interfaces.
public class CirculoGrafico extends
Circulo implements Dibujable, Clonable
Una interface se define de modo similar a
una clase
77
I NTERFACES
public interface Dibujable
{ public void setposicion(double x,
double y);
public void dibujar(Graphics dw);
}
Cada interface public debe ser definida en
un fichero *.java con el mismo nombre de
la interface.
78
I NTERFACES
Solo permiten los modificadores public y
package.
Cuando una interface deriva de otra incluye
todas sus constantes y declaraciones de
mtodos.
Las constantes definidas en una interface se
pueden utilizar en cualquier clase
precediendolas del nombre de la interface.
79
ARRAYS
Se tratan como objetos de una clase
definida.
Son objetos pero con caractersticas
propias
Los arrays pueden ser asignados a objetos
de la clase Object y los mtodos de Object
pueden ser utilizados con arrays.
Se crean con el operador new seguido del
tipo y nmero de elementos.
80
ARRAYS
Se puede acceder al nmero de elementos
de un array con la variable miembro
implcita length. Ejm: vect . Length
Se accesa a los elementos con los corchetes
y un ndice que varia de 0 a length-1.
Se puede crear array de objetos de
cualquier tipo. En principio un array de
objetos es un array de referencias que hay
que completar llamando al operador new.
81
ARRAYS
Los elementos de un array se inicializan al
valor por defecto del tipo correspondiente.
Cero para valores numricos cadena vaca
para string, false para booleano y null para
referencias.
Como todos los objetos, los arrays se pasan
como argumentos a los mtodos por
referencia.
82
ARRAYS
Se pueden inicializar con los valores entre
llaves, separados por comas.
Tambin los arrays de objetos se pueden
inicializar con varias llamadas a new
dentro de unas llaves.
Si se igualan dos referencias a un array no
se copia el array, sino que se tiene un array
con dos nombres, apuntando al mismo
objeto.
83
ARRAYS
Es posible dos formas para crear una
referencia a un array:
double[ ] x; //preferible
double x [ ];
Creacin del array con el operador new
x = new double [100];
La referencia y la creacin se pueden juntar
double[ ] x = new double [100];
84
EJ EMPLOS DE CREACI ON
DE ARRAYS
Crear un array de 10 enteros que se
inicializan en cero.
int v[ ] = new int[10];
Crear un array inicializando con valores:
int v[ ] = (0,1,2,3,4,5,6,7,8,9);
string dias[ ] =
(lunes,martes,miercoles,jueves);
85
EJ EMPLOS DE CREACI ON
DE ARRAYS
Array de 5 objetos
MiClase listaObj[ ] = new MiClase [5]
for (i=0; i<5; i++)
listaObj[i] = new MiClase (....);
86
ARRAYS
BI DI MENCI ONALES
Se crean de un modo muy similar al de
C++
Puede crearse directamente de la forma:
int [ ] [ ] mat = new int [3] [4];
Tambin se puede crear con los sgtes pasos
int [ ] [ ] mat;
mat = new int(nfilas)[ ];
for (i=0; i<nfilas; i++)
mat [i] = new int(ncols);
87
EJ EMPLO DE ARRAYS
BI DI MENCI ONALES
Crear una matriz de 3 * 3 inicializada en 0:
double mat [ ] [ ] = new double [3][3]
Matriz con carga de valores:
int [ ] [ ] b = ((1,2,3),
(4,5,6),
(7,8,9));
int c=new[3][] //array de referencia a array
c[0]=new int[5]; c[1]=new in[4];
88
CLASES STRI NG Y
STRI NGBUFFER
Estn orientadas a manejar cadenas de
caracteres constantes (que no pueden
cambiar), o que el programador ingrese la
cadena de caracteres.
Ambas clases pertenecen al package
java.lang y por lo tanto no hay que
importarlas.
Los mtodos de string se pueden utilizar
directamente sobre literales como por
ejemplo hola.length;
89
METODOS DE LA CLASE
STRI NG
Los objetos de la clase string se pueden
crear a partir de cadenas de caracteres
definidas entre , como por ejemplo
hola.java.
La forma de crear objetos de la clase es la
siguiente:
String str1 = HOLA
String str2 = new String (HOLA);
90
METODOS DE LA CLASE
STRI NG
El mtodo charAt(int) devuelve el carcter
en la posicin especificada.
El mtodo getChars(int,int, char[ ], int )
copia los caracteres indicados en la
posicin indicada de un array de
caracteres.
indexOf (String,[int]) devuelve la posicin
en la que aparece por primera vez un string
en otro string , a partir de una posicin
dada.
91
METODOS DE LA CLASE
STRI NG
lastI ndexOff(strig,[int]) devuelve la ltima
vez un string aparece en otro empezando en
una posicin y hacia el principio.
lenght( ) devuelve el nmero de caracteres.
replace(char,char) sustituye un carcter
por otro en un string.
startsWith(string) indica si un string
comienza con otro string o no.
92
METODOS DE LA CLASE
STRI NG
substring(int,int) devuelve un string
extrado de otro.
toLowerCase( ) convierte en minsculas.
toUpperCase( ) convierte en maysculas.
trim( ) elimina los espacios en blanco.
valueOf( ) devuelve la representacin como
string de sus argumentos.
93
METODOS DE LA CLASE
STRI NGBUFFER
La clase stringBuffer se usa siempre que se
desea modificar una cadena de caracteres.
Hay muchos mtodos cuyos argumentos
deben ser objetos string , que antes de
pasar esos argumentos se debe realizar la
conversin.
stringBuffer( ), stringBuffer(int),
stringBuffer(string) son constructores.
94
METODOS DE LA CLASE
STRI NGBUFFER
capacity( ) devuelve le espacio libre del
stringBuffer.
charAt(int) devuelve el carcter en la
posicin especificada.
getChars(int,int,char[ ] int) copia los
caracteres indicados en la posicin
indicada de un array de caracteres.
insert(in, ) inserta un string o un valor en la
posicin especificada
95
METODOS DE LA CLASE
STRI NGBUFFER
length( ) devuelve le nmero de caracteres
de una cadena.
reverse( ) cambia el orden de los
caracteres.
setCharAt(int,car) cambia el carcter en la
posicin indicada.
setLenght( int ) cambia el tamao de un
stringBuffer.
toString( ) convierte en objeto de tipo string
96
WRAPPERS
Son clases diseadas para ser un
complemento de los tipos primitivos.
Los tipos primitivos se pasan como
argumento a los mtodos por valor(ya que
no son objetos), mientras que los objetos se
pasan por referencia.
No hay forma de modificar en un mtodo un
argumento de tipo primitivo y que esa
modificacin se trasmita al entorno que
hizo la llamada.
97
WRAPPERS
La forma de lograrlo es usando un wrapper
Es un objeto cuya variable miembro es el
tipo primitivo que se quiere modificar.
Existe una clase wrapper para cada uno de
los tipos primitivos numricos, esto es,
existen las clases Byte, Short, Integer, Long,
Float y Double.
Observe que los nombres empiezan con
mayscula siguiendo la nomenclatura del
Java.
98
CLASE DOUBLE
La clase java . lang . Double deriva de
Number, que a su vez deriva de Object.
Esta clase contiene un valor primitivo de
tipo double.
Los mtodos Double(double) y
Double(String) son los constructores de
esta clase.
doubleValue( ), floatValue( ), intValue( ),
shortValue( ) y byteValue( ) son los mtodos
para obtener el valor del tipo primitivo.
99
CLASE DOUBLE
String tostring( ), Double valueOf(String)
son los conversores con la clase string.
equals(Object) sirve para comparar con
otro objeto.
MAX_DOUBLE, MIN_DOUBLE,
POSITIVE_INFINITY,
NEGATIVE_INFINITY, TYPE son
constantes predefinidas.
100
CLASE I NTEGER
La clase java.lang.Integer tiene como
variable miembro un valor del tipo int. Sus
mtodos son los siguientes:
Integer(int), Integer(String) son los
constructores de la clase.
doubleValue( ), floatValue( ), longValue( ),
intValue( ), shortValue( ), y byteValue( )
son los conversores con otros tipos
primitivos.
101
CLASE I NTEGER
Integer decode(String), Integer parseInt
(String), String toString( ), Integer
ValueOf(String) son conversores con string.
MAX_VALUE, MIN_VALUE, TYPE son
constantes predefinidas.
Los Wrappers Byte, Short y Long son
similares a Integer
Los Wrappers son utilizados para convertir
cadenas de caracteres (texto) en nmeros.
102
CLASE I NTEGER
Los ejemplos siguientes muestran algunas
conversiones:
String numDecimalString = 8.976;
float numFloat =
Float.valueOf(numDecimalString).floatValu
e( );
double numDouble =
Double.valueOf(numDecimalString).double
Value( );
103
CLASE I NTEGER
String numIntString = 1001;
int numInt=
Integer.valueOf(numIntString).intValue( );
En el caso de que el texto no se pueda
convertir directamente al tipo especificado
se lanza una excepcin de tipo
NumberFormatException, por ejemplo si se
intenta convertir directamente el texto
4.897 en un entero.
104
CLASE MATH
Java.lang.Math deriva de Object.
Proporciona mtodos static para realizar
las operaciones matemticas ms
habituales.
Proporciona adems las constantes E y PI.
Sus mtodos son los siguientes:
abs( ), acos( ), sin( ), tan( ), asin( ), exp(),
atan( ), max( ), min( ), ramdom( ), round( ),
power( , ) (devuelve el primer argumento
elevado al segundo)
105
CLASE MATH
rint(double) devuelve el entero mas
prximo.
sqrt( ) devuelve la raz cuadrada.
IEEEremainder(double,double) calcula el
resto.
toDegrees(double) pasa de radianes a
grados.
toRadians( ) pasa de grados a radianes.
106
CLASE VECTOR
Representa un array de objetos que puede
crecer y reducir, segn el nmero de
elementos.
Permite acceder a los elementos con un
ndice,aunque no permite el uso de
corchetes.
El mtodo capacity( ) devuelve le tamao
del vector.
107
CLASE VECTOR
El mtodo size( ) devuelve le nmero de
elementos que realmente contiene, mientras
que capacityIncrement es una variable que
indica el salto que se dar en el tamao
cuando se necesite crecer.
El mtodo elementCount devuelve le
nmero de componentes vlidos del vector.
108
METODOS DE LA CLASE
VECTOR
Vector( ), Vector(int), Vector(int,int) son
constructores que crean un vector vaco,
uno de la capacidad indicada y un vector de
la capacidad e incremento indicados.
109
El ABSTRACT WI NDOWS
TOOLKI N (AWT)
Se encarga de construir interfaces grficas.
Se utiliza en la creacin de eventos.
Para construir una interface grfica se
requiere lo siguiente;
Un contenedor o container, que es la
ventana donde se situarn los
componentes (botones, barras de
desplazamientos, etc)
110
El ABSTRACT WI NDOWS
TOOLKI N (AWT)
Los componentes: mens, botones de
comandos, barras de desplazamiento,
cajas y reas de texto, botones de opcin
y seleccin, etc.
El modelo de eventos. El usuario
controla la aplicacin actuando sobre los
componentes con el ratn o con el
teclado. Cada vez que el usuario realice
una determinada accin se produce un
evento.
111
El ABSTRACT WI NDOWS
TOOLKI N (AWT)
El AWT crea un objeto de una determinada
clase de evento, derivada de AWTEvent. Este
evento es transmitido a un determinado mtodo
para que lo gestione.
112
OBJ ETOS EVENT SOURCE Y
EVENT LI STENER
El modelo de eventos en Java est basado
en que los objetos sobre los que se
producen los eventos (event source)
registran los objetos que habrn de
gestionarlos (event listener), para lo cual
los event listeners habrn de disponer de
los mtodos adecuados.
Estos mtodos se llamarn
automticamente cuando se produzca el
evento.
113
OBJ ETOS EVENT SOURCE Y
EVENT LI STENER
La forma de garantizar que los event
listeners disponen de los mtodos
apropiados para gestionar los eventos es
obligarles a implementar una determinada
interface listener.

También podría gustarte