Java - Como puedo usar estos parametros en otras clases

 
Vista:
sin imagen de perfil

Como puedo usar estos parametros en otras clases

Publicado por sebas (5 intervenciones) el 08/12/2016 17:38:22
Estoy desarrollando para un trabajo un juego de naipes, ahora quiero hacer las clases que contengan el baraje de cartas, donde en este código solo crea las cartas de las cuales hay un vector de 40 de ellas y otro de 14, la idea es que pueda usar al vector dentro de otra clase para barajarlo, mostrarlo o repartirlo porsteriormente, pero no recuerdo bien como hacerlo, hechenme una mano con ello.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
*Contiene el arreglo de cartas, gestiona todas las cartas
*/
package codigos;
/**
 *
 * @author Sebas Alvarez
 */
 
public class Baraja {
 
      int[] perros=new int[14];//creacion del vector de 14 posiciones
      int[] cartas=new int[40];//creacion del vector de 40 posiciones
 
 public void totalbaraja(int cartas[]){//Contiene al vector de cartas para el juego
 
     for(int j=0;j<cartas.length;j++){//ciclo for para llenar de valores del 1 al 40 al vector cartas
               cartas[j] =j+1;//j+1 el operando que ingresara los valores del 1 al 40
               System.out.print(" "+cartas[j]);//imprime las cartas creadas
     }
}
 public int puntos(int perros[]){//Contiene al vector de cartas de puntos llamados perros
      for(int i=0;i<perros.length;i++){
         perros[i]=i+1;
         return perros[i];
     }
          return 0;
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como puedo usar estos parametros en otras clases

Publicado por Lawliet (303 intervenciones) el 08/12/2016 18:01:17
Hola...

Por que no simplemente creas un constructor que reciba ese vector en tu otra clase. Por ejemplo...

1
2
3
4
5
6
7
public class MiClase() {
	private String[] miVector;
 
	public MiClase(String[] miVector) {
		this.miVector = miVector;
	}
}

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como puedo usar estos parametros en otras clases

Publicado por sebas (5 intervenciones) el 08/12/2016 19:15:24
Muchas gracias, supongo que a lo que te refieres es poner el set y get dentro de otra clase para que se almacene el vector?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como puedo usar estos parametros en otras clases

Publicado por sebas (5 intervenciones) el 08/12/2016 19:42:32
Entiendo algo la idea pero me arroja un error, me pueden explicar de que se trata?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
*Contiene el arreglo de cartas, gestiona todas las cartas
*/
package codigos;
/**
 *
 * @author Sebas Alvarez
 */
 
public class Baraja {
      resivirvectores n=new resivirvectores();
      int[] perros=new int[14];//creacion del vector de 14 posiciones
      int[] cartas=new int[40];//creacion del vector de 40 posiciones
 public void totalbaraja(){//Contiene al vector de cartas para el juego    
     for(int j=0;j<cartas.length;j++){//ciclo for para llenar de valores del 1 al 40 al vector cartas
               cartas[j] =j+1;//j+1 el operando que ingresara los valores del 1 al 40
               System.out.print(" "+cartas[j]);//imprime las cartas creadas
               cartas[j]=n.getCartas();
     }
}
 public void puntos(){//Contiene al vector de cartas de puntos llamados perros
      for(int i=0;i<perros.length;i++){
         perros[i]=i+1;
 
     }
 
}
}

donde me da este error:
error: constructor resivirvectores in class resivirvectores cannot be applied to given types;
resivirvectores n=new resivirvectores();
required: int[],int[]
found: no arguments
reason: actual and formal argument lists differ in length
C:\Users\Dell\Desktop\40\Cuarenta\src\codigos\Baraja.java:18: error: incompatible types: int[] cannot be converted to int
cartas[j]=n.getCartas();
2 errors
C:\Users\Dell\Desktop\40\Cuarenta\nbproject\build-impl.xml:955: The following error occurred while executing this line:
C:\Users\Dell\Desktop\40\Cuarenta\nbproject\build-impl.xml:295: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)
Ademas de otro error que al momento de instanciar la otra clase me deice que falata el constructor y cuando le doy a que lo arregle me cre un constructor vacío en la clase de abajo, que puedo hacer?


y mi clase donde estan los set y gets es esta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
* resive os vectores de las cartas y los puntos
 */
package codigos;
 
public class resivirvectores {
    private int cartas[];
    private int perros[];
 
    public resivirvectores(int[] cartas, int[] perros) {
        this.cartas = cartas;
        this.perros = perros;
    }
    public int[] getCartas() {
        return cartas;
    }
 
    public void setCartas(int[] cartas) {
        this.cartas = cartas;
    }
 
    public int[] getPerros() {
        return perros;
    }
 
    public void setPerros(int[] perros) {
        this.perros = perros;
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como puedo usar estos parametros en otras clases

Publicado por Lawliet (303 intervenciones) el 08/12/2016 20:31:40
Hola...

Es correcto te marque el error donde no encuentra el constructor vació ya que en tu objeto no has creado dicho constructor y en tu clase estas realizando una instancia de tu clase sin parámetros; es decir, haces esto cuando en tu clase es claro que no esta.

1
resivirvectores n = new resivirvectores();

La solución es crear el constructor vació y con eso resolverás el problema, sin embargo, en ningún momento llenaras tus vectores de la otra clase ya que no estas pasando ningún vector como parámetro. Debido a que tienes un constructor que recibe dos vectores, tienes que hacer la instancia de ese constructor; es decir, de esta manera...

1
2
3
4
5
6
7
8
public static void main(String[] args) {
	int[] perros = new int[14];
	int[] cartas = new int[40];
 
	resivirvectores n = new resivirvectores(perros,cartas);
	n.getCartas();
	n.getPerros();
}

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como puedo usar estos parametros en otras clases

Publicado por sebas (5 intervenciones) el 08/12/2016 20:55:26
Al parecer se solucionó el problema, solo me apareció un error más pero al ponerlo para que lo solucione automáticamente no se que pasó pero funciona, con todo aquí adjunto las 2 clases por si alguien necesita y si puedes decirme que pasó ahí te agradezco.
(este cambio solo esta en la primera clase)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package codigos;
/**
 *
 * @author Sebas Alvarez
 */
 
public class Baraja {
      resivirvectores n;//PRIMER CAMBIO RARO 
 
      int[] perros=new int[14];//creacion del vector de 14 posiciones
      int[] cartas=new int[40];//creacion del vector de 40 posiciones
 
    public Baraja() {
        this.n = new resivirvectores(cartas,perros)//AQUI IGUAL;
    }
 public void totalbaraja(){//Contiene al vector de cartas para el juego    
     for(int j=0;j<cartas.length;j++){//ciclo for para llenar de valores del 1 al 40 al vector cartas
               cartas[j] =j+1;//j+1 el operando que ingresara los valores del 1 al 40
               System.out.print(" "+cartas[j]);//imprime las cartas creadas
 
              cartas=n.getCartas();
     }
 
}
 
 public void puntos(){//Contiene al vector de cartas de puntos llamados perros
      for(int i=0;i<perros.length;i++){
         perros[i]=i+1;
 
     }
 
}
}
clase que contiene el set & get

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package codigos;
 
public class resivirvectores {
    private int cartas[];
    private int perros[];
 
 
    public resivirvectores(int[] cartas, int[] perros) {
        this.cartas = cartas;
        this.perros = perros;
    }
 
    resivirvectores() {
 
    }
    public int[] getCartas() {
        return cartas;
    }
 
    public void setCartas(int[] cartas) {
        this.cartas = cartas;
    }
 
    public int[] getPerros() {
        return perros;
    }
 
    public void setPerros(int[] perros) {
        this.perros = perros;
    }
 
}

el main es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package JuegoCuarenta;
import java.util.Scanner;
import codigos.Baraja;
/**
 *
 * @author Dell
 */
public class cuarenta {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
     Scanner teclado = new Scanner(System.in);
     Baraja s=new Baraja();
     s.totalbaraja();
 
    }
 
}
o
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como puedo usar estos parametros en otras clases

Publicado por Lawliet (303 intervenciones) el 08/12/2016 22:49:45
Hola...

Cuando realizas la instancia de tu clase Baraja este manda a llamar el constructor con los parámetros de tu clase resivirvectores que es lo que te comentaba anteriormente.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como puedo usar estos parametros en otras clases

Publicado por sebas (5 intervenciones) el 09/12/2016 01:35:52
Ahora tengo una duda fundamental del código, en esta línea
1
2
cartas[j]=n.getCartas();
              System.out.print(" "+cartas);//imprime las cartas creadas
donde me da un error en
1
cartas[j]=n.getCartas();

que dice int[] cannot be converted to int, notese que está ya cambiado porque antes usé solo
1
cartas=n.getCartas();

donde no me daba error pero al momento de darle a imprimir
System.out.print(" "+cartas)
solo me imprime los valores por defecto, deberia salir valores del 1 al 40 pero solo me salen espacios de memoria llenos por caracteres,
supongo que debe ser porque no se esta guardando o no se

Ingrese 1 para mostrar naipe y 2 para barajar, presione 0 para salir
1
[I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30 [I@28d93b30

Ingrese 1 para mostrar naipe y 2 para barajar, presione 0 para salir


porfas ayuda!

si se necesita, el main lo modifiqué:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package JuegoCuarenta;
import java.util.Scanner;
import codigos.*;
/**
 *
 * @author Dell
 */
public class cuarenta {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
     Baraja s=new Baraja();
     Mezclar b=new Mezclar();
     int c=1;
     while(c!=0){
     System.out.println("Ingrese 1 para mostrar naipe y 2 para barajar, presione 0 para salir");
     Scanner teclado = new Scanner(System.in);
     int n=teclado.nextInt();
     switch (n){
         case 1:
            s.totalbaraja();
            System.out.println("\n");
            break;
         case 2:
            b.Mezcla();
            System.out.println("\n");
            break;
        case 0:
            c=0;
     }
    }
    }
    private resivirvectores d;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar