在C++中,如果不修改類,則成員方法可以是const。例如:Java中的成員方法consting?
class Foo {
public:
float getValue() const;
};
是否有類似的東西我必須在Java類中做?在Java中如何確定工作? (除了一個成員變量聲明之前添加final關鍵字,並對其進行初始化)
感謝
在C++中,如果不修改類,則成員方法可以是const。例如:Java中的成員方法consting?
class Foo {
public:
float getValue() const;
};
是否有類似的東西我必須在Java類中做?在Java中如何確定工作? (除了一個成員變量聲明之前添加final關鍵字,並對其進行初始化)
感謝
雖然Java缺少const限定符,但您可以通過只讀接口和不可變類型實現一些相同的目標。
因此,您可以將其類型指定爲只讀接口類型,而不是將引用限定爲const。
例如,給定這兩個接口:
public interface A {
int getValue();
}
public interface MutableA extends A {
void setValue(int i);
}
然後該方法的參數是類似於C++中的常量限定指針/參考。
public void foo(A a)
是否有類似的事情,我必須在Java類呢?
沒有。
在Java中如何確定工作?
它在Java中不存在。
除了final
關鍵字之外,真的沒有關於const
的概念,正如你所提到的。
簡而言之,Java與const方法沒有任何相似之處。由於沒有const引用,所以不需要它們。
final
對於原始數據或引用變量類似const
,但它並不暗示引用對象的任何內容。
我知道你已經接受了答案,但除此之外還有更多的不是簡單的「否」。萬一它對你有用,我在下面添加了一個更完整的答案。 –