學校老師沒教你 OOP 物件導向的秘密 Why is Java NOT an OOP Language? 【電腦說人話】(CC字幕)

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.ย. 2024
  • Object-oriented programming 是一個很多人學習寫程式第一個接觸到的程式設計法,尤其是學寫Java, C++的人。OOP好像是什麼神奇魔法,一直喔喔喔喔的到底是什麼?老師都說:Java, C++, python, JavaScript是物件導向的程式語言... 真的嗎?原來一切都沒這麼簡單,我們都太天真了...
    來聽聽那些,學校課本老師都沒告訴你的,關於OOP 物件導向的秘密...
    這集會聊到...
    💬 Overview 💬
    0:38 這樣歸類程式語言的荒唐
    2:34 什麼是OOP?
    4:51 電腦科學之父 Alan Kay 生氣了
    6:10 用水瓶聊物件導向
    9:10 比物件導向本質更重要的事
    9:55 隔離談心時刻
    📢 📣 📢 本頻道影片內容有輸出成 podcast 📢 📣 📢
    可以在各大podcast平台搜尋「Untyped 對啊我是工程師」
    請大家多多支持呀!!🙏🏻💁🏻‍♀️
    #我是工程師不是哲學家 #哦喔屁 #物件導向的秘密
    一定要看到影片最後面並且在「TH-cam影片下方」按讚留言訂閱分享唷!
    【資料補充】
    wiki.c2.com/?O...
    wiki.c2.com/?O...
    wiki.c2.com/?A...
    www.youth4work...
    www.geeksforge...
    【愛屋及烏】
    TH-cam 👉 / untyped對啊我是工程師
    Podcast 👉 open.spotify.c...
    Facebook 臉書粉專 👉 / untyped
    Instagram 👉 / untypedcoding
    合作邀約 👉 untypedcoding@gmail.com
    -
    Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
    凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的工程師。

ความคิดเห็น • 118

  • @dannychen3090
    @dannychen3090 2 ปีที่แล้ว +9

    這麼大方向的 OOP 概念定義,真要做很多功課和勇氣,感受到妳的用心 !!

  • @chengyang1380
    @chengyang1380 2 ปีที่แล้ว +13

    謝謝凱心琳用心的準備🥺 影片解釋的很詳細 內容很有水準 用水瓶的舉例真的很可愛😂 很喜歡這種程式知識分享 🎉

  • @newsbango
    @newsbango 2 ปีที่แล้ว +12

    聽了你的介紹讓我有了不同以往的概念了,我想到更好的比喻是用DNA和器官,DNA主要功能是資訊儲存在細胞內,就是所謂的message。很多細胞可以生成器官,這是所謂繼承(基本構造)。器官有著各自不同功能,可以互相合作維持生物機能,這是所謂封裝(器官功能)。每個器官基本上都會分泌酵素,但是都不一樣,這是所謂多型(分泌酵素)。

  • @yojaychang
    @yojaychang 2 ปีที่แล้ว +14

    我認為把程式語言歸類是否為物件導向語言,是指語言本身是否支援物件導向的功能或語法(例如private,inherit(extends), interface...等等),這跟寫作風格並不衝突。

  • @aragornlin6578
    @aragornlin6578 2 ปีที่แล้ว +3

    敘述OOP好清楚,我終於懂了,謝謝😄。

  • @mufong
    @mufong 2 ปีที่แล้ว +1

    過去真的被"物件"這樣的字眼定義給迷惑很久,現在才知道是一種message 導向,
    凱心琳找這些資料真的太感謝~而且說得很清楚。
    功力越來越深厚~

  • @simpsons0144
    @simpsons0144 2 ปีที่แล้ว +1

    天啊,感謝這麼認真分享,還去看作者的發表文章,大推你的用心

  • @user-xz5kn1tq6r
    @user-xz5kn1tq6r 2 ปีที่แล้ว +1

    簡單明瞭的說明很棒!
    我自己想法是OOP能減少寫重複code就用對了~
    但也不要過度使用它,看過那種繼承好幾層的code,有夠擾人的🤣

  • @_sun.sun_
    @_sun.sun_ 2 ปีที่แล้ว +4

    這些其實都齒是程式設計的風格,但不知不覺就被人拿來歸類成語言特性了😥
    這個系列真的好棒,希望能多做!!!

  • @bobo9898as
    @bobo9898as 2 ปีที่แล้ว +1

    謝謝凱心琳用心的準備 ❗
    10:40 求好心人剪輯影片 😂😂
    3000 miles Vlog 加油 ❗

  • @wuhsinhui2891
    @wuhsinhui2891 2 ปีที่แล้ว +1

    真的感謝你這麼用心的傳遞這方面的知識,AK還沒死那段真的笑死XDD

  • @HUANGPO-JUIE
    @HUANGPO-JUIE 2 ปีที่แล้ว +1

    可以感受到凱心琳的用心!很欣賞你能不顧流量,做自己喜歡的影片

  • @alexku4224
    @alexku4224 2 ปีที่แล้ว +2

    This is so far the most mind-refreshing video of OOP! It really helps! Thx a lot🙏

  • @hackaniceday
    @hackaniceday 2 ปีที่แล้ว +1

    解釋得非常清楚! 直接切入重點,把關鍵挑出來解釋。能夠把複雜的事情講清楚是很厲害的能力,可以繼續這個系列囉。

  • @user-io1ib6dh8m
    @user-io1ib6dh8m ปีที่แล้ว

    上課聽過老師講一次 再聽一次就更加理解了

  • @jamestsai8377
    @jamestsai8377 2 ปีที่แล้ว +1

    謝謝凱心琳的分享! 想看更多軟體小知識系列~

  • @max47319
    @max47319 2 ปีที่แล้ว

    好生動的oo解釋方式,我喜歡😀

  • @danielchun8749
    @danielchun8749 2 ปีที่แล้ว +2

    Lisp,python,C++都算multi paradigm的語言,所以才能這樣做吧。個人覺得程式語言的歸類不是依"它能寫出什麼什麼風格的code",而是"它對那種code提供多少語法支援"。像function first class、immutable value等特性被視為FP的特徵也是行之有年了.......

  • @ken5089
    @ken5089 2 ปีที่แล้ว +3

    很有趣的比喻XD,感謝這麼用心準備跟分享,最近在寫鐵人賽因為主題是 XState ,也有稍微接觸到 Actor model!認同你說的適度理解但不過度糾結於理論或流派,而是能將這些知識轉化為更好的程式碼!
    我也會好好努力實踐的XD

  • @ruin3434
    @ruin3434 2 ปีที่แล้ว

    講的很好,推推,期待更多電腦說人話系列影片

  • @twinkle74426
    @twinkle74426 2 ปีที่แล้ว +1

    好感謝你的解說,我也是近期自學一直看單元課程講OOP就覺得慌張,看完你的解說後在學習上似乎多了一點勇氣跟自信XD

  • @421250
    @421250 2 ปีที่แล้ว +1

    I like the part about writing documentation and resting/chilling for 15 minutes. Seems like everyone feels the same way.

  • @JingTianSung
    @JingTianSung 2 ปีที่แล้ว

    很清楚地說明,還有各種說明的出處,很棒!

  • @roscoechu
    @roscoechu 2 ปีที่แล้ว

    很謝謝妳的分享,非常貼切的說明,不然常常大家都在高來高去,哈哈😄

  • @user-bf3sv7gg2u
    @user-bf3sv7gg2u ปีที่แล้ว

    感謝深入淺出的介紹~~~很實用

  • @miniappletheapple
    @miniappletheapple 2 ปีที่แล้ว +2

    Lisp是函數式,不是函數導向。然後JS範例的代碼其實不算是所謂的函數式寫法,函數式其實重點在於不可變資料型別和純函數。

  • @user-rv7lj1fv2o
    @user-rv7lj1fv2o 9 หลายเดือนก่อน

    之前看過一本書的解釋是,物件導向不是一個工具或是什麼特殊技能,物件導向本質是設計上的思考方向,解決或設計的一種角度

  • @supinVerse
    @supinVerse 2 ปีที่แล้ว

    喜歡這系列影片,keep going !
    解釋得很清楚,很生動 XD
    加油加油 ~~~

  • @CLARKLIUTW
    @CLARKLIUTW 2 ปีที่แล้ว +1

    好棒的分享~。好想聽聽看 其他 design pattern 的。像是 factory, template, composite, command 等等之類的。

  • @charlieed6264
    @charlieed6264 2 ปีที่แล้ว

    影片說的太好了!!超喜歡這種觀念影片!!!

  • @yoznli
    @yoznli 2 ปีที่แล้ว

    謝謝凱心琳製作這次的內容!對於初學者的我來說超實用🤍
    用簡單的例子去解釋書本中難以理解的部分~~~謝謝妳的分享🥺🥺

  • @hsuwei-yen472
    @hsuwei-yen472 7 หลายเดือนก่อน

    是啊!
    我真的開始接觸函數導向時才發現自己寫物件導向的習慣反而比較接近函數導向
    兩者不但不是對立,甚至可以互相合作

  • @skylow7788
    @skylow7788 2 ปีที่แล้ว

    謝謝您的分享,原來oop的起源是這樣
    希望後面有對於程式設計法更多的影片

  • @ob96275
    @ob96275 2 ปีที่แล้ว

    很棒的影片,省去很多找資料與困惑的時間,謝謝用心準備~

  • @chaiiyoung
    @chaiiyoung 2 ปีที่แล้ว

    這系列真的很讚!謝謝你!!~

  • @user-il6io2iy9w
    @user-il6io2iy9w 2 ปีที่แล้ว

    最近才真正知道java 的物件導向底層跟C 語言的內容是不同的,準備這個內容真的不容易,感謝用心的解說 :)

  • @aayyaa1188
    @aayyaa1188 2 ปีที่แล้ว

    好喜歡你的影片唷,尤其是這系列的影片
    超級謝謝你 >V

  • @annyob27
    @annyob27 2 ปีที่แล้ว

    真的好感謝凱心琳! 第一次有終於大概知道OOP的感覺! 感動

  • @hkpeng329
    @hkpeng329 2 ปีที่แล้ว +3

    Java 之所以被定義是物件導向的程式語言,是因為程式語言的發展過程中 Java是相當早期的設計能夠擁有物件導向應用的語言架構。如同影片裡面所提及的C 是屬於程序式的設計語言(這個可是老祖宗等級的...當然還有更老的例如BASIC或機械語言),程式語言後來的發展一直到如今,基本上都有著能夠"實現物件導向的機制"。物件導向的語言特性 其實有很多 例如可重複使用性、可維護性等~ 這也是後來語言發展設計中物件導向機制都會存在的原因。我能夠理解作者所說的"Java NOT an OOP Language"的邏輯性 XD 但是~ Java的確在創始之初就是以物件導向作為這個語言的特性,當初其實也有C++也是有物件導向實現的機制,但是當提及到OOP的時候 最經典的還是Java(因為這個語言的設計架構在當年可算是橫空出世、驚動武林啊~)。
    所以 看是從哪個視角去理解 都可以~ Java 的確也可以寫的很不OOP.... 不對阿~ 光是System.out.println("Hello world !"); 這個菜鳥的程式其實就蘊含了OOP XDDDD 裏頭就有著"多型"的元素在裏頭 XDD
    總之~ 加油!! 謝謝你的用心 透過另一種的角度與方法來介紹程式設計,來幫助更多人認識程式語言。更棒的是~ 你總是能夠帶入信仰(福音)的元素,總是讓我會心一笑~ 很棒!! 感謝上帝讓你用這樣的方式做光做鹽!! 繼續加油~

  • @hankjayful
    @hankjayful 2 ปีที่แล้ว

    非常喜歡!!!
    覺得學到很多~

  • @jonathanchen3201
    @jonathanchen3201 2 ปีที่แล้ว +1

    要用簡單的話解釋真的不容易!!! 希望能多多出程式相關的知識

  • @Maxwell-jp8ij
    @Maxwell-jp8ij 2 ปีที่แล้ว

    身為本科系大學生,雖然系上有教過,但透過這個影片重新整理對於OOP的理解我覺得還蠻好的。 感恩。 已點讚👍支持

  • @chenyungan
    @chenyungan 2 ปีที่แล้ว

    非常棒的說明。感謝分享!

  • @yuyinglu3037
    @yuyinglu3037 2 ปีที่แล้ว

    你的水瓶範例超好理解! 謝謝

  • @Cube_monotonic
    @Cube_monotonic 2 ปีที่แล้ว

    比較專業的內容流量都比較少,能做得開心就好
    很棒一集~

  • @AContentedMind
    @AContentedMind 2 ปีที่แล้ว +1

    喜歡程式相關知識分享 謝謝

  • @thomasyt29
    @thomasyt29 2 ปีที่แล้ว

    終於有新片了。

  • @godhao5793
    @godhao5793 2 ปีที่แล้ว

    天啊,我超愛這部影片

  • @charlies7878
    @charlies7878 2 ปีที่แล้ว

    非常受用!之前在學oop也是一知半解的硬是把他記起來QQ感謝用心的整理分享~~~~~

  • @user-nv1ff2cz9r
    @user-nv1ff2cz9r 2 ปีที่แล้ว

    比起複雜的哲學式教學⋯
    這種認知分享更有用處
    非常棒!(web Backend developer

  • @li-ninja
    @li-ninja 2 ปีที่แล้ว

    寶特瓶的舉例真的超棒!

  • @NeilWang1
    @NeilWang1 2 ปีที่แล้ว

    簡單易記, 非常感謝!

  • @user-yn3hr3zu5i
    @user-yn3hr3zu5i 2 ปีที่แล้ว

    超级喜欢!学生最可贵的本质就是简单。相反up主讲做到了这点,在工作之后很难看到了,感谢!

  • @kmchow4971
    @kmchow4971 2 ปีที่แล้ว +1

    OOP, Thanks! More, please!!!

  • @shaojim12
    @shaojim12 2 ปีที่แล้ว

    今天準備面試剛複習到這部分,讚讚!

  • @lineageab
    @lineageab 2 ปีที่แล้ว

    喜歡這個系列!

  • @niiirr7538
    @niiirr7538 2 ปีที่แล้ว

    化繁為簡得很清楚,加油!

  • @billchen8113
    @billchen8113 2 ปีที่แล้ว

    很有深度👍

  • @user-yw5ls5qd6x
    @user-yw5ls5qd6x 2 ปีที่แล้ว +1

    天啊,我竟然是被荼毒的😅 這集有顛覆一點認知~

  • @trevor5506
    @trevor5506 2 ปีที่แล้ว

    很棒的分享,謝謝妳 :))

  • @yingliwang7312
    @yingliwang7312 2 ปีที่แล้ว

    Thanks for sharing and your time and effort!

  • @dammykao
    @dammykao 2 ปีที่แล้ว

    影片講解得很仔細.
    想當年我還到重慶南路找書, 結果書上的翻譯也是雷同, 看不太懂.
    研究所考試, 職場面試, 也是直接死背OOO三種特性去回答.
    早一點有這種影片教學, 就可以幫助很多學子....XD

  • @youyili1024
    @youyili1024 2 ปีที่แล้ว

    辛苦妳的準備 長知識了

  • @brucelee3064
    @brucelee3064 2 ปีที่แล้ว

    請多講講這類的訊息,感謝!

  • @ChungLiaoScott
    @ChungLiaoScott 2 ปีที่แล้ว

    Message oriented 真的貼切多了!

  • @LindeanCHUANG
    @LindeanCHUANG 2 ปีที่แล้ว

    謝謝,我之前真的以為物件導向就是繼承封裝之類的哈哈

  • @gwp8703
    @gwp8703 12 วันที่ผ่านมา

    Thank you

  • @user-rs9zt9hc3h
    @user-rs9zt9hc3h 2 ปีที่แล้ว +1

    現實中所有的"物件"也只是讓大腦接收到裏面的"信息"的媒介 所以OO當然不只是在物件之間討論

  • @cyRaymond
    @cyRaymond 2 ปีที่แล้ว

    inspiration, I gain knowledge today, thank you for sharing.

  • @CK-or3jf
    @CK-or3jf 2 ปีที่แล้ว

    受教了,谢谢。

  • @user-cg3um7hu5p
    @user-cg3um7hu5p 2 ปีที่แล้ว +1

    之前有認真研究Java,封裝、繼承、多型等等都能理解,一直不能理解“物件”的概念到底是...?今天意外解惑😂其實Java不用這些東西也能寫出來,卻被歸類為物件導向

  • @common-do
    @common-do 2 ปีที่แล้ว

    ❤❤喜歡~

  • @Janny98140
    @Janny98140 2 ปีที่แล้ว

    好喜歡 舉例的非常簡易明瞭 不然教科書上的封裝多型我都看不懂🥺

  • @supinVerse
    @supinVerse 2 ปีที่แล้ว +1

    終於釐清了!
    以前以為Java 就是物件導向,
    但大學功課裡,有些一個main 全部寫完(一條龍),頂多call個function 來做事,連 class 也滿少使用。
    學生時期,會講概念,結果實作不重視OOP精神,到職場上諸多不習慣 XD

  • @J__-wq8nm
    @J__-wq8nm 2 ปีที่แล้ว

    哇終於聽懂封裝 繼承 多型

  • @nagisupercell
    @nagisupercell 2 ปีที่แล้ว

    感謝用心分享!以前常看到討論(戰)OOP到後面很打高空、魔幻,最後常常覺得直接看code怎麼寫、哪邊可以改進,是不是比較務實一點 XD

  • @yuhoyintony7125
    @yuhoyintony7125 ปีที่แล้ว

    請問 VBA 使用OOP方法是怎樣寫程式碼?提供一些例子,它的好處。用繼承 簡化相同類似的程式 的使用嗎?利用 主物件,的大部分特點,繼承 他但又 修訂 部分 設定 ,簡化重複新建一物件的時間 及 程碼嗎?書是看過,看的時候明白用意,實際寫程式時,就沒用到了,也只是整本Java教科書大致全看過一編,沒寫甚麼Java程式。😅 本身不是Progammer,只是興趣自學 工作上也寫EXCEL VBA就完成工作,自動化完成一些重復但本身是一個系統的工作,沒需要太多技能,也不需要,可能寫大型程式用物件導向 有好處,但那方面的程式 合用 就不清楚了。多謝 影片 知識分享,引起 一些想知道的事情。

  • @mfshiu
    @mfshiu 2 ปีที่แล้ว

    建議你可分享設計模式 Design Patterns,一定很生動。
    還有,房間整理一下啦,跟我女兒房間一樣亂。

  • @shihore
    @shihore 2 ปีที่แล้ว

    I am who I am. 真的很深奧,翻譯為自存永存並不能完全體現原意。

  • @user-mq4ki1fr2c
    @user-mq4ki1fr2c 2 ปีที่แล้ว

    Thank you 很美哦~

  • @qobh1234
    @qobh1234 2 ปีที่แล้ว

    感覺非常受用呢

  • @lush93yt
    @lush93yt ปีที่แล้ว

    I am: 我是自有永有的 (Exodus 3:14)

  • @Huizhangliu
    @Huizhangliu 2 ปีที่แล้ว

    美就完了 ❤️

  • @pud7494
    @pud7494 2 ปีที่แล้ว

    身為一個大二生聽得一知半解是正常的嗎😂
    不過我還是盡可能去理解了啦
    未來上到也會有比較正確的理解
    很喜歡這類型的影片~

  • @PeterClancys
    @PeterClancys 2 ปีที่แล้ว

    加油!!!

  • @onealo7625
    @onealo7625 2 ปีที่แล้ว

    感覺可以續講設計模式了

  • @LP77DOG
    @LP77DOG 2 ปีที่แล้ว

    推oop只是一種整理程式的方式而已,其實把c語言學好,多看一些底層如linux kernel的code就不會糾結於這個問題了.

  • @yen_s_life
    @yen_s_life 2 ปีที่แล้ว

    讚 剛學kotlin就看到你的影片

  • @FlyPegasus777
    @FlyPegasus777 2 ปีที่แล้ว

    透由可愛的女生講述這些早已明白的知識,果然較之前讀書來的有趣,不知不覺就將影片看完了@.@

  • @kongnamtam5401
    @kongnamtam5401 2 ปีที่แล้ว

    Thanks a lot

  • @jeremychou0314
    @jeremychou0314 2 ปีที่แล้ว

    認真覺得 Alan Kay 應該是 State Management 之祖才對

  • @charlieed6264
    @charlieed6264 2 ปีที่แล้ว +1

    想知道凱心琳的網頁畫線工具!!(2:48

  • @user-wl6xx4sn9d
    @user-wl6xx4sn9d 2 ปีที่แล้ว

  • @have-bear
    @have-bear 2 ปีที่แล้ว

    物件導向是一種態度!!

  • @MingderYeh
    @MingderYeh ปีที่แล้ว

    所以較好的說法是,OOXX是比較「適配」OOP的語言,別用「就是」OOP就比較好了。

  • @douglashsu8191
    @douglashsu8191 2 ปีที่แล้ว

    ㄛ喔屁~原來是這樣子~~~

  • @ilikeatom
    @ilikeatom 2 ปีที่แล้ว

    我有去了解物件導向的概念,也有使用,但我總覺得好像都用錯,感覺越寫越高耦合低內聚,請問這要怎麼樣才能夠精進跟修正QQ?

  • @aceg19688
    @aceg19688 2 ปีที่แล้ว

    Hi 凱心琳
    所以我們不能說某個程式語言是物件導向的語言
    但或許能說哪種語言是易於實作OOP的(也就是世俗所認定的OOP)是嗎

  • @user-cg1ju5rs3b
    @user-cg1ju5rs3b 2 ปีที่แล้ว

    最近打code打到腰好酸
    有推薦的靠腰墊嗎?

  • @Seven-qr7mg
    @Seven-qr7mg 2 ปีที่แล้ว

    今天凱心琳的妝很美哦~~~頭髮也變長了!!(我是女生XDD)