Capitulo 1, parte 4
viene de: parte 3
Constructor:
* Nunca devuelven tipo
* Mismo nombre que la clase
* Modificadores: public o private
(Luego lo veremos mas en detalle)
Declaracion de variable:
Variables tipo primitivas: 8 tipos, de las cuales seis son numéricas
Variables tipo Referencias: Objects y todo lo que heredan de este (o sea, todos)
Rangos:
Type | Bits | Bytes | Minimum | Maximum |
byte | 8 | 1 | -128 | 127 |
short | 16 | 2 | -32768 | 32767 |
int | 32 | 4 | -2147483648 | 2147483647 |
long | 64 | 8 | -263 | 263 -1 |
float | 32 | 4 | n/a | n/a |
double | 64 | 8 | n/a | n/a |
Variable Argument Lists (var-args) (lista de argumentos variables):
Con esta implementacion, a partir de java 5, se puede enviar por medio de un argumento un numero indeterminado de objetos del mismo tipo.
Reglas:
* Tiene que ser de un tipo o primitiva
* Se utiliza tres puntos seguido en la declaración "..."
* Puede haber otros parámetros en los argumentos del metodo
* Solo un parámetro de este tipo
* Tiene que ser el ultimo parámetro
Ejemplo:
abstract void pepe2(int a, String... b);
(Luego lo veremos mejor)
Variables de instancia:
Son las variables de la clase, también son conocidas como "field", "attribute" y "properties".
* Se puede usar cualquier modificador de acceso
* Solo pueden utilizar un modificador de no-acceso: final, transient, static
* No se pueden utilizar modificadores de no-acceso: abstract, syncronized, strictfp, native
Variables locales:
Son aquellas que se declaran dentro de algún método, no se puede utilizar la mayoría de los modificadores, solo final.
Estas variables no se almacena en la memoria heap, solo en el stack (hasta que termine el bloque donde se declaró)
Modificadores posibles:
Local Variables | Variables (non-local) | Methods |
final | final public protected private static transient volatile | final public protected private static abstract syncronized strictfp native |
Tecnicas:
shadowing: utiliza el mismo nombre una variable local que una de instancia, y se utiliza solamente en ese mismo metodo,
ejemplo:
class testServer{
int count = 9;
public void login(){
int count = 10;
system.out.println("count "+ count);
}
}
this: para referirse a una variable de instancia o local y no de argumento, se "debe" utilizar la palabra this, que también le da mejor legibilidad al código,
ejemplo:
class testServer{
int a;
public void setA(int a){
this.a = a;
system.out.println("a: "+ a);
}
}
Array:
Coleccion de objetos del mismo tipo "empaquetados" en una variable y con un indice
Thread[] thread; //valido
Thread thread[]; //valido pero feo
thread = new Thread[3]; // prepara espacio ("alloca") para 3 elementos
thread[1] = new Thread(); // para crear las instancias
Thread[] thread2 = {new Thread(),new Thread()}; //valido 2 elementos nuevos, crea el array y las instancias
Thread[] thread3 = new Thread[]{new Thread(),new Thread()}; //valido, pero no se suele usar
pueden tener mas de una dimencion, o sea arrays de arrays
String[][] variosNombres;
* No se puede "allocar" memoria anticipadamente, esto no ese puede hacer: Thread[3] threads;
NOTA: De todas maneras se recomienda utilizar clases del tipo Collection, que luego veremos en detalle.
continua en: parte 5
No hay comentarios:
Publicar un comentario