作者LaPass (LaPass)
看板java
標題Re: [問題] static & private
時間Thu Aug 4 00:01:18 2011
養成良好習慣
隨時隨地加上 this 或是 物件名稱
可以讓自己比較了解這個東西的觀念
也能讓自己知道自己正在用什麼東西
我也是
剛從C#跳槽過來的Java新手,大家一起來努力學習 ^^"
http://ppt.cc/zFR5
簡單來講
前面沒加 static 的欄位、方法
你可以把它當成像是一個「模子」
要使用時,必須先從先用模子製造出一個實際存在的東西後,才能使用
物件 新物件 = new 物件();
↑
像這樣用「物件」這個模子去製造出一個「新物件」
之後才能
新物件.動態方法();
新物件.動態欄位;
去使用這個東西
反過來說,前面有加static 的欄位、方法
就把它當成是「公佈欄」那樣的東西
每個人都去貼公告、塗鴉,而且看的、摸到的都是同一個公布欄
不管是哪個物件、哪個一個方法,甚至是外部其他的class
只要用
物件.靜態欄位;
物件.靜態方法();
使用到的都是同一個欄位、方法。
※ 引述《ctr1 (【積π】)》之銘言:
: public class FirstSample{
: static int a;
: private int b; //前面沒有static
: private void counter(){
: int z;
: z=12;
: System.out.println("b="+b); //那這行為什麼可以執行
: }
: public static void main (String args[]){ //因為這個字
: int i=1,x=2;
: System.out.println("i="+i);
: System.out.println("x="+x);
: System.out.println("b="+b); //不能執行
: System.out.println("a="+a);
: FirstSample abc=new FirstSample();
: abc.counter();
: }
: }
: 第13行不能執行,第7行為什麼可以執行?
: 書上的解釋還是不清楚,我是個新手 Q_Q
: 請板上的前輩幫我解答
: 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.233.157.84
→ KarlJhan:為什麼不試著從complier的行為去解釋@@? 08/04 06:24
→ LaPass:因為在學語法的時候,我根本不會想去知道底層到底在幹什麼 08/04 07:56
→ LaPass:雖然,寫程式寫久後,多多少少也會知道底層在幹什麼。 08/04 07:59
→ LaPass:但學寫程式時,我覺得先能夠寫東西來比較重要。 08/04 08:02
→ KarlJhan:多少還是得瞭解一點,不然真的有人能聽的懂 靜態、動態? 08/04 08:10
→ Aussie0117:同意樓上說法....應該以compiler的角度去說明會比較好 08/05 22:07
推 a1234957:多少還是要了解JVM怎麼運作的 08/06 00:49
推 a1234957:靜態動態真的要以compile期間來說明會比較清楚 08/06 00:52
推 a1234957:建議是這樣,不要排斥底層... 08/06 00:59
推 lachtchlee:ppt.cc/zFR5 寫 class 物件{ 觀念錯 >>class NAME{ 08/06 20:34
推 lachtchlee:CLASSNAME referenceOfObject = new CLASSNAME(); 08/06 20:38
推 lachtchlee:嚴格的激怒 才會變成真正的高手 歡迎再reply 08/06 22:51
→ a1234957:一般來說 instance才稱為object 08/06 23:57