2014-09-01 45 views
1

我有一個名爲特點看起來像這樣的類,從幾個類創建對象並插入值的最佳方式是什麼?

public class Features { 
    public String opSys; 
    public String chipset; 
    public String cpu; 
    public String gpu; 

    public Features(String opSys,String chipset,String cpu,String gpu,) { 
     this.opSys = opSys; 
     this.chipset = chipset; 
     this.cpu = cpu; 
     this.gpu = gpu; 
    } 
} 

,我有一種叫相機這樣,

public class Camera { 
    public String primary; 
    public String features; 
    public String video; 
    public String secondary; 

    public Camera(String primary, String features, String video, String secondary){ 
     this.primary = primary; 
     this.features = features; 
     this.video = video; 
     this.secondary = secondary; 
    } 
} 

我試圖使用創建一個電話這兩個班級名爲電話。我如何做到這一點,並通過價值觀?

+0

的構造器參數的額外,,你能否告訴類'Phone'更好地瞭解您的問題嗎? – Jens 2014-09-01 06:31:55

+0

'公用電話(功能特點,相機相機){this.features =功能; this.Camera =相機;}'。 – 2014-09-01 06:32:08

+2

@Rod_Algonquin你能解釋一下你的想法嗎? AFAIK Java類不能從兩個或更多類繼承。 – 2014-09-01 06:32:48

回答

3

EHM ... 「相同」 的方式像CameraFeatures ... :)

public class Phone { 
    private Camera camera; 
    private Features features; 

    public Phone(Camera camera, Features features){ 
     this.camera = camera; 
     this.features = features; 
    } 

    public void setCamera(Camera newCamera){ 
     this.camera = newCamera; 
    } 

    public void setFeatures(Features newFeatures){ 
     this.features = newFeatures; 
    } 

    public Camera getCamera(){ 
     return camera; 
    } 

    public Features getFeatures(){ 
     return features; 
    } 

} 

然後... new Phone(new Camera(....), new Features(...) ...

和你的家庭作業完成..:P

+0

真..但後來也有相機和功能(S)修改 – 2014-09-01 06:45:21

+0

公共字符串主...公共字符串功能..所有字段/屬性是在他的代碼公開.. – 2014-09-01 06:47:34

+0

這並不意味着它是正確的,你應該遵循。相反,請提供一個解釋爲什麼在Java中這與您的答案一樣糟糕。 – 2014-09-01 06:48:08

1

電話類可以包含FeaturesCamera,那麼你可以使用setter方法或構造函數爲這些字段的值: -

class Phone{ 

private Camera camera; 
private Features features; 

//use constructor to set values 

public Phone(Camera camera, Features features){ 
this.camera=camera; 
this.features= features 
} 

public Phone(String opSys, String chipset, String cpu, String gpu, String primary, String features, String video, String secondary){ 
camera=new Camera(opSys, chipset, cpu, gpu); 
features= new Features(primary,features, video, secondary); 
} 

//or use setters to set value 

public setCamera(Camera camera){ 
// set values 
this.camera=camera; 
} 

public setFeatures(Features features){ 
//set values 
this.features=features; 
} 

} 

還有一個在你的源錯字,刪除的Features

相關問題