找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
請尊重及感激所有版主付出和奉獻發表文章前請先閱讀相關版規認識好友、聊天,分享生活趣事
mgmega無碼火影流出gd中文
agent17諾蘭德三國志cawd 507my bustymidv 944紳士龍蝦

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

艾妃 胸部太大的困擾

霏霏黑歷史 做成人平

不死者之王 OVERLORD

[繁]孤單一人的異世界

[簡]重啟人生的千金小

[繁]孤單一人的異世界
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 5246|回復: 4
打印上一主題下一主題

[問題]有個java ,public and static 問題[複製鏈接]

b2581167 該用戶已被刪除
跳轉到指定樓層
樓主
發表於 2018-4-16 01:30 AM|只看該作者|倒序瀏覽
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
本帖最後由 b2581167 於 2018-4-16 01:30 AM 編輯

最近在學java因為之前已經學過c跟c++,
所以有先入為主的觀念,害我有點混淆
以下允許我用c的講法……
第一個問題是java每個函數都是被類別包著,
為什麼類別也可以定義static?
他有定義跟沒定義的差別是?
而且不只類別可以定義連函數也可以?
我知道在c裡面static 就很像全域的意思
...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 1

帖子
174
積分
181 點
潛水值
7190 米
頭香
發表於 2018-4-17 01:57 AM|只看該作者
首先,static 關鍵字的意義,Java 跟 C 很不一樣,所以你在 Java 裡面看見 static 的時候,先把 C 學到的東西忘掉吧。

Java 裡面有類別 Class 跟物件 Object 的概念,前幾天剛好有寫到:如果還不很清楚類別跟物件的差別,可以去想像紅龜粿的製作過程。class 就是那個模版,把麵糰塞進去敲一下就是一個物件(Object, 有時候叫實體 instance) 出來。

簡單來說 static 的變數跟著類別,非 static 的變數跟著物件。用上面的例子,static 的變數就是刻在模版上面
  1. class Foobar {
  2.     public static String sName = "Foobar";
  3.     public static String mName = "blah";
  4. }

  5. System.out.println(Foobar.sName);  // "Foobar", 即使沒有產生任何 instance 也能直接拿這個類別的變數來用
  6. Foobar a = new Foobar();
  7. Foobar b = new Foobar();
  8. a.mName = "A";
  9. b.mName = "B";        System.out.println(a.sName); // "Foobar"
  10. System.out.println(b.sName); // Foobar
  11. System.out.println(a.mName); // "A"
  12. System.out.println(b.mName); // "B"
  13. a.sName = "AAA";
  14. System.out.println(a.sName); // "AAA"
  15. System.out.println(b.sName); // "AAA"
複製代碼
public / private 用來修飾存取的權限,跟 static 與否是分開的概念。先把 static 的觀念釐清之後,對物件系統或類別繼承會比較清楚,這時候回頭看 public/protected/private 就會瞬間秒懂了。

「加 static 的差別在哪」大致上可以這麼回答:你如果覺得某個變數是某個類別,以及它所衍生出來的物件都要共有的,就把它加上 static 掛在類別上面。如果你覺得是每個衍生出來的徒子徒孫(物件)要分開區別的,就不要加上 static。

java 中的四種就是 public/protected/private/不寫用預設值,可以 google "Controlling Access to Members of a Class"

最後,在 inner/nested class 的情況下,才需要把它宣告成 static class。這已經是一個滿細微的議題了,我建議現在不要花時間理解這個 XD,我可以先說結論滿足好奇心:static class 的作用,跟一個獨立檔案的 class 檔是等價的,只是它寫的位置比較特別,寫在另外一個 class 檔案裡面而已。...
瀏覽完整內容,請先 註冊登入會員
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

Rank: 2Rank: 2

帖子
241
積分
299 點
潛水值
22810 米
3
發表於 2018-4-19 12:48 PM|只看該作者
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
C, 有 static function. 可能只是你沒有用到.

不過, 與JAVA的static, 行為不同.
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

Rank: 2Rank: 2

帖子
18
積分
767 點
潛水值
19090 米
4
發表於 2018-5-16 06:45 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
學到東西了!!謝謝分享~~

使用道具檢舉

帖子
46
積分
28 點
潛水值
15047 米
5
發表於 2020-4-4 12:46 AM|只看該作者
兩個之間的差別,也可以參考這篇文章...
stackoverflow.com/questions/45560770/how-access-specifier-affect-static-methods




如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部