2014-02-19 42 views
1
currentColor = getCarColor(this.car.color) 

這裏color是私人的,getCarColor是一種方法,我該如何訪問變量color如何從方法訪問私有變量?

+4

,打破封裝。除非你有非常好的理由,否則不要。如果你有充分的理由,你可以使用反射。 –

+0

這就是我們在類中爲變量使用setter和getters而不是直接訪問變量的原因 –

+1

如果私有變量位於您擁有的類中,爲什麼不向該類中添加getter方法? – jonhopkins

回答

3

你不應該直接訪問私有變量:它們由於某種原因被私有化。

正確的方式做到這一點是增加一個公共存取方法的顏色的車:

class Car { 
    private Color color; 
    // Add this method: 
    public Color getColor() { return color; } 
} 
+0

已經有一個公共getter方法,getCarColor(據我瞭解...),但它沒有做我認爲應該做的。 – tarutao

+0

@ user3328737你稱它爲'this.car.getCarColor()',對吧? – dasblinkenlight

+0

@ user3328737不客氣。如果您不再需要此幫助,請考慮接受答案,以向其他網站訪問者表明您不再主動尋找改進的答案。 – dasblinkenlight