[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12709] 議事録「 Java 言語仕様第3版」を読む会(第 4 回)



遠藤です。

「 Java 言語仕様第3版」を読む会(第4回)の
議事録をお送りします。

-- 
// Y. Endoh


‹cŽ–˜^uJavaŒ¾ŒêŽd—l ‘æ‚R”Łv‚ð“Ç‚Þ‰ïi‘æ4‰ñj

oÈŽÒF‚‹´i’qjA‚‹´i“OjAŠâŽºAªŒ³A‘ºãA
        ‘ºŽRA—L‰êA‰““¡A¼‰iA¬¼A•Ÿ‰ªAŽR“àAÎ•
“Ç‚ÝŽèF‚‹´i’qjA‚‹´i“OjAŠâŽº
‘‹LF‰““¡

E7.5.2

ƒCƒ“ƒ|[ƒg‚Ì‚Æ‚«‚É
.‚â;‚Ì‘OŒã‚ɃXƒy[ƒX‚ð“ü‚ê‚ç‚ê‚é‚©
;‚Ì‘O‚È‚ç‘åä•vA‰üs‚à‘åä•v

P147‚Ì6s–ځAun‚Æ‚¢‚¤–¼‘O‚́`v‚Ì’i—Ž‚ð
ƒR[ƒh‚É‚µ‚Ä‚Ý‚½B

ƒRƒ“ƒpƒCƒ‹’PˆÊc
package p
import static xxx.n; // static ƒCƒ“ƒ|[ƒgéŒ¾ dAn‚̓tƒB[ƒ‹ƒh
import static yyy.*; // n‚à“ü‚Á‚Ä‚­‚é‚Æ‚·‚é
class Foo {
      ...
      n  // xxx.n‚ªŽQÆ‚³‚ê‚é
}  

9s–ځ`
package p;
import static Hoge.n; // staticƒCƒ“ƒ|[ƒgéŒ¾ dAƒVƒOƒlƒ`ƒƒs‚̓ƒ\ƒbƒh–¼n
import static yyy.*; //  signature s, name n ‚ª“ü‚Á‚Ä‚­‚é‚Æ‚·‚é


[h‘è] u“¯‚¶–¼‘O‚ƃVƒOƒlƒ`ƒƒ‚Æ‚È‚é•¡”‚̃ƒ\ƒbƒhv‚Í‚Ç‚¤‚¢‚¤ˆÓ–¡‚©H
Œ´•¶useveral methods with the same name and signaturev
¨ ˆÈ‰º‚̃Nƒ‰ƒX\¬‚ŁABar.hoge‚ðstaticƒCƒ“ƒ|[ƒg‚µ‚½ê‡‚ł́H
class Foo {
    public static void hoge() { System.out.println("Foo.hoge"); }
}
class Bar extends Foo {
    public static void hoge() { System.out.println("Bar.hoge"); }
}



7.6

TypeDeclaration‚́Au;v‚¾‚¯‚Ő¬—§‚·‚é‚Ì‚©B

Šg’£Žq.jav‚Ƃ͉½‚©H
->DOSŒü‚¯‚ł́H

7.7
ƒ[ƒJƒ‹‚©‚ÂŽb’è“I‚ȃpƒbƒP[ƒW–¼‚É‚æ‚éƒpƒbƒP[ƒW‚̏W‡‚ðA
`Ž©“®•ÏŠ·‚·‚é•û–@‚ð’ñ‹Ÿ‚·‚邱‚Æ‚ª–]‚Ü‚µ‚¢
  ‰½‚ðŒ¾‚Á‚Ä‚¢‚é‚Ì‚©H

‹‘å‚ȃpƒbƒP[ƒW‚̃cƒŠ[‚Í‚Ç‚¤ŠÇ—‚·‚ׂ«‚©H
‚Ç‚±‚©‚É“o˜^‚·‚éêŠ‚Í‚È‚¢‚Ì‚©
Šî–{‚̓hƒƒCƒ“–¼BŒÂlŒü‚¯‚̃hƒƒCƒ“–¼’ñ‹ŸƒT[ƒrƒX‚È‚Ç‚à‚ ‚éB
jp.gr.java_conf.conf‚ª•t‚­

ƒpƒbƒP[ƒW–¼‚Í
foo.bar.555
‚̂悤‚É•”•ª“I‚ɐ”ŽšŽn‚Ü‚è‚Í‚Ç‚¤‚¾‚낤H
-> ‘½•ªA‘ʖڂł́H

¡‚ł̓pƒbƒP[ƒW–¼‚ð•Ï‚¦‚é‚Ì‚ªŠÈ’P‚Ȃ̂ŁA
Å‰‚Í“K“–‚ȃpƒbƒP[ƒW–¼‚ÅŽn‚ß‚Ä
ŒöŠJ‚·‚é’¼‘O‚É‚È‚Á‚Ä•Ï‚¦‚ç‚ê‚éB

ƒpƒbƒP[ƒW–¼‚ªŒ´ˆö‚сƒ“ƒeƒiƒ“ƒX‚Å‚«‚È‚­‚È‚é‚æ‚è
ƒXƒpƒQƒbƒeƒBƒvƒƒOƒ‰ƒ€‚ªŒ´ˆö‚ɂȂ邱‚Æ‚ª‘½‚¢

8.

finalƒƒ\ƒbƒh‚͉B•Á‚Å‚«‚È‚¢‚Æ‚Í‚Ç‚¤‚¢‚¤ˆÓ–¡‚©
static final‚ł́H

ƒCƒ“ƒXƒ^ƒ“ƒX‰Šú‰»Žq‚Æ‚Í‚È‚É‚©H
class Foo { 
  {
    // ‚±‚ê
  }
}

p154‚Ì2s–ځAƒX[ƒp[ƒCƒ“ƒ^ƒtƒF[ƒX‚Æ‚Í‚Ç‚¤‚¢‚¤ˆÓ–¡‚©H
‚»‚̃ƒ\ƒbƒh‚ðƒI[ƒo[ƒ‰ƒCƒh‚·‚é‚Ƃ́H

8.1

8.1.1

ƒAƒmƒe[ƒVƒ‡ƒ“‚Ípublic‚È‚Ç‚ÌŒã‚É‚à‘‚¯‚é‚炵‚¢B
(ŠµK‚É‚Í”½‚·‚é)

8.1.1.1
p156‚̉º‚©‚ç6s–ڂ̕ϐ”Point‚ÍŒëAH
Œ´•¶‚ł́Aua Point variablev
–ó‚Æ‚µ‚Ä‚ ‚Ü‚è‚æ‚낵‚­‚È‚¢‚̂ł́H
uPointŒ^‚̕ϐ”v‚©uPoint•Ï”v‚ ‚½‚è‚ł́B
¨ –óŽÒ‚É•ñ

8.1.2
p159‚̃R[ƒh‚ª‚æ‚­•ª‚©‚ç‚È‚¢
[h‘è] ŠeŽ©ŽÀs‚µ‚Ă݂āAŒ‹‰ÊEŠ´‘z‚ðML‚É•ñ‚·‚éB
[h‘è] ŠÖ”Œ^Œ¾Œê‚ŁA‚¢‚©‚ɃVƒ“ƒvƒ‹‚É‚È‚é‚©ŽÀ‘•‚·‚éB

8.1.3

uŽš‹å“I‚ÉŒ©‚Än”Ԗځv‚̈Ӗ¡‚ª—Ç‚­•ª‚©‚ç‚È‚¢B
¨”ԍ†‚̐”‚¦•û‚́A“à‘¤‚©‚çŠO‘¤‚¾‚낤

8.1.4
zŠÂéŒ¾‚³‚ꂽƒNƒ‰ƒX‚̃[ƒh‚ÅClassCircularityErorr‚ª”­¶‚·‚é‚Æ‚ ‚邪
‚»‚̂悤‚È‚±‚Æ‚Í‹N‚±‚é‚Ì‚©H
¨ •ÊX‚Ì‚Æ‚±‚ë‚ŃRƒ“ƒpƒCƒ‹‚³‚ꂽƒNƒ‰ƒXƒtƒ@ƒCƒ‹‚ð‚Ü‚º‚ê‚΋N‚±‚é

8.1.5
C#‚ł̓Cƒ“ƒ^ƒtƒF[ƒX‚Ì‘½dŒp³‚ŃVƒOƒiƒ`ƒƒ‚ª‚Ԃ‚©‚éê‡‚Å‚à
ŒÄ‚Ô‘¤AŒÄ‚΂ê‚鑤‚ª‹æ•Ê‚Å‚«‚é‚悤‚É‚È‚Á‚Ä‚¢‚éB

;‚̓ƒ“ƒoéŒ¾‚̈êŽí‚Å‚ ‚éB
for‚âif‚̃Cƒ“ƒfƒ“ƒgƒŒƒxƒ‹‚ð•\Œ»‚·‚é‚Ì‚É
;‚ðc‚ɂ‚Ȃ°‚邱‚Æ‚ª‰Â”\

8.2
Œp³‚³‚ê‚郁ƒ“ƒoAƒfƒtƒHƒ‹ƒg‚̉Ž‹«‚¾‚Á‚½‚ç‚Ç‚¤‚È‚éH
¨ ƒpƒbƒP[ƒW‚ð‚Ü‚½‚ª‚é‚©‚Ç‚¤‚©‚ÅŒˆ‚Ü‚é

publicƒNƒ‰ƒX‚̐eƒNƒ‰ƒX‚ªApackage privateƒNƒ‰ƒX‚É‚·‚é‚Ì‚Í
C++‚ÌprivateŒp³‚ɏ­‚µŽ—‚Ä‚¢‚éB
¨ C++‚ÌprivateŒp³‚Ƃ͉½‚©
¨ Œp³‚Í‚µ‚Ä‚¢‚邪AŒp³‚µ‚Ä‚¢‚邱‚Æ‚ðŠO‚ÉŒ©‚¹‚È‚¢Œp³B

8.3
VariableDeclaratorId‚ªAÄ‹A’è‹`‚É‚È‚Á‚Ä‚¢‚é‚Ì‚Í‚È‚ºH
¨ []‚𕡐”‰ñŒJ‚è•Ô‚µ‚āA‘½ŽŸŒ³”z—ñ‚ðéŒ¾‚·‚邽‚ß

[h‘è] p174‚̍Ōォ‚ç5s–ځAu—Ⴆ‚Αo•û‚̃Nƒ‰ƒX‚ª`v‚Ì—á‚ð2‚‚قÇ

8.3.1
ŽQÆ•Ï”.ƒXƒ^ƒeƒBƒbƒNƒtƒB[ƒh‚̂悤‚ȃAƒNƒZƒX‚ª‚Å‚«‚é‚Ì‚Í‚È‚º‚©

8.3.2
P181‚Ì int k = j = j + 1 ‚̓Gƒ‰[BŒëAî•ñ‚ªã‚ª‚Á‚Ä‚¢‚éB

InstanceInitializer‚ðŽg‚¤‚±‚Æ‚Í‚ ‚é‚©H
¨ –³–¼ƒCƒ“ƒ^[ƒNƒ‰ƒX‚ŃRƒ“ƒXƒgƒ‰ƒNƒ^‚Ì‘ã‚í‚è‚ɁB

8.3.3

int mt()[] ‚̂悤‚ɏ‘‚­‚ƁAint‚Ì”z—ñ‚ð•Ô‚¹‚éB
ŒÝŠ·«‚Ì‚½‚߂Ȃ̂ŁAŽg‚¤‚ׂ«‚Å‚È‚¢B

P188‚ÌLastFormalParameter‚Ì’è‹`‚ŁA
Type...opt‚Æ‚ ‚邪Aopt‚Í•s—v‚ł́H
‚ ‚é‚¢‚Í
Type ...opt‚Æ‚µ‚āAFormalParameter‚ðíœ
‚Å‚à—Ç‚³‚»‚¤B

ŽŸ‰ñ‚ÍP189 u8.4.2 ƒƒ\ƒbƒh‚̃VƒOƒlƒ`ƒƒv‚©‚ç