Re: [問題] 參考變數的傳遞
※ 引述《icetofux ()》之銘言:
: 大家好,最近在試著學習java,關於參考變數的運用有點疑問,想向各位先進求教:
: 1 private Node Root;
: 2
: 3 public BTree() {
: 4 Root = null;
: 5 }
: 6
: 7 public void Insert(int TData) {
: 8 Insert( Root, TData);
: 9 return ;
: 10 }
: 11
: 12 private void Insert( Node NowNode, int TData) {
: 13 if(NowNode==null) {
: 14 NowNode = new Node();
: 15 NowNode.Data = TData;
: 16 }
: 17 ...
: 18 return ;
: 19 }
private Node root ;
public BTree() {
root = null ;
}
public void Insert( int data ) {
if ( root == null )
root = new Node( data ) ;
else
Insert( root, data ) ;
}
private void Insert( Node nowNode, int data ) {
if ( data < nowNode.data )
if ( nowNode.left == null )
nowNode.left = new Node( data ) ;
else
Insert( nowNode.left, data ) ;
else if ( data > nowNode.data )
...
return ;
}
Java 的傳參考在 C++ 的觀念只是傳(某address)值,
所以在設計的思考上(Java可能也希望我們統一這樣做)
就是要習慣先決定好變數的實體對像,
(例如說建立好新物件實體)再傳該變數,
傳進去後對應的變數的工作就是處理其內容(例如呼叫界面函式或成員函式).
因此也不太需要再改變參考的對像.
雖然不能像C++的call by reference可以在某些問題上有比較不同或簡便的寫法,
實際上熟練之後也幾乎不會碰到解不了的問題
這也是一種寫法的單純化.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.4.234
討論串 (同標題文章)