作者qrtt1 (有些事,有时候。。。)
看板Soft_Job
标题[心得] 又再次入门了 Java
时间Thu Sep 28 12:45:05 2023
网页好读版本
https://qrtt1.medium.com/learning-java-basic-again-88391fd4e14e
https://imgur.com/a/qa5DlyH
(基本概念图片支援)
近期搭着
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 相似,但多了一对的
小括弧 (),
而这小括弧内可以再放新的参数进去,这参数又是「原生型别」或
「非原生到别」的组合。
基於上述简单的判断策略,後来我在引导新手入门,
或引导自己入门新的语言,我大概都先去弄清楚这个基本的规则。
至於那些一个资料型别占多少空间或合理的值域是什麽?
这些查表就有的事不太需要花费心力。
运用这些简单的思路,自己体感
减少了许多学习新的程式语言时的心理负担。
有哪些东西也是大家在「经历了多年後」反思过,
觉得用它来教别人会更有效率的思路呢?
相关连结
* ITHOME 铁人赛观赛看版
https://bit.ly/46dVxPZ
* Java 幼幼班播放清单
https://bit.ly/3Z98CHL
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.161.193 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1695876308.A.A3C.html
1F:→ brucetu: 看完觉得java好罗嗦 有人写程式真的会思考是不是原生型别 09/28 18:34
2F:→ brucetu: 的问题吗 09/28 18:34
3F:→ wsad50232: java suck 09/28 18:36
4F:推 x246libra: 只要我看好java好找工作,开发速度不差吗?跟其他静态 09/28 18:37
5F:→ x246libra: 语言相比的话 09/28 18:37
6F:→ x246libra: 只要typo,只有 09/28 18:38
7F:→ nh60211as: 就Java设计烂 09/28 19:06
8F:推 SHANGOYANYI: Java真的是满满古早味XD 09/28 19:10
9F:→ AxelGod: 给你钱叫你写什麽就什麽 09/28 19:16
其实重点不是在原生型别本身,
而是先区分出哪些型态可以直接参与 expression 的运作呦。
因为初学者常常接到了一个值不知道如何是好,这是一个简单的判断思路。
在新的语言尽管没等别弄出原生型别,但能参与基础运作的部分熟悉了,
後续的应对方式都会相对简单,可以迅速地减少认知负担呦。
※ 编辑: qrtt1 (118.167.161.193 台湾), 09/28/2023 19:29:42
※ 编辑: qrtt1 (118.167.161.193 台湾), 09/28/2023 19:35:54
10F:推 ohmylove347: 可以用kotlin (误 09/28 19:38
11F:→ FlowerKnight: 有Kotlin还写什麽Java 09/28 20:49
12F:推 alihue: 推推 09/28 21:34
13F:推 love99067333: 从入门到放弃 09/29 02:16
14F:推 keroro01: 推个分享文 09/29 08:38
15F:推 pig0038: java suck, kotlin 比他好一百倍,考虑转 go 了 09/29 10:07
16F:嘘 hegemon: 一楼程度这样就不要说出来给人笑好吗.... 09/29 10:33
17F:→ sniper2824: 我觉得GO比较难搞.. 09/29 14:16
18F:推 jobintan: C#也差不了多少,不过大部分的游戏开发者,就是爱用C# 10/02 07:52
19F:→ jobintan: 。 10/02 07:52
20F:推 wangshichen: 推个qrtt 10/02 19:58
21F:→ Csongs: 批评java常常用罗嗦来形容 10/03 19:05
23F:→ s9041200: e-type 10/09 19:29
24F:嘘 BearFather: 严谨被说成罗嗦…啧啧 10/30 14:43