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' 變量可能尚未初始化。我怎樣才能解決這個錯誤?請幫我解決這個錯誤。謝謝。
在主:包裝pakej =?你將它傳遞給Billl構造函數,而沒有任何值。 – belwood
它在哪一行發生錯誤? Billl上的 –
b =新的Billl(pakej)它表示pakej可能尚未初始化 –