[英]Enumeration classes in Java
我有一個類聲明枚舉類型為:
public enum HOME_LOAN_TERMS {FIFTEEN_YEAR, THIRTY_YEAR};
這種類型可以在另一個類中使用嗎? 我基本上是在嘗試完成一項家庭作業,我們有兩種類型的貸款和一種loanManager類。 當我嘗試在我的loanManager類中使用不擴展或實現貸款類的HOME_LOAN_TERMS.THIRTY_YEAR時,我收到錯誤消息,說它“找不到符號HOME_LOAN_TERMS”。 所以我不知道我的loanManager類是否需要實現兩個不同的貸款類。 謝謝。
我目前正在研究這個,所以我知道它不完整,但這里是我嘗試使用它的地方:
import java.util.ArrayList;
public class AcmeLoanManager
{
public void addLoan(Loan h)
{
loanArray.add(h);
}
/*
public Loan[] getAllLoans()
{
}
public Loan[] findLoans(Person p)
{
}
public void removeLoan(int loanId)
{
}
*/
private ArrayList<Loan> loanArray = new ArrayList<Loan>(5);
public static void main(String[] args)
{
AcmeLoanManager aLoanManager = new AcmeLoanManager();
Person aPerson = new Person("Crystal", "Twix", "619-111-1234", "ct@yahoo.com");
HomeLoan aHomeLoan = new HomeLoan(aPerson, 400000, 5, HOME_LOAN_TERMS.THIRTY_YEAR);
aLoanManager.addLoan(aHomeLoan);
}
}
您必須指定類型:
HOME_LOAN_TYPES type = HOME_LOAN_TYPES.FIFTEEN_YEAR;
順便說一下,不要對枚舉使用這種命名約定。 使用與類相同的駝峰案例:
public enum HomeLoanType {
FIFTEEN YEAR,
THIRTY_YEAR
}
如果您不想指定類型,可以執行靜態導入:
import static package.name.HomeLoanType.*;
...
HomeLoanType type = FIFTEEN_YEAR;
最后,關於Java枚舉的最好的事情之一是它們可以具有狀態和行為。 例如:
public enum HomeLoanType {
FIFTEEN YEAR(15),
THIRTY_YEAR(30);
private final int years;
HomeLoanType(int years) {
this.year = years;
}
public int getYears() {
returns years;
}
}
是的,因為它是公開的,你可以從另一個類使用它。
如果它在您的貸款類中,您編寫Loan.HOME_LOAN_TERMS.FIFTEEN_YEAR以從其他類引用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.