un int solo puede tomar valores enteros de hasta 32 bits.
Si tu objeto sólo tiene una variable estática entera, sí, puedes transformarlo:
Código Java:
Ver originalpublic class Poligono {
private final int num_lados;
public Poligono(int num_lados){
this.num_lados = num_lados;
}
public int getNumLados(){
return this.num_lados;
}
}
Código Java:
Ver original[...]
public void run(){
Poligono obj_cuadrado = new Poligono(4);
int prim_cuadrado = obj_cuadrado.getNumLados();
}
[...]
Supongamos que la variable del objeto no fuera un int y lo quisieras pasar a int.
LONG A INT: Aquí tendrías que hacer un CAST (mutilación ya que LONG es de 64bits e INT es de 32):
Código Java:
Ver originalint prim_cuadrado = (int) obj_cuadrado.getNumLados();
BYTE O SHORT A INT: Como byte y short son ambos SIGNED (como INT) y son de menor longitud que INT (8 y 16 respectivamente), simplemente se establece el numero en los bits más a la derecha y se extiende el signo en el resto de bits. Puedes hacerla de forma normal.
CHAR A INT: Ésta es algo más complicada de entender. Char es UNSIGNED pero Int es SIGNED. Java establece los números en complemento a 2. El primer numero indica el signo.
Pero, si no tiene signo y el CHAR fuera 255 (11111111), extendería ese 1 situando el valor a (2^16)-1? No, en este caso Java es inteligente y simplemente lo rellena de ceros.
Puedes hacerla tambien de forma normal.