2011-06-23 20 views
0

在C++中,如果不修改類,則成員方法可以是const。例如:Java中的成員方法consting?

class Foo { 
public: 
    float getValue() const; 
}; 

是否有類似的東西我必須在Java類中做?在Java中如何確定工作? (除了一個成員變量聲明之前添加final關鍵字,並對其進行初始化)

感謝

+0

我知道你已經接受了答案,但除此之外還有更多的不是簡單的「否」。萬一它對你有用,我在下面添加了一個更完整的答案。 –

回答

3

雖然Java缺少const限定符,但您可以通過只讀接口和不可變類型實現一些相同的目標。

因此,您可以將其類型指定爲只讀接口類型,而不是將引用限定爲const。

例如,給定這兩個接口:

public interface A { 
     int getValue(); 
    } 

    public interface MutableA extends A { 
     void setValue(int i); 
    } 

然後該方法的參數是類似於C++中的常量限定指針/參考。

public void foo(A a) 
4

是否有類似的事情,我必須在Java類呢?

沒有。

在Java中如何確定工作?

它在Java中不存在。

3

除了final關鍵字之外,真的沒有關於const的概念,正如你所提到的。

2

簡而言之,Java與const方法沒有任何相似之處。由於沒有const引用,所以不需要它們。

final對於原始數據或引用變量類似const,但它並不暗示引用對象的任何內容。