elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  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 2,179 veces)
Pirat3net

Desconectado Desconectado

Mensajes: 270


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

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
  1. for (int k = 0; k < jugadores; k++) {
  2. System.out.println("introduzca el nombre del jugador "+(k+1));
  3.  
  4. if (k == 0) {
  5. Jugador jugador1 = new Jugador(lectura.readLine());
  6. }
  7.  
  8.  
  9. if (k == 1) {
  10. Jugador jugador2 = new Jugador(lectura.readLine());
  11. }
  12.  
  13. if (k == 2) {
  14. Jugador jugador3 = new Jugador(lectura.readLine());
  15. }
  16.  
  17. if (k == 3) {
  18. Jugador jugador4 = new Jugador(lectura.readLine());
  19. }
  20.  
  21. if (k == 4) {
  22. Jugador jugador5 = new Jugador(lectura.readLine());
  23. }
  24.  
  25. if (k == 5) {
  26. Jugador jugador6 = new Jugador(lectura.readLine());
  27. }
  28. }
  29. System.out.println(jugador1.nombre);


En línea

Proteus1989

Desconectado Desconectado

Mensajes: 184



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

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: 60



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

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
Confusión con un codigo java
Java
mbc 1 2,681 Último mensaje 8 Marzo 2005, 10:09 am
por - xXx -
Generador de codigo jsp con Java
Java
arcannum_arcandrum 0 3,867 Último mensaje 29 Abril 2005, 01:50 am
por arcannum_arcandrum
Compresor codigo java
Java
Necro369 2 6,250 Último mensaje 16 Octubre 2007, 17:58 pm
por Necro369
mejorar codigo java
Java
sapito169 5 7,271 Último mensaje 18 Diciembre 2008, 05:37 am
por sapito169
[?] Código no tira resultados correctos
Java
Run.EXE 3 2,541 Último mensaje 20 Agosto 2012, 20:38 pm
por Debci
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines