2017-12-12 9 views
-3

Google에서 텍스트 기반 블랙 잭 게임을 만드는 학교 프로젝트가 있습니다. 나는 BlackJackDeck, Card, Hand, Player, Dealer와 같은 다른 클래스를 만들었습니다. 우리 선생님은 BlackJack이라는 클래스를 게임 로직이라고합니다. BlackJack 내부에서 메인 메서드를 만들려고 시도하고 BlackJackDeck 데크를 뒤섞기위한 참조를 추가했습니다. 그러나 "정적 변수가 아닌 변수는 정적 컨텍스트에서 참조 할 수 없습니다"라고합니다. 기본 방법이 없으면 프로그램을 실행할 수 없습니다. 여기 내 코드는 다음과 같습니다정적 컨텍스트에서 비 정적 변수를 참조 할 수 없습니다. [Java]

package blackjack; 
import java.util.ArrayList; 

/** 
* @version 1.0 
* @author robert.englund 
*/ 
public class BlackJack { 

ArrayList<Spelare> spelare = new ArrayList<>(); //List with players 
BlackJackKortlek leken = new BlackJackKortlek(4); //BlackJackDeck 
Dealer dealer = new Dealer(); //The dealer 

public static void main(String[] args) { 

    leken.blanda(); //Shuffle deck 

} 


} 

나는 게임 로직을 쓸 수 있도록 내가 게임을 실행 가능한 할 수 있도록 어떻게 그것을해야합니까? 미리 감사드립니다.

+1

이 당신을 도울 것입니다 - https://docs.oracle.com/javase/tutorial/ – vinS

+0

셔플 데크 다음 추가 포함 된 블랙 잭 객체의 생성자 만들기 "새 블랙 잭를();" 이제 셔플 데크가있는 곳. –

답변

0

정적 컨텍스트에서 비 정적 변수에 액세스 할 수 없습니다. 귀하의 변수 (비 정적)가 main 메소드 (정적) 밖에 있습니다.

static ArrayList<Spelare> spelare = new ArrayList<>(); 
static BlackJackKortlek leken = new BlackJackKortlek(4); 
static Dealer dealer = new Dealer(); 

또는 main 내부에 선언 :
아래로 변수를 선언 단순히 정적 변수로 leken 선언 할 수

public static void main(String[] args) { 
    ArrayList<Spelare> spelare = new ArrayList<>(); //List with players 
    BlackJackKortlek leken = new BlackJackKortlek(4); //BlackJackDeck 
    Dealer dealer = new Dealer(); 
} 
0

당신은 당신의 main() 방법의 BlackJackKortlek leken = new BlackJackKortlek(4);

insinde를 인스턴스화해야합니다. 작업을 마친 후에는 메소드를 호출 할 수 있습니다.

0

.

private static BlackJackKortlek leken = new BlackJackKortlek(4); 

정적 키워드가 실제로 무엇을 의미하는지 읽어야합니다. 당신은 당신이 안되는 정적 방법 내부 변수 leken 비 정적에 액세스하려고

1

는 이유가되고 instance variables 당신이 static 방법은 객체를 생성하지 않고 액세스 할 수있는 개체를 만들 경우에만 사진 아래에 온다 .

public static void main(String[] args) { 
    leken.blanda(); // leken is non-static variable. 
} 

따라서 메인 메서드 내에 개체를 만듭니다.

public static void main(String[] args) { 
     BlackJackKortlek leken = new BlackJackKortlek(4); //BlackJackDeck 
     leken.blanda(); // leken is non-static variable. 
    }