Re: [J2SE] 想問一下有關System.out.println()的問題

看板java作者 (墳墓)時間15年前 (2010/03/13 08:01), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/5 (看更多)
※ 引述《s66449 (閒泡菜)》之銘言: : out是static 所以可以直接用類別名稱去呼叫 : 變成System.out 那因為後面的println並不是static : 為什麼可以直接加.println()呢?? : 跟out傳回值是PrintStream類別有關嗎? 你的觀念上還不夠清楚。 1. import 是改變 visibility,不是 accessibility 2. 你只要能夠 access 到 System.out,compiler 就已經知道 System.out 的型態是 PrintStream,進而知道他有 println 這個 method,所以不需 要 import。 這是 type inference 的概念,請見:http://0rz.tw/UUwe7 3. static 指的是 out 是 System 的 static variable,和 println 無關。 大致上你可以把 System.out 看成下面這樣。 class System { static PrintStream out = new PrintStream (....); } 所以 out 其實是一個 static variable,型態是 reference to PrintStream, 指到的是 PrintStream 『物件 (Instance)』。 如果 out 是一個 instance,你當然可以用 println 這個 instance method。 -- ~ 白馬帶著她一步步地回到中原。白馬已經老了,只能慢慢地走, 'v' Brian Hsu 但終是能回到中原的。江南有楊柳、桃花,有燕子、金魚…… // \\ ( 墳 墓 ) /( )\ 但這個美麗的姑娘就像古高昌國人那樣固執。 【白馬嘯西風】 ^`~'^ http://bone.twbbs.org.tw/blog 『那都是很好很好的,可我偏不喜歡。』 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.42.74

03/13 11:26, , 1F
謝謝講解
03/13 11:26, 1F
文章代碼(AID): #1BcjNeZz (java)
討論串 (同標題文章)
文章代碼(AID): #1BcjNeZz (java)