我对java很陌生,为了让自己的脚稍微湿一点点我试图为我的妻子和我建立一个简单的预算程序。我有很多课,我仍然学习组织,但是我的主要问题是关于我的界面。如何实现一个接口?
它看起来像这样:
package com.budgeter;
public interface Category {
void setPersonalLoan(int budget);
void setDonationsGifts(int budget);
void setRecreation(int budget);
void setHouseHoldItems(int budget);
void setUtilities(int budget);
void setSavings(int budget);
void setGroceries(int budget);
void setAutoInsurance(int budget);
void setAutoPayment(int budget);
void setHomeInsurance(int budget);
void setHomePayment(int budget);
}
我不知道,如果这个接口是根据最佳实践或者不这样做,但我的目标是有办法有一组定义的类别。接下来,我有另一个类叫做BillCategory
,我可以使用它来添加一个自定义类别。再次,不确定这是否是使用接口的正确方式。
所以我用这个接口是这样的:
package com.budgeter;
public class Bills implements Category {
private Double amount;
private Double totalBills;
public Bills() {}
public Bills(double amount) {
setTotal(amount);
}
private void setTotal(Double amount) {
this.amount = amount;
totalBills = amount;
}
public Double getTotal() {
return totalBills;
}
@Override
public void setPersonalLoan(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setDonationsGifts(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setRecreation(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setHouseHoldItems(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setUtilities(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setSavings(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setGroceries(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setAutoInsurance(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setAutoPayment(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setHomeInsurance(int budget) {
// TODO Auto-generated method stub
}
@Override
public void setHomePayment(int budget) {
// TODO Auto-generated method stub
}
}
这里是我BillCategory
类,我用它来添加一个新的类别,但不完全知道如何这与我的界面:
package com.budgeter;
import java.util.HashMap;
import java.util.Map;
public class BillCategory {
private static Map<String, Integer> categories = new HashMap<String, Integer>();
public void addCategory(String categoryName, int frequency) {
categories.put(categoryName, frequency);
}
public Map<String, Integer> getCategories() {
return categories;
}
}
- 什么是最有效的方法来检查是否设置了一个项目,然后计算我所有的
getTotal()
方法? - 我是否正确使用接口?
- 我使用了一个好的命名约定(例如Category)吗?
setTotalAmount()
方法我不确定是否应该通过对amount
的引用或将amount
设置为使用this.amount = amount
然后在全局范围内对其进行访问。对此有最佳做法吗?- 将我的
BillCategory
类与接口关联的最佳方式是什么?
什么建议命名界面?你能给我最后一段的例子吗?非常感谢花时间解释这一点! –
如果类别名称对您有意义,那么保持这种方式,只要记住接口应该是通用的并且可以多次执行。所以如果你打算使用它的另一个实现,并且Class和Bills都是一个类别,那么它就是完美的。我将在那里举出更多的代码作为最后一部分的例子。 – chancea
我不确定接口的名称,因为我还有另一个名为'BillCategory'的类(未显示),我将其用于'addCategory()'。我假设'BillCategory'会是一个更好的接口名称? –