その概念的な質問。しかし、適切な場所で適切な用語を使用したいと思います。これが私がこれについて他の見解を読みたい理由です。
素人の言葉で:
personName
を渡す代わりに、「Peter」を渡すことができます。ブラックボックスでは、変数またはリテラルのどちらを渡したかがわかりません。ブラックボックス内に入ると、ブラックボックスの観点から見ると変数です。パラメータは、メソッド内にのみ存在する変数であり、メソッドに渡された値で自動的に初期化されます。
パラメータは特殊なタイプの変数として使用できますが、基本的な違いはscope:変数はローカル(現在のメソッド内にのみ存在)であるのに対し、パラメータは外部です:渡されます呼び出し元からメソッドに。つまり、パラメーターが参照によって渡される場合(基本的にすべてのオブジェクトタイプを含む)、メソッドが終了すると、パラメーターへの変更は呼び出し元のコードに反映されますが、ローカル変数に対して行われたことは、メソッドを超えて存続しません。 (もちろん、他の場所に渡されて保存されない限り)。