C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: 参照とは


(過去ログ 65 を表示中)

[トピック内 16 記事 (1 - 16 表示)]  << 0 >>

■37857 / inTopicNo.1)  参照とは
  
□投稿者/ 初太郎 (1回)-(2009/07/02(Thu) 09:29:43)

分類:[.NET 全般] 

プログラミング用語で「参照する」という言葉がでてきますが
意味がいまいちしっくり理解できていません。

具体的にわかりやすくおしえてもらえたら有り難いです。
ちなみにVB2008 5ヶ月
引用返信 編集キー/
■37860 / inTopicNo.2)  Re[1]: 参照とは
□投稿者/ .SHO (911回)-(2009/07/02(Thu) 09:48:39)
基本的には日本語のままです。

それが実際に使われている文章を提示された方が回答しやすいです。
引用返信 編集キー/
■37861 / inTopicNo.3)  Re[2]: 参照とは
□投稿者/ 初太郎 (2回)-(2009/07/02(Thu) 09:58:04)
No37860 (.SHO さん) に返信
> 基本的には日本語のままです。
>
> それが実際に使われている文章を提示された方が回答しやすいです。

クラスの変数を宣言すると、オブジェクトへの参照を保存するための領域が確保され
ますが、オブジェクト自体は生成されません。このためNEWキーワードを利用してオブジェクト
を生成する必要があります。


「オブジェクトへの参照を保存するための領域」この部分が?です
引用返信 編集キー/
■37862 / inTopicNo.4)  Re[3]: 参照とは
□投稿者/ ぱぱいやん (47回)-(2009/07/02(Thu) 10:03:32)
ぱぱいやん さんの Web サイト
No37861 (初太郎 さん) に返信
> ■No37860 (.SHO さん) に返信
>>基本的には日本語のままです。
>>
>>それが実際に使われている文章を提示された方が回答しやすいです。
>
> クラスの変数を宣言すると、オブジェクトへの参照を保存するための領域が確保され
> ますが、オブジェクト自体は生成されません。このためNEWキーワードを利用してオブジェクト
> を生成する必要があります。
>
>
> 「オブジェクトへの参照を保存するための領域」この部分が?です

Excel 使えますか?
できる前提で進めます。
Excelのセルには「5」のような値と、「=a1」のように別の場所のセルの値を参照を保持することができますよね?
参照型の場合は「=a1」という値を「スタックメモリ」という場所に保持して、実際の「a1」に格納されている値は「ピープメモリ」という場所に保持します。
ですから、「=a1」のような参照先の値を別の変数にコピーすると、どちらの変数も「a1」の値を参照することになります。
引用返信 編集キー/
■37863 / inTopicNo.5)  Re[3]: 参照とは
□投稿者/ .SHO (912回)-(2009/07/02(Thu) 10:05:33)
> 「オブジェクトへの参照を保存するための領域」この部分が?です

確かにわかりにくい日本語ですね。^^;
どこに書いてあったんですか?
引用返信 編集キー/
■37864 / inTopicNo.6)  Re[4]: 参照とは
□投稿者/ Q3 (19回)-(2009/07/02(Thu) 10:20:22)
・クラスの変数を宣言だけする。
・newしないで、デバッグ実行中に適当なところでブレーク
↑これやってみて、変数がどうなっているか見てみてはいかが?

その後、変数をnewして適当な値をセットして
同じ事をやってみると何かが見えてくるかも?


Cのポインタを理解するのに自分は相当苦労しました・・・・
参照ってなんだよ????状態で仕事やらされて2ヶ月も納期遅れて
怒られたのはいい思い出です・・・・・orz

引用返信 編集キー/
■37865 / inTopicNo.7)  Re[4]: 参照とは
□投稿者/ 初太郎 (3回)-(2009/07/02(Thu) 10:21:54)
No37862 (ぱぱいやん さん) に返信

> Excel 使えますか?
はい、普通レベルで使えます
> できる前提で進めます。
> Excelのセルには「5」のような値と、「=a1」のように別の場所のセルの値を参照を保持することができますよね?
> 参照型の場合は「=a1」という値を「スタックメモリ」という場所に保持して、実際の「a1」に格納されている値は「ピープメモリ」という場所に保持します。
> ですから、「=a1」のような参照先の値を別の変数にコピーすると、どちらの変数も「a1」の値を参
>照することになります。
「参照を保持」するという部分も?です。
すみません。

ちなみに「参照」は
二つ以上のものの異同などを調べるため、見比べる。照合する。 という意味ですよね
使い方としては「台帳と在庫品とを―・せる」


>確かにわかりにくい日本語ですね。^^;
>どこに書いてあったんですか
VB2008入門(笠原一浩著)です

引用返信 編集キー/
■37866 / inTopicNo.8)  Re[3]: 参照とは
□投稿者/ よねKEN (367回)-(2009/07/02(Thu) 10:22:04)
2009/07/02(Thu) 10:26:14 編集(投稿者)

辞書によれば「参照」とは、
「さんしょう ―せう 0 【参照】
(名)スル 他のものと照らし合わせてみること。 」
という意味らしいです。しかし、この辞書の意味そのままでは、
件の文脈は理解できませんね。というわけで例示で説明してみます。

No37861 (初太郎 さん) に返信
> クラスの変数を宣言すると、オブジェクトへの参照を保存するための領域が確保され
> ますが、オブジェクト自体は生成されません。このためNEWキーワードを利用してオブジェクト
> を生成する必要があります。

「参照」は、本体を指し示すもの、です。

例えば、私のこの投稿では、No37861という投稿No(この掲示板で明確にどの投稿かを示すことができます)を使って、前の初太郎さんの発言を「参照」しています。

・オブジェクト=投稿そのもの
・オブジェクトへの参照=投稿を指し示すもの(=ここでは投稿No)

となります。
つまり、ここでの例で言うとこの投稿Noを保存するための領域を確保する、
ということです。領域とは正確にはメモリ領域ですね。
メモリ上の一角にこの投稿Noを保管しておく場所を確保する、ということです。

「NEWキーワードを利用してオブジェクトを生成する」の部分は、
メモリ上の別の一角に保管するための領域が確保して、
投稿文本体を作成する、と説明できるでしょうか。

引用返信 編集キー/
■37867 / inTopicNo.9)  Re[5]: 参照とは
□投稿者/ .SHO (913回)-(2009/07/02(Thu) 10:35:19)
> ちなみに「参照」は
> 二つ以上のものの異同などを調べるため、見比べる。照合する。 という意味ですよね
> 使い方としては「台帳と在庫品とを―・せる」

二つの物を比較するようなイメージではなく、見るというふうに考えてはどうでしょう?
「23ページを参照」って言った場合、23ページと比較するわけではなく
そこを見る、つまりまさに参照するわけですよね。

引用返信 編集キー/
■37883 / inTopicNo.10)  Re[5]: 参照とは
□投稿者/ ぱぱいやん (48回)-(2009/07/02(Thu) 14:02:01)
ぱぱいやん さんの Web サイト
No37865 (初太郎 さん) に返信
> ■No37862 (ぱぱいやん さん) に返信
>
>>Excel 使えますか?
> はい、普通レベルで使えます
>>できる前提で進めます。
>>Excelのセルには「5」のような値と、「=a1」のように別の場所のセルの値を参照を保持することができますよね?
>>参照型の場合は「=a1」という値を「スタックメモリ」という場所に保持して、実際の「a1」に格納されている値は「ピープメモリ」という場所に保持します。
>>ですから、「=a1」のような参照先の値を別の変数にコピーすると、どちらの変数も「a1」の値を参
> >照することになります。
> 「参照を保持」するという部分も?です。

例えば、b1 に「=a1」と入力した時、「a1」のセルの値を「b1」が参照することになります。
したがって、a1 の値を直接入力すると、b1に表示される値も変化します。
この時、b1 には a1 の値がコピーされているのではなくて「a1 の値を参照しなさい」という意味の「=a1」が値として記述されていることになります。

参照型のイメージは、上記の動作にとても良く似ています。
引用返信 編集キー/
■37891 / inTopicNo.11)  Re[5]: 参照とは
□投稿者/ 倉田 有大 (671回)-(2009/07/02(Thu) 14:50:05)
参照とは参照しています。

もう、こればっかは体で覚えないといけないかも。
C言語でポインターの勉強するのも面白いかもしれないけど、.NETで逆に混乱するかも。
引用返信 編集キー/
■37908 / inTopicNo.12)  Re[6]: 参照とは
□投稿者/ やじゅ (1069回)-(2009/07/02(Thu) 17:38:08)
やじゅ さんの Web サイト
メモリ上のイメージを図にすると下のようになります。
(便宜上、文字列 "abc"の先頭アドレスを100と仮定しています。)

                                    アドレス
                ┏━━━━┓         100  ┏━━━━━━━━┓
 ポインタ変数s ┃  100   ┃              ┃    a (61h)     ┃e(65h)に書換え 
                ┗━━━━┛         101  ┣━━━━━━━━┫
                                          ┃    b (62h)     ┃()の中はASCIIコード
                                     102  ┣━━━━━━━━┫
                                          ┃    c (63h)     ┃
                                          ┗━━━━━━━━┛

変数Sには、100の値がセットされています、これはアドレス100を指定しており、
この中の値として、a (61h)の値を取得できます。
変数Sに102の値がセットされれば、c (63h)の値が取得できます。

参照するという意味で言うと、変数Sはアドレス100を指し示して(参照)います。
アドレス100の中身をeの値に変更した場合、aではなくeの値が取れます。

>クラスの変数を宣言すると、オブジェクトへの参照を保存するための領域が確保され

クラスの変数をSとした時、NEWキーワードを使うと、上記の図のようなアドレス領域が
確保されます。アドレスの中身には、オブジェクトの位置を示すアドレス値がセット
されます。(参照のさらに参照)

引用返信 編集キー/
■37912 / inTopicNo.13)  Re[5]: 参照とは
□投稿者/ biac (141回)-(2009/07/02(Thu) 18:57:51)
biac さんの Web サイト
ぁあ、 これも悪訳の弊害か…?

No37865 (初太郎 さん) に返信
> ちなみに「参照」は
> 二つ以上のものの異同などを調べるため、見比べる。照合する。 という意味ですよね
> 使い方としては「台帳と在庫品とを―・せる」

本来の日本語としては、 そうです。

プログラミング関連で分からない日本語が出てきたら、 原語を調べてみるのもいいですよ。
# …って、 最初のうちは、 英語でなんと言うのかを調べるのもタイヘンですが。 f(^^;

その「参照」の原語は reference ですね。
EXCEED英和辞典 より、
http://dictionary.goo.ne.jp/leaf/ej2/60379/m1u/reference/
/*
━━ n. 参照; 参考(書,文献); 参照符 ((* † §など)); 引用文; 出典(指示); 言及 ((to)); 関係 ((to));
*/

訳語の先頭に 「参照」 が出ていますが、 この場合は、 本文中の言葉に脚注を結びつけるための「参照符 ((* † §など))」という意味のほうが近いでしょう。

「オブジェクトへの参照を保存するための領域が確保されます」
 ↓
「オブジェクトへの参照符を保存するための領域が確保されます」 …と書いてあったら、 まだイメージは掴みやすいでしょうか。
※ でも、 「参照符」って書いちゃダメですよ。 「参照」と訳す慣習になっちゃってますから。
引用返信 編集キー/
■37936 / inTopicNo.14)  Re[7]: 参照とは
□投稿者/ とりの (2回)-(2009/07/03(Fri) 09:46:31)
2009/07/03(Fri) 09:47:43 編集(投稿者)

ここでいう参照っていうのは、たとえで言うと

別の本棚からAAAっていう本を持ってきて
それをコピーして手元でいつでも使えるようにするよ

ってこと
それを踏まえると

オブジェクトへの参照を保存するための領域

コピー用紙(AAA本を参照(コピー)するための保存用の紙)

NEWキーワードを利用してオブジェクトを生成する

コピーしてできあがった本

という感じになります。
引用返信 編集キー/
■37962 / inTopicNo.15)  Re[8]: 参照とは
□投稿者/ 通りすがり (49回)-(2009/07/03(Fri) 20:50:44)
No37936 (とりの さん) に返信
参照とコピーは違います。
本という実体が2冊できるのは良くない例えに思います。

参照を説明する上で重要なのは、実体は1つでそれを
複数の場所から参照する形が可能という点です。

例えば葉書に書かれた住所とその住所に建ってる家とか。
本を例えにするなら蔵書録と本棚の本とか。蔵書録を
コピーしても辿り付く本の実体は1つです。


また、インスタンスの生成としても良くない例えに思います。
クラスはインスタンスを生成するまで使用できません。
AAA本とコピー本が同じ機能を持っていると意味が無いです。
例えば、どちらも手にとって読めるのではインスタンスの
説明になりません。

紙の設計書と実際に部品で組み立てられた機械とか。


こういった意味でも、コピーはインスタンスを生成した後に
同じ内容のインスタンスを複製するときに使うのが適当な
言葉で、参照の説明としては不十分と考えます。
引用返信 編集キー/
■37972 / inTopicNo.16)  Re[9]: 参照とは
□投稿者/ 初太郎 (4回)-(2009/07/05(Sun) 06:36:44)
「参照」何となくわかってきました。
そういえばビデオ編集にはまっていたときに参照ファイルというのがでてきました。

http://www.thomson-canopus.jp/column/ref-avi/ref-avi2.htm

この参照と意味はほぼ同じということですね。きっと

みなさまのアドバイス感謝します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -