2015-04-16 174 views
0

Billl.java声明枚举

import java.util.Scanner; 

enum Package 
{ 
    BASIC("B"),MODERATE("M"),INTERMEDIATE("I"),ADVANCE("A") ; 
    Package pakej; 
    private String p; 

    private Package(String p) 
    { 
     this.p=p; 
    } 
} 



class Billl //class bil 
{ 
    private double price; 
    private int hour; 
    private double totalBill; 
    private int totalHour; 

    Package pakej; 

    public Billl(Package pakej) 
    { 
     this.pakej=pakej; 
    } 


    public void setHour(int hour) 
    { 
     this.hour=hour; 
    } 


    public void choose() 
    { 
     switch(pakej) 
     { 
      case BASIC: price=10; 
        int hour1=10; 
        totalHour = hour-hour1; 

        if(totalHour>0) 
         totalBill=price+(totalHour*2); 
        else 
         totalBill=price; 
        break; 

      case MODERATE: price=20; 
         int hour2=20; 
         totalHour = hour-hour2; 

         if(totalHour>0) 
          totalBill=price+(totalHour*1.5); 
         else 
          totalBill=price; 
         break; 

      case INTERMEDIATE: price=30; 
          int hour3=30; 
          totalHour = hour-hour3; 

          if(totalHour>0) 
           totalBill=price+(totalHour*1); 
          else 
           totalBill=price; 
          break; 

      case ADVANCE: price=50; 
         int hour4=50; 
         totalHour = hour-hour4; 

         if(totalHour>0) 
          totalBill=price+(totalHour*0.5); 
         else 
          totalBill=price; 
         break; 

      default : System.out.println("Wrong choice"); 
     } 
    } 

    public double getBill() 
    { 
     return totalBill; 
    } 
} 

TestBilll.java

import javax.swing.JOptionPane; 
import java.util.Scanner; 


public class TestBilll 
{ 

    public static void main(String[] args) 
    { 
     Scanner sc=new Scanner(System.in); 

     String e; //string for enum 
     e= JOptionPane.showInputDialog("\nChoose your package : "); 
     e=sc.next().toUpperCase(); 

     Package pakej; 
     Billl b=new Billl(pakej); 

     System.out.print("\nPlease enter hours : "); 

     //enter hours 
     int hour=sc.nextInt(); 
     b.setHour(hour); 
     b.choose(); 

     System.out.println("\n Your Package : " + pakej + "\nYour total bill : " + b.getBill()); 

    } 
} 

编译后TestBilll.java错误出来说 'pakej' 变量可能尚未初始化。我怎样才能解决这个错误?请帮我解决这个错误。谢谢。

+0

在主:包装pakej =?你将它传递给Billl构造函数,而没有任何值。 – belwood

+0

它在哪一行发生错误? Billl上的 –

+0

b =新的Billl(pakej)它表示pakej可能尚未初始化 –

回答

1
Package pakej; 
Billl b=new Billl(pakej); 

应该

Package pakej = Package.BASIC; 
Billl b=new Billl(pakej);