Cómo llamar al método de otra clase?

A. Sri:

Así que soy un novato en la programación orientada a objetos y actualmente estoy teniendo problemas para usar una función de otro método. La clase de abajo es la clase principal de un juego de cartas. Aquí se crea una baraja de cartas mediante la creación de un objeto de la clase de juegos. A continuación, inicia el juego con la cubierta creada y debe imprimir el tamaño de la cubierta.

public class Run {

public static void main(String[] args) {

    Game game;
    System.out.println("Welcome!");
    play = true;
    while (play) {
        game = new Game(3); //Create deck of card based on number of ranks given
        game.play(); //Starts the game with deck of card
    }

}

La clase de abajo es la clase de juegos. Cuando se inicia el juego se debe imprimir el tamaño de la plataforma creada.

public class Game {
public Game(int ranks)
{
    Deck Main = new Deck(ranks);
}
public static void play()
{
    System.out.println(Main.size()); //Where the error occurs
}

La clase de abajo es la clase cubierta donde realmente crea la cubierta y tiene un método que devuelve el tamaño de la cubierta.

public class Deck {

private ArrayList<Card> cards;

public Deck(int range) {
    cards = new ArrayList<Card>();
    for (int i=1; i<=range; i++)
    {
        Card card = new Card(1, i);
        Card card2 = new Card(2, i);
        Card card3 = new Card(3, i);
        Card card4 = new Card(4, i);
        cards.add(card);
        cards.add(card2);
        cards.add(card3);
        cards.add(card4);
    }
}
public int size() 
{
    int num=cards.size();
    return num;
}

La última clase es la clase de tarjeta.

public class Card {
private int rank;
private int suit;
public Card(int s, int r)
{
    suit=s;
    rank=r;
}
public int getSuit()
{
    return suit;
}
public int getRank()
{
    return rank;
}

Tiene que ser un error obvio debido a mi falta de comprensión de lo que muestran lata a nadie qué hacer para solucionarlo?

GhostCat saludos Monica C.:

Usted declaró "principal" como una variable local dentro del constructor de la clase cubierta. Eso significa que sólo es visible en el cuerpo de ese constructor.

Que necesita para convertir la variable local en un campo de su clase en lugar. Sólo entonces se hace "visible" en otros lugares de su clase! La misma cosa se hizo correctamente para baño y rango en su clase de la tarjeta!

Y, por supuesto, el método de reproducción debería no ser estática! Un juego se trata de una cubierta, no "todos ellos"!

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=234932&siteId=1
Recomendado
Clasificación