又再次入門了 Java

Ching Yi, Chan
Sep 28, 2023

--

近期搭著 ITHOME 鐵人賽與 JCConf 2023 宣傳期的氣氛弄了個簡單的 Java 教學。

雖然自己已經離「初學」時期有一點久遠,但持續累積了不少引導的經驗後,現在回頭看學習材料會驚覺,原來我習慣的表達方式或學習策略,在經歷了多年後已經跟書上有著明顯的不同。特別是基礎的「資料型別」的部分。

儘管現在較新的語言已經不太區分原生型別 primitive type 與其他自訂型別,以 Java 來說就是 reference type 也就是類別。無論是何種情況,入門用的書籍或是影音教材都會有教到這個單元。

我發現我自己傾向在介紹或是「傳遞知識」的時候,往往喜歡把它們一起揉起來傳授。

原生型別 → 可以使用簡單運算子的型別在算式 (expression) 之內

+ - * / > < ==

https://openhome.cc/zh-tw/java/syntax-abc/operator/

在不考慮特殊的情況下,像是多數語言對 String 型別有特別的優待,他即可以做 method call 也可以有基本的加法運算。這類的特例先不納入討論的情況,當學習者拿到一個變數,心中的思考模式只要簡單地判斷:

  1. 它是一個原生型別嗎?
  2. 如果它是一個原生型別,那我可以對它用的就是基本運算子。
  3. 如果他不是一個原生到別,那我可以對它用「非原生型別的運算子」

那麼,麼是非原生型別的運算子呢?也就是我們有哪些選項可以對待它?以 Java 來舉例,那就是 property access 或 method invoaction。

所謂的 access 就是 read 或 write。例如,我們可以「讀取」foobar 變數的 field1 屬性:

foobar.field1

「寫入」與讀取的語言相近,只是多了「賦值」的動作:

foobar.field1 = "富爸";

除了 access 之外,就是呼叫方法 (method invocation):

foobar.method1();

呼叫方法跟 read 相似,但多了一對的小括弧 (),而這小括弧內可以再放新的參數進去,這參數又是「原生型別」或「非原生到別」的組合。

基於上述簡單的判斷策略,後來我在引導新手入門,或引導自己入門新的語言,我大概都先去弄清楚這個基本的規則。至於那些一個資料型別佔多少空間或合理的值域是什麼?這些查表就有的事不太需要花費心力。運用這些簡單的思路,自己體感減少了許多學習新的程式語言時的心理負擔。

有哪些東西也是大家在「經歷了多年後」反思過,覺得用它來教別人會更有效率的思路呢?

相關連結

Sign up to discover human stories that deepen your understanding of the world.

--

--

No responses yet

Write a response