2012-11-12 49 views
0

我正在學習Java中的數據對象如何在java中動態創建數據對象?

我對動態創建數據對象有疑問。

例如,

我們有...

public class tasks { 
private int vmnumber; 
private int tasknumber; 
private String status; 
public tasks(int vmnumber , int tasknumber , String status) { 
this.vmnumber = vmnumber; 
this.tasknumber = tasknumber; 
this.status = status; } 

還有一些getvmnumber gettasknumber,的getStatus,有的一套用於

我瞭解如何創建數據對象的功能是我們每次都必須初始化。

例如,在主文件中,

public class task{ 
public static void main(String [] args){ 
task t = null , t2 = null; 

t = new task(); 
t.tasknumber = 3; 
t.vmnumber = 4; 
t.status = "Start"; 

t2 = new task(); 
t.tasknumber = 2; 
t.vmnumber = 1; 
t.status = "Wait"; 
} 
然而

,我想我們怎樣才能創建動態數據對象,因爲程序可能得到實時任務的信息。(那麼我們不能手動創建數據對象,我們需要一些可以動態創建數據對象的東西......)

二,我想知道如何從數據對象中獲取數據。

例如,如果我們想要查找任務編號爲3的所有信息,我該怎麼做? 可以說,我們有task1,task2,task3數據對象,我們希望看到task1的所有信息。那我該怎麼辦?

謝謝

+1

你正在動態地創建一個數據對象... – eis

+0

你是什麼意思創建它「動態」?動態以何種方式?爲了檢索'task1'的信息,你可以使用getter(你說你有)可以用它來讀取它的變量。我在這裏錯過了什麼嗎? – Patrickdev

回答

1

有幾點需要討論,從你的問題。

我猜你要創建新的任務,這也許是從你的應用程序或Web服務,一個批次的用戶interace的請求......

嗯,你已經知道如何創建對象:有新的關鍵字。根據原始請求,您的主要功能可能必須創建同一個類的多個實例,「任務」。

更多的是,當你實例化類「任務」時,你永遠不想直接賦值給它的屬性。

因此,而不是編碼t.tasknumber = 3,你應該在代碼:t.setTaskNumber(3)

此外,你應該重命名你的類的屬性,以反映JavaBeans的約定: - 的private int taskNumber代替tasknumber

當然,只是一個慣例,在你的程序中它不是強制性的。但它有助於產生getter/setter方法,並且,嗯,這是一個慣例:-)

要在創建的任務中檢索「信息」,你只需要調用干將: - myTask.getTaskNumber()

希望這幫助你一點點。

+1

我們創建getter和setter來確保封裝。這是OOP(面向對象編程)的核心概念。只有你的類(或者從它繼承的類)可以直接訪問它的屬性。 考慮這個例子:你有一個Person類,它擁有一個「age」屬性。如果任何代碼可能會改變myPerson.age = -20的值,請想象一下:-) 使用setter myPerson.set(int age),可以在將值分配給實例「myPerson」之前檢查該值。 – jeromedt