[英]What is the best way of declaring and implementing two java classes?
我有兩個類,一個稱為修飾符,另一個稱為選項。 修飾符有一個 id、名稱和一組與之相關的選項。 而期權(或每個期權)有名稱和價格。 每個選項僅與一個修飾符相關聯。 考慮到它們之間的關系,編寫這些類的最佳方法是什么。 在我的應用程序中,用戶必須輸入修飾符的名稱,然后他們必須輸入每個選項的名稱和價格。 每個修飾符都可以根據需要有多個選項。 以下是這些類以及我現在如何使用它們:用戶必須輸入修飾符的名稱,然后他們必須輸入每個選項的名稱和價格。 每個修飾符都可以根據需要有多個選項。 以下是這些類以及我現在如何使用它們:
public class Modifier {
int id;
String name;
Options [] options;
public Modifier() {
}
public Modifier(String name, Options[] options) {
this.name = name;
this.options = options;
}
public Modifier(int id, String name, Options[] options) {
this.id = id;
this.name = name;
this.options = options;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Options[] getOptions() {
return options;
}
public void setOptions(Options[] options) {
this.options = options;
}
}
我目前正在將選項組添加為數組。 這是選項類。
public class Options {
int id;
String name;
public Options() {
}
public Options(String name, long price) {
this.name = name;
this.price = price;
}
public Options(int id, String name, long price) {
this.id = id;
this.name = name;
this.price = price;
}
long price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getPrice() {
return price;
}
public void setPrice(long price) {
this.price = price;
}
}
And in my main:
Options sausage = new Options("sausage",23);
Options olives = new Options("olives", 24);
Options bacon = new Options("bacon", 25);
Options [] toppings = {sausage, olives, bacon};
Modifier pizza_toppings = new Modifier(1, "Pizza toppings",toppings);
我計划使用 SQLIte DB,所以我需要找到一種有效的方法來做到這一點。
您可以向 Options 類添加一個字段以保存修飾符 id,然后使用 sqlite 您將創建兩個表,一個用於修飾符,一個用於選項,當您從中檢索數據時,您使用外鍵來構建您的對象。 無論您的課程現在看起來不錯,您都可以將修飾符 ID 保存在選項表中,反之亦然,如下所示:
修飾符表 [modifierId, name] - 選項表 [optionId, name, modifierId]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.