Java 不要編寫返回引用可變物件的訪問方法

2021-08-21 10:34:13 字數 545 閱讀 5658

public class employee 

}

在日常的開發過程中,注意要盡量編寫返回引用可變物件的訪問器的方法。

在上邊的employee類中,就違反這種原則,其中的gethirdate()方法返回了乙個date類的物件;

在date類中有乙個修改器方法settime,利用這個方法可以設定毫秒數,也就是說date物件是可變的,這一點破壞了封裝性,例如

public static void main(string args)
在上邊的**中,d和harry.gethirdate()引用了同乙個物件,那麼對d呼叫settime方法就會更改掉harry物件的私有狀態,圖示如下:

如果我們需要返回乙個可變型別的引用,應該首先對它進行轉殖,在另乙個位置存放物件的副本

Item 21 需要返回物件時,不要返回引用

乙個典型的場景如下 class rational friend const rational operator const rational lhs,const rational rhs rational a,b rational c a b 注意operator 返回的是 rational 例項,...

C 可變長動態陣列類 的過載 返回引用

program 13.5.1.cpp 可變長動態陣列類 1 陣列的元素個數可以在初始化該物件的時候指定。2 可以動態往陣列中新增元素。3 使用該類的時候不用操心動態記憶體分配 釋放問題 4 能夠像使用陣列那樣來使用動態陣列類物件,如可以通過下標來訪問其元素。include include using...

C 語法 就算不報錯也不要返回臨時物件的引用!

首先 不要返回臨時物件的引用int test intmain 雖然可以編譯通過 並且能夠正確執行 但是如果換成類就不可以了 classaa int a x a const a operator const int a const a operator const a a intx a 有沒有自定義的...