New Ribbon
翻倍效率工作術–詢問度破表的Office職人技500+ iOS 11+iPhone 8 / 8Plus / X / iPad 完全活用術:225個超進化技巧攻略 翻倍效率工作術:不會就太可惜的Excel+Power BI 大數據視覺圖表設計與分析 會做簡報就會製作跨平台 App:Smart Apps Creator 3 超神開發術 快快樂樂學威力導演15 - 影片/MV剪輯活用情報特蒐 Excel 2016高效實用範例必修16課-善用資料圖表 x 函數巨集的精算達人 中老年人愛用APP全收錄(第二版)<適用iOS+Android雙系統手機及平板 中老年人快樂學拍照、攝影 生活科技應用網路概論(第二版) 中老年人快樂學電腦(Windows 10+Office 2016) 中老年人快樂學Facebook+LINE 翻倍效率工作術:不會就太可惜的Google超極限應用(第二版) 翻倍效率工作術:不會就太可惜的Excel必學圖表 翻倍效率工作術:不會就太可惜的Excel必學函數

 

  Android初學特訓班

讀者

讀者
更新時間:2017/8/24 下午 05:00:25

 

1.關於第九章範例ExIntent01裏頭有
"private void requestPermission()","public void onRequestPermissionsResult(int requestCode, String[] permissions,int[] grantResults)","private Button.OnClickListener myListner = new Button.OnClickListener()"
不太確定private跟public的使用時機,以這個範例來說這些宣告是唯一的嗎?

2.書上曾經提到(3-27)全域變數要加private,不知道全域變數是否可加public?因為最近翻到書上10-17提到全域物件是加pubic

3.對於宣告public,private,protected如果想更進一步了解,不知道老師有沒有推薦學習的地方,謝謝老師!

文淵閣工作室

文淵閣工作室
更新時間:2017/8/26 上午 09:35:57

 

感謝您的支持。
在單一 .java 檔中(假設是 MainActivity.java),在 onCreate() 方法外宣告 private 的變數都是全域變數,
若在方法內宣告的 private 變數則為該方法的區域變數。

"private void requestPermission()",
"public void onRequestPermissionsResult(int requestCode, String[] permissions,int[] grantResults)",
"private Button.OnClickListener myListner = new Button.OnClickListener()"

這些訂程序,若以 private 宣告(如 void requestPermission() 和 private Button.OnClickListener myListner)
這些程序就只能在 .java 檔內(MainActivity.java) 呼叫,其它的 .java 檔案,並無法呼叫使用。
如果宣告為 public ,那麼別的 .java 檔就可以呼叫使用了。

您可以在 Google 上搜尋 「java class 教學」,加強 Class 類別的觀念。

讀者

讀者
更新時間:2017/8/28 下午 03:33:59

 

謝謝老師的說明!
想再問一下在onCreate()方法外宣告public的變數和在方法內宣告的public變數都為全域變數嗎?還是在onCreate()方法外若要宣告全域變數只能加private呢?

文淵閣工作室

文淵閣工作室
更新時間:2017/8/30 下午 06:07:05

 

一個 android 的專案不一定只有一個 class,當有多個類別時,就有類別中的成員保護的問題,您可以參考這一篇文章。

http://luckyboy7527.pixnet.net/blog/post/97538839-%5B%E8%BD%89%E8%BC%89%5D-java%E4%BD%9C%E7%94%A8%E5%9F%9Fpublic-%2Cprivate-%2Cprotected-%E5%8F%8A%E4%B8%8D%E5%AF%AB


簡單的說,private 就是給自已使用但別人就不可以使用,而宣告 public 則是自已和別人都可以使用。而 protected 則是自已和自已一繼承者都可以使用,但
其他人不可以使用。

讀者

讀者
更新時間:2017/9/3 下午 07:20:23

 

謝謝老師的說明,建議在下一版可以稍微補充一些這些資訊,因為若對java沒有這麼熟悉的人,若單看書上3-27的說明可能會以為若要建立全域變數,變數前面就得加private,謝謝老師!




 

 

Re:Android初學特訓班

請輸入姓名。

已超出字元數目的最大值。


請輸入電子郵件。

格式無效。


請輸入內容。