Your SlideShare is downloading. ×
参照型 - Java入門
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

参照型 - Java入門

415
views

Published on

Published in: Technology, News & Politics

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
415
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 参照型の変数 java 入門 2013/09/16 再配布、再利用はご自由に 13年9月16日月曜日
  • 2. 改版履歴 •2013/09/16 配列に関する説明を追加 13年9月16日月曜日
  • 3. 復習:変数とは •データ(値)を一定期間、保存し必要 なときに利用できる記憶エリアで値は 一つしか保存できない。変数には型と 名前がある。変数の値は変更すること ができる。 13年9月16日月曜日
  • 4. Javaの変数 •2つの型がある 1. プリミティブ型 (今回は説明なし) 2. 参照型 13年9月16日月曜日
  • 5. 参照型の種類 •クラス型 •インタフェース型 •配列型 13年9月16日月曜日
  • 6. クラス型 (文字列) 13年9月16日月曜日
  • 7. 参照って? 参照値 String s = new String( hello world ); 変数 s hello world 文字列オブジェクト 変数「s」には、 hello world オブジェクトを特定する値(参照値)が 格納されている 13年9月16日月曜日
  • 8. なんでこんな めんどうなことを? 13年9月16日月曜日
  • 9. 変数に保存出来る値は 一つだけ! char c = h h 変数には文字一個は保存できる 変数 c String s = hello world hello world 変数に2個以上の文字は入らない!!! 変数 s 13年9月16日月曜日
  • 10. 代わりに文字列を 指す値(参照値)を 変数に格納 13年9月16日月曜日
  • 11. 参照値の取得 • Javaでは参照値を操作することはない ため、プログラマが参照値そのものの値 を知ることはできなくなっていますが、 Systemクラスの identityHashCode() メソッドを使えば、オブジェクトの内部 アドレス(参照値)を整数値に変換した 値を取得できます。 13年9月16日月曜日
  • 12. 参照値を使って操作 参照値 String s = hello world ; System.out.println( s is + s); 変数 s hello world 文字列オブジェクト 13年9月16日月曜日
  • 13. public class TypeSample { public static void main(String[] args) { String s1 = new String("hello java"); String s2 = s1; String s3 = new String("hello java"); System.out.println("s1 == s2 is " + ( s1 == s2 )); System.out.println("s1 == s3 is " + ( s1 == s3 )); System.out.println("s1.equals(s3) is " + s1.equals(s3)); } } 実行結果 s1 == s2 is true s1 == s3 is false s1.equals(s3) is true なぜ false? 13年9月16日月曜日
  • 14. デバッガーで確認 14 idの値に注目! 13年9月16日月曜日
  • 15. 参照値 変数  s1 hello java 文字列オブジェクト(id:17) 参照値 変数  s2 hello java 文字列オブジェクト(id:23) 参照値 変数  s3 s1 == s3 参照値 参照値== 変数  s1 変数  s3 参照値を比較している 文字列は同じでも 違うオブジェクト 注:idは実際の参照値とは異なるが、説明を簡単にするために用いている 13年9月16日月曜日
  • 16. 文字列の比較は == じゃない 13年9月16日月曜日
  • 17. equalsメソッドを使う String s1 = new String( foo ); String s3 = new String( bar ); boolean val = s1.equals(s3) s1がs3と同じ文字列かを判定 13年9月16日月曜日
  • 18. 配列型 13年9月16日月曜日
  • 19. 配列の宣言 値1 値2 値3 値4 値5 配列の実体 参照先 変数 a // 1)配列の変数a を宣言 int[] a; // 2) 配列の実体を作って // 参照値をaに代入 a = new int[5] a[0] a[1] a[2] a[3] a[4] 13年9月16日月曜日
  • 20. 参考資料 • http://www.okapiproject.com/java/ java_ref/foundation/manual_06.htm#a2_1 • http://www.y-adagio.com/public/ standards/tr_javalang/4.doc.htm#9317 • http://www.nomachetejuggling.com/ 2008/06/04/getting-a-java-objects- reference-id/ 13年9月16日月曜日