2017-05-27 3 views
0

すでに質問されている質問をする前に、私を聞いてください。私が答えを探すとき、彼らのどれも私と同じ問題を抱えていませんでした。だから私はここに行く。コードをコンパイルするたびに、別のクラスのメソッドで変数にプライベートアクセスがあるというエラーが表示されます。このエラーがどこから来ているのかわかりません。コードを再構築しましたが、成功しませんでした。だから私のプログラムには3つのクラスがあります。問題は、クラス「すべてのスキン」へのアクセスを持たないグルーと呼ばれるクラスです。別のクラスのプライベートアクセスに関するエラーが発生しました

glue class 

import java.util.Scanner; 
import java.util.Random; 
public class glue { 
public static void main(String [] args) { 
    Dank_Memes d = new Dank_Memes(); 
    allskins a = new allskins(); 
    Scanner s = new Scanner(System.in); 
    int money; 
    String makemoney = ""; 
    int makemoneycounter = 0; 
    String caseselect = ""; 
    int selection = 0; 
    String multistring = ""; 
    int multiint; 
    Random rand = new Random(); 
    do { 
     System.out.println(d.menue()); 
     selection = s.nextInt(); 
     if (selection == 1) { 
      int random = rand.nextInt(10); 
      System.out.println(a.allskins[random]);  
     } 
    }while (selection != 4); 
} 
} 

すべてのスキンクラス

public class allskins { 
    private int allskins; 

    public String[] allskins() { 
     String[] allskins = {"Karambit | Autotronic", 
          "Karambit | Black Laminate", 
          "Karambit | Blue Steel", 
          "Karambit | Boreal Forest", 
          "Karambit | Bright Water", 
          "Karambit | Case Hardened", 
          "Karambit | Crimson Web", 
          "Karambit | Damascus Steel", 
          "Karambit | Doppler", 
          "Karambit | Fade", 
          "Karambit | Forest DDPAT", 
          "Karambit | Freehand", 
          "Karambit | Gamma Doppler", 
          "Karambit | Lore", 
          "Karambit | Marble Fade", 
          "Karambit | Night", 
          "Karambit | Rust Coa", 
          "Karambit | Safari Mesh", 
          "Karambit | Scorche", 
          "Karambit | Slaughter", 
          "Karambit | Stained", 
          "Karambit | Tiger Tooth", 
          "Karambit | Urban Masked"}; 
     return allskins;       
    } 
} 

dankmemesクラスIが受け取るエラーコードが おかげ "allskinsはallskins内の専用アクセスを持っている" である

(インターフェース)

public class Dank_Memes { 
private int dankmemes[]; 

public String menue() { 
    return "1) Select a case you would like to open\n" + 
      "2) All knifes\n" + 
      "3) Karambit, Shadow Daggers, M9 Bayonet and Bowie\n" + 
      "4) Flip Knife, Flachion Knife, Bayonet and Huntsman\n" + 
      "5) Gut Knife and Butterfly Knife\n"; 
} 

}フィードバックを提供することができます。 a.allskins[random]a.allskinspublic String[] allskins()関数によって返されるprivate int allskinsない配列を意味するので

a.allskins()[random] 

を行い、あなたの関数を呼び出すために

答えて

0

。ここ

a.allskinsはあなたがいないことにより、デバッグコードに厄介で困難な生産の良い例ですオブジェクトaのメンバーにアクセスすることを意味し、助けを取得し、強制的にコード

+0

ありがとうございました! s.nextInt()のようなすべてのケースで()を忘れることは私の悪いうさぎです。もう一度、ありがとう! –

+0

私は助けることができるとうれしいです –

0

を書く避けるために、いくつかのIDEを使用して、オブジェクトと.allskinsです基本的なJavaのベストプラクティスに従ってください。問題は、メインメソッドループの "a.allskins [random]"呼び出しが "allskins"クラスの "allskins"メソッドを呼び出すのではなく、 "allskins"プライベートフィールドにアクセスしようとしていることです。これを "a.allskins()[random]"のように変更してください。さらに、Allskinsクラスに名前を付けて、allskinsを取得し、allskinsフィールドを使用しないでください。または、メソッドで作成した配列で静的に事前初期化してください。 Dark_Memesにも同じことが適用されます。

+0

助けてくれてありがとう、私のコードneaterを作ることを確認してください。 –

関連する問題