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

JAVA ++

Ing. Jorge Butler B.

INTRODUCCION
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.

INTRODUCCION
Un package es una agrupacin de clases que
tienen una finalidad relacionada.
Existe una jerarqua de packages que se
refleja en 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.

CONCEPTO DE CLASE Y
HERENCIA
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

CLASE Y HERENCIA
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.

CLASE Y HERENCIA
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 HERENCIA permite que se pueda definir
nuevas clases basadas en clases existentes.
Una derivada de otra (extends) hereda todas
sus variables y mtodos.

CLASE Y HERENCIA
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

EJEMPLO DE
INSTRUCCIONES
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.

EJEMPLO .....
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.
9

EJEMPLO......
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);
10

EJEMPLO....
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.

11

EJEMPLO.....
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.

12

EJEMPLO....
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.

13

EJEMPLO....
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.

14

EJEMPLO...
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.

15

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.

16

NOMENCLATURA

Los nombres de objetos, los nombres de


mtodos y variables miembro, el de las
variables locales comienzan siempre con
minscula.

17

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

18

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.

19

VARIABLES
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.

20

VARIABLES

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.
21

NOMBRE DE VARIABLES
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 variables sencillas que contienen
los tipos de informacin mas habituales tales
como valores boleanos, caracteres y de
valores numricos enteros o flotantes.

22

TIPOS PRIMITIVOS DE
VARIABLES
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)

23

CARACTERISTICAS DE LOS
TIPOS PRIMITIVOS
El tipo boolean no es un valor numrico (01) 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.

24

DEFINICION E
INICIALIZACION DE
VARIABLES
define especificando el tipo
y el nombre.

Se
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)

25

DEFINICION E
INICIALIZACION DE
VARIABLES
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.
26

EJEMPLO DE
DECLARACION E
INICIALIZACION

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.

27

EJEMPLO DE
DECLARACION E
INICIALIZACION

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.

28

EJEMPLO DE
DECLARACION E
INICIALIZACION

lista[0] = unaRef;

lista [1] = new MyClass;

En el ejemplo las referencias unaRef,


segundaRef y lista[0] actuarn sobre el
mismo objeto.

29

AMBITO DE UNA
VARIABLE
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.

30

AMBITO DE UNA VARIABLE


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.

31

AMBITO DE UNA VARIABLE


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.

32

AMBITO DE UNA VARIABLE

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.
33

AMBITO DE UNA VARIABLE


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.

34

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

35

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 --.

36

OPERADORES
Existen los siguiente operadores relacionales:
<, >, >=, <=, ==, !=.
Existen los sgtes. Operadores lgicos:
&&, | | , ! , & , |
Si se considera solamente un & o | la
evaluacin del segundo operando se realiza
ahunque la evaluacin del primer operando
de respuesta negativa.

37

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.

38

SENTENCIA IF
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.

39

SENTENCIA IF
if (expresin booleana)
{ ...........................
sentencias;
}
else
{ .........................
sentencias;
}
40

EJEMPLO DE SENTENCIA
IF
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);
41

SENTENCIA SWITCH

Es una alternativa al if para mas de dos


salidas.
switch (expresion)
{ case value1: sentencia; break;
case
value2: sentencia; break;
case
value3: sentencia; break;
default: sentencia;
}
42

SENTENCIA SWITCH
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.

43

SENTENCIA SWITCH
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;
}
44

BUCLE WHILE

El conjunto de sentencias se ejecuta mientras la


condicin sea true.
while (condicion)
{ sentencia;
}
while (x>10)
{ P = Q+8;
x= x-1;
}
45

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

46

BUCLE DO WHILE

Es similar al bucle while pero con la


particularidad de que el control est al
final del bucle..
do
{ sentencia;
................
} while (condicin)
47

SENTENCIA BREAK Y
CONTINUE CON ETIQUETAS
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

48

EJEMPLO 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
49

CLASES EN JAVA
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.

50

CLASES EN JAVA
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.

51

CLASES EN JAVA
[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.
52

CLASES EN JAVA
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.

53

CLASES EN JAVA
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.

54

CLASES EN JAVA
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

55

VARIABLES MIEMBRO DE
OBJETO
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.

56

VARIABLES MIEMBRO DE
OBJETO
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

57

VARIABLES MIEMBRO DE
OBJETO

Las variables miembro pueden ir


precedidas en su declaracin por uno de los
modificadores de acceso: public, private,
protected, package.

58

VARIABLES MIEMBRO 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+
+.

59

VARIABLES MIEMBRO 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.

60

VARIABLES DE TIPO FINAL


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.

61

METODOS DE OBJETOS
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;

62

METODOS DE OBJETOS
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..

63

METODOS DE OBJETOS
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.

64

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.

65

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.

66

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)

67

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.

68

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.

69

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

70

INICIALIZADORES STATIC
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.

71

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.

72

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.

73

LA CLASE OBJECT
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.

74

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.

75

INTERFACES
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

76

INTERFACES
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.

77

INTERFACES
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.

78

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.

79

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.

80

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.

81

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.

82

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];

83

EJEMPLOS DE CREACION
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);

84

EJEMPLOS DE CREACION
DE ARRAYS

Array de 5 objetos
MiClase listaObj[ ] = new MiClase [5]
for (i=0; i<5; i++)
listaObj[i] = new MiClase (....);

85

ARRAYS
BIDIMENCIONALES
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);

86

EJEMPLO DE ARRAYS
BIDIMENCIONALES
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];

87

CLASES STRING Y
STRINGBUFFER
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;

88

METODOS DE LA CLASE
STRING
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);

89

METODOS DE LA CLASE
STRING
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.

90

METODOS DE LA CLASE
STRING
lastIndexOff(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.

91

METODOS DE LA CLASE
STRING
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.

92

METODOS DE LA CLASE
STRINGBUFFER
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.

93

METODOS DE LA CLASE
STRINGBUFFER
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

94

METODOS DE LA CLASE
STRINGBUFFER
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

95

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.

96

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.

97

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.

98

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.

99

CLASE INTEGER
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.

100

CLASE INTEGER
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.

101

CLASE INTEGER

Los ejemplos siguientes muestran algunas


conversiones:
String numDecimalString = 8.976;
float numFloat =
Float.valueOf(numDecimalString).floatValue( )
;
double numDouble =
Double.valueOf(numDecimalString).doubleVal
ue( );
102

CLASE INTEGER
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.
103

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)

104

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.

105

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.

106

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.

107

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.

108

El ABSTRACT WINDOWS
TOOLKIN (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)

109

El ABSTRACT WINDOWS
TOOLKIN (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.
110

El ABSTRACT WINDOWS
TOOLKIN (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.

111

OBJETOS EVENT SOURCE Y


EVENT LISTENER
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.

112

OBJETOS EVENT SOURCE Y


EVENT LISTENER

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.

113

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