elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:47  


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  codigo java no tira
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: codigo java no tira  (Leído 463 veces)
Pirat3net

Desconectado Desconectado

Mensajes: 173


Ver Perfil
codigo java no tira
« en: 6 Diciembre 2011, 07:36 »

en este codigo , Jugador es una clase que e creado y su constructor espera un String llamado nombre, tanto Jugador como nombre son publicos,
el error que me dice eclipse es en la ultima linea y me dice que jugador1 no se reconoce como una variable.
el objetivo del codigo es crear objetos de la clase jugador dependiendo de la variable jugadores introducida en el bucle for y que viene especificada mas arriba del codigo,

Código
for (int k = 0; k < jugadores; k++) {
System.out.println("introduzca el nombre del jugador "+(k+1));
 
if (k == 0) {
Jugador jugador1 = new Jugador(lectura.readLine());
}
 
 
if (k == 1) {
Jugador jugador2 = new Jugador(lectura.readLine());
}
 
if (k == 2) {
Jugador jugador3 = new Jugador(lectura.readLine());
}
 
if (k == 3) {
Jugador jugador4 = new Jugador(lectura.readLine());
}
 
if (k == 4) {
Jugador jugador5 = new Jugador(lectura.readLine());
}
 
if (k == 5) {
Jugador jugador6 = new Jugador(lectura.readLine());
}
}
System.out.println(jugador1.nombre);


En línea
Proteus1989

Desconectado Desconectado

Mensajes: 143



Ver Perfil WWW
Re: codigo java no tira
« Respuesta #1 en: 6 Diciembre 2011, 13:53 »

No te deja que te crees un objeto dentro de una sentencia if y luego lo uses fuera del if. ¿Por qué? Porque si no entra al if no existe la declaración del objeto, y por tanto no se puede llamar.

Solución?

Código:
Jugador jugador1 = null;
Jugador jugador2 = null;
Jugador jugador3 = null;
Jugador jugador4 = null;

for (int k = 0; k < jugadores; k++) {
System.out.println("introduzca el nombre del jugador "+(k+1));


if (k == 0) {
jugador1 = new Jugador(lectura.readLine());
}


En línea
KaL3o

Desconectado Desconectado

Mensajes: 32



Ver Perfil
Re: codigo java no tira
« Respuesta #2 en: 6 Diciembre 2011, 23:26 »

Eso ocurre porque no existe el objeto cuando estas utilizando el System.out.println

En java el objeto, digamos "vive" dentro del ambito en que ha sido creado, cuando el ambito termina el objeto se destruye. Osea el objeto no es persistente.

Me explico un poco mejor :D

si tienes un for y declaras el objeto dentro del ciclo, entonces el objeto solo existira mientras el ciclo exista, terminado el ciclo el objeto muere.

Lo mismo ocurre si instancias un objeto dentro de un if, el objeto existe mientras el if este activo, terminado el if el objeto "muere".

Por eso en tu codigo cuando llamas a imprimir por consola, seguramente te dira que tu objeto no existe.

Salu2 ;)

pd: mirando tu codigo no estara de mas decir que los atributos de una clase generalmente se declaran privados por el encapsulamiento y ocultamiento de la informacion del paradigma de orientacion a objetos. Para lo cual se crean los metodos para poder acceder a los atributos de la clase.
En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
codigo java
Desarrollo Web
DiaBoLiK 3 492 Último mensaje 20 Febrero 2004, 18:51
por DiaBoLiK
Compresor codigo java
Java
Necro369 2 3,263 Último mensaje 16 Octubre 2007, 17:58
por Necro369
mejorar codigo java
Java
sapito169 5 3,030 Último mensaje 18 Diciembre 2008, 05:37
por sapito169
Saltarme código Java de una web
Hacking Básico
maloevil 1 621 Último mensaje 13 Marzo 2009, 23:21
por TRICKY
Ayuda con codigo de java
Java
pakosamuel 5 1,262 Último mensaje 5 Junio 2010, 21:35
por Leyer
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines