El post que buscas se encuentra eliminado, pero este también te puede interesar

Java: resumenes de conceptos basicos III

Anuncios

ARRAYS Y CADENAS

Sirve para juntar y manejar multiples valores. El array es objeto matriz. Tambien se pueden manejar multiples caracteres utilizando el objeto swing (cadena)

ARRAYS

Como todas las variables hay que declararla antes de poder usarla. La declaracion se basa en dos componentes primerario: el tipo de Array y nombre. (tipo de dato que va a contener) no puede existir un array de tipo de datos genérico en el que el tipo de sus elementos este indefinido cuando se declara el array.

Declaracion de un array de enteros:

int[] arrayDeEnteros;

la parte int[] indica que arrayDeEnteros es una array de neteros.la declaracion no asigna memoreia para contener los elementos.

Si el compilador tira este error:

Testing.java:64 Variable arraydeenteros may not have been initialized

Significa que no asignaste memoria.

Para asignar memoria a los elementos de una array, hay que ejemplarizarlo primero. Se puede ejemplarizar usando el operador new de Java (para crear un array los pasos son los mismos que para crear un objeto de una clase: declaración, ejemplarización e inicialización)

Esta sentencia asigna la sufucuente memoria para que arrayDeEnteros pueda contener diez enteros.


Int [] arrayDeEnteros= new int []


En general para crear un array se usa el operador ‘new’ mas el tipo de dato de los elementos del array, mas el número de elementos que queres entre corchetes cuadrados.

O sea

TipodeElemento [] NombredeArray= new TipodeElementos )[tamañoArray]

Ahora que ya asignaron las memorias ya se puede asignar valor a los elementos y recuperar esos valores:

For (int = 0; <arrayDeEnteros.lenghh; j ++) {
arrayedEnteros=j;


System.out.println(“=” + arrayDeEnteros );

Para referirse a un elemento de un array, se añade corchetes cuadrados al nombre del array. Entre los corchetes cuadrados se indica (con una variable o con una expresión) el indice del elemento al que se quiere acceder. En Java el indice del array empieza en 0 y termina en la longitud del array menos uno.

El bucle ‘for’ itera sobre cada elemento de arrayDeEnteros dandole valores e imprimiendo esos valores. Length se usa para obtener el tamaño real del array. Length es una propiedad que se les da a todos los arrays de Java.

Loa arrays pueden contener cualquier tipo de dato legal en Java incluyendo lso tipos de referencia como son los objetos u otro array. Por ejemplo, pueden contener diez objetos String

String[]arrayDeStrings=new String ;

Para los string s hay que agregar memoria sino no los va a leer


For )int = 0 ; i<arrayStrings.length;i ++) {
arraydeStrings = new String )”Hello” + I;
}


STRINGS

Una secuencia de datos del tipo carácter que se lmam string (cadena) y en Java esta implementada por la clase String (miembro del paquete java.lang)

String [] args;

Esto declara explícitamente un array, llamado args, que tiene objetos del tipo String. Los corchetes vacios indican que la longitud del array no se conoce en el momento de compilación, porque el array se pasa en el momento de la ejecución.

El segundo uso de String es el uso de cademas literales (una cadena de caracteres entre comillas “y”):

“Hola mundo!”

El compilador asigna implícitamente espacio para un objeto String cuando encuentra una cadena literal.

Los objetos String son immutables o sea no se pueden modificar una ve creadors.java tien StringBuffer que se puede usar para creae y manipular caracteres de vuelo.

CONCATENACION DE CADENAS

Java permite concatena cadenas de una manera facil usando el operador +. Esto concatena tre cadenas para producir su salida:

“la entrada tiene”+ contador+ ”caracteres.”

Dos de las cadenas concatenadas son cadenas literales: “la entrada tiene” y “caracteres”. La tercera cadena-la del medio- es en realidad un entero que primero se convierte a cadena y luego se concatena con las otras.

CREAR OBJETOS

Se creación mediente la creación de un objeto de una clase, o sea ejemplarizando una clase.

Ejemplo de creación con (dentro de una clase ya creada).

Date hoy = nre Date ();

Esta sentencia crea el objeto Date (que a su ves es una clase del paquete java, util). Date hoy es una declaración de variable que solo le dice al compilador que el nombre hoy se va a usar para referirse a un objeto cuyo tipo es Date, el operador new ejemplariza la clase Date (creando un nuevo objeto Date) y Date () inicializa el objeto.

DECLARAR UN OBJETO

Como no necesitasn declara un objeto para crearlo, casi siempre las declaraciones aparecen en la misma linea de creación del objeto. Como cualquier otra declaracion de variable, aparecen solas

Date hoy;

Declarar una variable para contener un objeto es exactamente lo mismo que declarar una variable que va a contener un tipo primitivo:

tipo nombre

donde tipo es el tipo de dato del objeto y nombre es el nombre que va a usar el objeto. En Java las clases e interfaces son como tipos de datos. Entonces topo puede ser el nombre de una clase o interface.

Las declaraciones le avisan al compilador que se va a usar tan nombre para referirse a una variable cuyo tipo es tipo. Las declaraciones no crean nuevos objetos. Date hoy no crea un objeto Date, solo crea un nombre de variable para contener el objeto Date. Para jemeplarizar se puede usar el operador new.


EJEMPLARIZAR UNA CLASE


El operador new ejemplariza una clase mediante la asignación de memoria para el objeto nuevo de ese tipo. El operador new necesita un solo argumento: una llamada al método constructor. Los métodos constructores son especiales proporcionados por cada clase java que son responsables de la inicialización de los nuevos objetos de ese tipo. new crea el objeto, el constructor lo inicializa.

Así se usa al operador new para crear un objeto Rectangle (que es una clase del paquete java.awt)

New Rectangle (0, 0, 100, 200);

En el ejemplo Rectangle (0, 0, 100, 200) es una llamada al constructor de la clase Rectangle.

El operador new devuelve una referencia al objeto recién creado. Esta referencia puede ser asignada a una variable del tipo apropiado.

Rectangle rect = new Rectangle (0, 0, 100, 200)

(recordar que una clase esencialmente define un tipo de dato de referencia por eso Rectangle se puede usar como un tipo de dato en los programas Java. El valor de cualquier variable cuyo tipo sea un tipo de referencia, es una referencia (puntero) al valor real o conjunto de valores representado por la variable.

INICIALIZAR UN OBJETO

Cuando veas la implementacion de una clase, vas a reconocer los constructores porque tieenn el mismo nombre de la clase y no tienen tipo de retorno.

Date ()

Un constructor no tiene ningun argumento, es conocido como construtor por defecto. La mayoria de las las clases tienen un constructor por defecto.

Si una clase tiene varios constructores, todos tienen el mismo nombre pero se diferencian en el número o el tipo de sus argumentos. Cada constructor inicializa al objeto de una manera distinta. Junto al constructor por defecto, la clase Date da otro constructor que inicializa el nuevo objeto con un nuevo año, mes y dia:

Date cumpleaños= new Date (1963,8,30)

El compilador puede diferenciar los diferentes constructores a traves del tipo y del número de sus argumentos.

UTILIZAR OBJETOS


Ponele que queres hacer algo simple como después de crear un rectangulo, moverlo. (o sea, el rectangulo es un objeto en un progrma de dibujo y queres moverlo)

La clase Rectangle da dos formas para lo mismo de moverlo:

1) manipular directamente las variables x e y del objeto.

2) llamar al método move().

La opcion 2 es mas “orientada a objetos” y mas segura. Manejar las variables directamente da lugar a errores, podrias colocar el objeto en un estado de inconsistencia. Igualmente una clase no podría (y no debería hacer que sus variables estubieran disponibles para la manipulación directa por estado de inconsistencia. Java da un mecanismo mediante el cual las clases se pueden restringir o permiti el acceso a sus variables y métodos a otros objetos de otros tipos.

Las variables x e y de Rectangle son accesibles desde otras clases. Por eso podemos asumir que la manipulación directa de estas variables es segura.

REFERENCIAR VARIABLES DE UN OBJETO

Primero hay que inspeccionar y modificar la posición del rectangulo mediante la manipulación directa de las variables x e y. aca muestra como mover el rectangulo llamando método move().

Para acceder a las variables de un objero, solo hay que agregar el nombre de la variable al del objeto referenciado poniendo un punto en el medio (‘.’)

Objetoreferenciado.variable

Ponele que tenesun rectangulo que se llama rect en tu programa. Podes acceder a las variables x ry con rect.x y rect.y, respectivamente.
Ahora podes usar ese nombre en las sentencias y expresiones Java como si fueran nombres de variabnles ‘normales’. Asi, para move rel rectangulo podes escribir:

rect.x=15; // cambia la posición x
rect.y=37; // cambia la posición y


la clase Rectangle tiene dos variables mas –widthy height—que son accesibles para objetos fuera de Rectangle. Se puede usar la misma notacion rect.width y rect.height. Asi calculas el area del rectandgulo utilizando esta sentencia:

area=rect.height*rect.width;

la primera parte del nombre de una variable de un objeto (el objetoReferenciado en objetoReferenciado.variable) tiene que se una referncia a un objeto. Como se puede usar un nombre de variable aca, tambien se puede usar en cualquier expresion que devuelva una referencia a un objeto. El operador new devuelve una referencia a un objeto. Por eso, se puede usar el valor devulto por nre para acceder a las variables del nuevo objeto:

height = new Rectangle ().height;


LLAMAR A METODOS DE UN OBJETO


Es parecido a obtener una variable del objeto. Simplemente se agrega al nombre del objeto referenciado el nombre del metodo, separado por un punto (‘.’) y se dan los argumentos del metodo entre paréntesis. Si no necesita argumentos, se usan os prentesis vacios.

objetoReferenciado.nombredelMetodo (listaArgumentos);
o
objetoreferenciado.nombreMetodo ();

Que significa esto en terminos de movimiento del rectangulo:

Usando el metodo move ()

rect.move (15,37);


Las llamadas a metodos tambien se llaman mensajes.

Una llamada a un metodo es una expresion y evalua algun valor. El valor es su valor de retorno, si tiene alguno. Casi siempre se va a asignar el valor de retorno de un metodo a una variable o se va a usar la llmada al metodo dentro del ambito de otra expresion o sentencia.

El metodo move() no devuelve valor (esta declarado como void), pero el metodo incide() de Rectangle si. Este metodo toma las coordenadas x e y y devuelve true si este punto esta dentro del rectangulo. Se puede usar incide() para hacer algo especial en algun punto, como decir la posición del Mouse cuando esta dentro del rectangulo:

If (rect.inside)(Mouse.x, Mouse.y)) {
// mouse dentro del rectangulo

}else{

// mouse fuera dle rectangulo

}


Recorder que una llamada a un metodo es un mensaje al objeto nombrado. En este caso, el objeto nombrado es rect. Entonces:

Rect.inside (mouse.x, mouse.y)

Le pregunta a rect si la posicion del cursor del mouse esta entre las coordenadas Mouse.x y Mouse.y. Se podria obtener una respuesta diferente si envia el mismo mensaje a cubo.

El objetoReferenciado en la llamada al metodo objetoReferenciado.método() tiene que ser una referencia a una objeto. Como se puede usar el nombre aca, tambien se puede en cualquier expresion que devuelva una referencia a un objeto. Otra vez new devuelve una referencia a un objeto. Por eso, se puede usar el valor devuelto por new para acceder a las variables del nuevo objeto:

New Rectangle (0,0,100,50).equals (anotherRect)

La expresion new Rectangle (0,0,100,50) avalua a una referencia a un objeto que se refiere a un objeto Rectangle. Entonces, se puede usar la notacion de punto (‘.’) para llamar al metodo equals () igual al especificado en la lista de argumentos equals().


Despues la sigo, gracias por pasar

Anuncios

4 comentarios - Java: resumenes de conceptos basicos III

@Will86
sos un idolo !!!!!!!!!!!!!!!!!!

yo estoy viendo netbeans y no entiendo un choto
@DobleCero7
Grande Silvina!!! Se viene el episodio 3!!!

No comento nada mas para no repetir el bolonki de la parte 1