2011-12-02 8 views
-3

私のコードは単純な自動販売機です。私はコーディングに集中したパートンを使用しました。 - そしてまた、私はLsとを使用するたびに[「nosmall_cupsタイプに解決することはできません。この行 で複数のマーカー」:しかし、私はそのようなクラスのveding_machineのようにいくつかのエラー、何かが型に解決できない

Ls[3]=new nosmall_cups(); 
Ls[4]=new nolarge_cups(); 
Ls[5]=new exit(); 
Ls[6]=new start(); 

は、これらのエラーが同じであるましたこの自動販売機の全体のコードを以下に示す

public void small_cup(){ 
     st.small_cup(); 
     if(st.getId()==1){ 
      //s=2; 
      st=Ls[1]; 
     } 
     if(st.getId()==2){ 
      //s=2; 
      st=Ls[2]; 
     } 
    } 

import java.util.*; 
class veding_machine{ 
    State st; 
    private int price; 
    private int k; 
    private int k1; 
    private int t; 
    private int s; 
     public veding_machine(){ 

     State[] Ls=new State[7]; 
     Ls[0]=new idle(); 
     Ls[1]=new coins_inserted(); 
     Ls[2]=new sugar(); 
     Ls[3]=new nosmall_cups(); 
     Ls[4]=new nolarge_cups(); 
     Ls[5]=new exit(); 
     Ls[6]=new start(); 
     k=0; 
     k1=0; 
     t=0; 
     price=0; 

    } 
    public void setK(int k){ 
     this.k=k; 
    } 
    public int getK(){ 
     return k; 
    } 
    public void setT(int t){ 
     this.t=t; 
    } 
    public int getT(){ 
     return t; 
    } 
    public void setK1(int k1){ 
     this.k1=k1; 
    } 
    public int getK1(){ 
     return k1; 
    } 
    public void setPrice(int price){ 
     this.price=price; 
    } 
    public int getPrice(){ 
     return price; 
    } 
    public void setS(int s){ 
     this.s=s; 
    } 
    public int getS(){ 
     return s; 
    } 

    public void coin(){ 
     st.coin(); 
     if(st.getId()==0){ 
      if(t+25<price){ 
       // t=t+25; 
       st=Ls[0]; 
      } 
      if(t+25>=price && price>0){ 
       //s=0; 
       //t=0; 
       st=Ls[1]; 
      } 
     } 
     else if(st.getId()==1){ 
      if(k1>1 && s==2){ 
       //k1=k1-1; 
       st=Ls[0]; 
      }else{ 
       st=Ls[1]; 
      } 
     } 
     else if(st.getId()==2){ 
      st=Ls[2]; 
     } 
     else if(st.getId()==3){ 
      st=Ls[3]; 
     } 
     else if(st.getId()==4){ 
      st=Ls[4]; 
     } 
    } 
    public void small_cup(){ 
     st.small_cup(); 
     if(st.getId()==1){ 
      //s=2; 
      st=Ls[1]; 
     } 
     if(st.getId()==2){ 
      //s=2; 
      st=Ls[2]; 
     } 
    } 
    public void large_cup(){ 
     st.large_cup(); 
     if(st.getId()==1){ 
      //s=1; 
      st=Ls[1]; 
     } 
     if(st.getId()==2){ 
      //s=2; 
      st=Ls[2]; 
     } 
    } 
    public void sugar(){ 
     st.sugar(); 
     if(st.getId()==1){ 
      st=Ls[2]; 
     } 
     if(st.getId()==2){ 
      st=Ls[1]; 
     } 
    } 
    public void tea(){ 
     st.tea(); 
     if(st.getId()==1){ 
      if(k>1&&s==1){ 
       //k=k-1; 
       st=Ls[0]; 
      } 
      if(k1>1&&s==2){ 
       //k1=k1-1; 
       st=Ls[0]; 
      } 
      if(k==1&&s==1){ 
       //k=k-1; 
       st=Ls[3]; 
      } 
      if(k1==1&&s==2){ 
       //k1=k1-1; 
       st=Ls[4]; 
      } 
     } 
     if(st.getId()==2){ 
      if(k==1&&s==1){ 
       //k=k-1; 
       st=Ls[3]; 
      } 
      if(k1==1&&s==2){ 
       //k1=k1-1; 
       st=Ls[4]; 
      } 
      if(k1>1&&s==2){ 
       //k1=k1-1; 
       st=Ls[0]; 
      } 
      if(k>1&&s==1){ 
       //k=k-1; 
       st=Ls[0]; 
      } 
     } 
    } 
    public void insert_large_cups(int n){ 
     st.insert_large_cups(n); 
     if(st.getId()==0){ 
      if(n>0){ 
      //k=k+n; 
      st=Ls[0]; 
      } 
     } 
     if(st.getId()==3){ 
      if(n>0){ 
       //k=n; 
       st=Ls[0]; 
      } 
     } 
    } 
    public void insert_small_cups(int n){ 
     st.insert_small_cups(n); 
     if(st.getId()==0){ 
      if(n>0){ 
       //k1=k1+n; 
       st=Ls[0]; 
      } 
     } 
     if(st.getId()==4){ 
      if(n>0){ 
       //k1=n; 
       st=Ls[0]; 
      } 
     } 
    } 
    public void set_price(int p){ 
     st.set_price(p); 
     if(st.getId()==0){ 
      if(p>0){ 
       //price=p; 
       st=Ls[0]; 
      } 
     } 

    } 
    public void cancle(){ 
     st.cancle(); 
     if(st.getId()==1){ 
      st=Ls[0]; 
     } 
     if(st.getId()==2){ 
      st=Ls[0]; 
     } 
    } 
    public void dispose(){ 
     st.dispose(); 
     if(st.getId()==0){ 
      st=Ls[5]; 
     } 
    } 
} 
class State{ 

    veding_machine vm; 

    int id; 

    public void coin(){} 
    public void small_cup(){} 
    public void large_cup(){} 
    public void sugar(){} 
    public void tea(){} 
    public void insert_large_cups(int n){} 
    public void insert_small_cups(int n){} 
    public void set_price(int p){} 
    public void cancle(){} 
    public void dispose(){} 
    public int getId(){ 
     return id; 
     } 

} 
// operation of idle class 
class idle extends State{ 
// idle i; 
    veding_machine vm; 
    public void coin(){ 
     if(vm.getT()+25<vm.getPrice()){ 
      vm.setT(vm.getT()+25); 
     } 
     if((vm.getT()+25>=vm.getPrice())&&(vm.getPrice()>0)){ 
      vm.setS(0); 
      vm.setT(0); 
     } 
    } 
    public void insert_small_cups(int n){ 
     if(n>0){ 
      vm.setK1(vm.getK1()+n); 
     } 
    } 
    public void insert_large_cups(int n){ 
     if(n>0){ 
      vm.setK(vm.getK()+n); 
     } 
    } 
    public void set_price(int p){ 
     if(p>0){ 
      vm.setPrice(p); 
     } 
    } 
    public void dispose(){ 
     System.exit(0); 
    } 
} 
//operation of coins_inserted class 
class coins_inserted extends State{ 
    veding_machine vm; 

    public void coin(){ 
     vm.setT(0); 
     System.out.println("return coins"); 
    } 
    public void cancel(){ 
     vm.setT(0); 
     System.out.println("return coins"); 
    } 
    public void sugar(){ 

    } 
    public void small_cup(){ 
     vm.setS(2); 
    } 
    public void large_cup(){ 
     vm.setS(1); 
    } 
    public void tea(){ 
     if(vm.getK()==1&&vm.getS()==1){ 
      vm.setK(vm.getK()-1); 
      System.out.println("dispose large cup of tea;"); 
     } 
     if(vm.getK1()==1&&vm.getS()==2){ 
      vm.setK1(vm.getK1()-1); 
      System.out.println("dispose small cup of tea;"); 
     } 
     if(vm.getK()>1&&vm.getS()==1){ 
      vm.setK(vm.getK()-1); 
      System.out.println("dispose large cup of tea;"); 
     } 
     if(vm.getK1()>1&&vm.getS()==2){ 
      vm.setK1(vm.getK1()-1); 
      System.out.println("dispose small cup of tea;"); 
     } 
    } 
    public void cancle(){ 
      vm.setT(0); 
      System.out.println("return coins"); 
    } 
} 
//operation of sugar class 
class sugar extends State{ 
    veding_machine vm; 

    public void coin(){ 
     vm.setT(0); 
     System.out.println("return coins"); 
    } 
    public void small_cup(){ 
     vm.setS(2); 
    } 
    public void large_cup(){ 
     vm.setS(1); 
    } 
    public void sugar(){ 

    } 
    public void tea(){ 
     if(vm.getK()==1&&vm.getS()==1){ 
      vm.setK(vm.getK()-1); 
      System.out.println("dispose large cup of tea;"); 
     } 
     if(vm.getK1()==1&&vm.getS()==2){ 
      vm.setK1(vm.getK1()-1); 
      System.out.println("dispose small cup of tea;"); 
     } 
     if(vm.getK()>1&&vm.getS()==1){ 
      vm.setK(vm.getK()-1); 
      System.out.println("dispose large cup of tea with sugar;"); 
    } 
     if(vm.getK1()>1&&vm.getS()==2){ 
      vm.setK1(vm.getK1()-1); 
      System.out.println("dispose small cup of tea with sugar;"); 
     } 
} 
//operation of nolarge_cups class 
class nolarge_cups extends State{ 
    veding_machine vm; 
    public void coin(){ 
     vm.setT(0); 
     System.out.println("return coins"); 
    } 
    public void insert_large_cups(int n){ 
     if(n>0){ 
      vm.setK(n); 
     } 
    } 
} 
//operation of nosmall_cups class 
class nosmall_cups extends State{ 
    veding_machine vm; 

    public void coin(){ 
     vm.setT(0); 
     System.out.println("return coins"); 
    } 
    public void insert_small_cups(int n){ 
     if(n>0){ 
      vm.setK1(n); 
     } 
    } 
} 

//operation of start class 
class start extends State{ 
    public void veding_machine(){ 
     int k=0; 
     int t=0; 
     int price=0; 
     int k1=0; 
    } 
} 
//operation of exit class 
class exit extends State{} 
public static void main(String[] args) { 
    //idle i; 
    //coins_inserted ci; 
    //sugar sg; 
    //nosmall_cups nsc; 
    //nolarge_cups nlc; 
    //exit et; 
    //start st; 
    int b; 
    char ch1; 

    System.out.println("*****CS589 Fall 2010***** \n"+ 
         "******PROJECT********\n"+ 
         "******DEMO******\n"); 
    // PutLines(3); 
    veding_machine vm; 
      ch1='1'; 
      while(ch1!='q'){ 
       System.out.println("DRIVE for the vending machine\n"); 
       System.out.println("  0. coin() \n"); 
       System.out.println("  1. small_cup() \n"); 
       System.out.println("  2. large_cup() \n"); 
       System.out.println("   3. sugar() \n"); 
       System.out.println("   4. tea() \n"); 
       System.out.println("   5. insert_large_cups(int n) \n"); 
       System.out.println("   6. insert_small_cups(int n) \n"); 
       System.out.println("   7. set_Price(int p) \n"); 
       System.out.println("   8. cancle() \n"); 
       System.out.println("   9. dispose() j\n"); 

       System.out.println("   Testing-related methods\n"); 
       System.out.println("   a. show_variables() \n"); 
       System.out.println("   q. Quit Vending Machine class driver \n"); 

       Scanner scan=new Scanner(System.in); 
       ch1=(char)scan.nextInt(); 

       switch(ch1){ 

       case 'a': 
         System.out.println(" show_variables() testing-related method "); 

       } 


      } 

    } 

} 
01]クラスveding_machineに、常にエラー、以下のコードのように、「Lsは変数に解決することはできません」が出ています
+2

ああ、Javaの命名規則を使ったスティック!!!!!それはあなたのコードを非常に判読不能にし、したがって、トラブルシューティングの苦痛を与えます。 – mre

+0

待って、あなたはそれぞれのファイルにすべてを入れていますか? – Viruzzo

+0

クラス、変数、メソッド、パッケージのJavaの命名規則を読むことを強くお勧めします。コードをコンパイルすることなく、Lsを型として解決しようとしていると推測しています。大文字で始まります。 – DPM

答えて

1

あなたのLs変数は、veding_machineコンストラクタでのみ宣言されているため、他のメソッドの可視範囲外です。それをフィールドにして、他のメソッドもそれを見ることができるようにします。

0

"nosmall_cups"変数のコンパイル時の型として宣言されたクラスは、それを使用するクラスと同じパッケージに存在しないか、またはインポートするのを忘れています。

1

最後に砂糖クラス(欠落)を閉じるのを忘れてしまった。したがって、Sugar以下のクラスは認識されません。

まともなIDEでうまくフォーマットすると、目の瞬きでこれが明らかになりました。

関連する問題