• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Riverrun
V2EX  ›  程序员

新手程序员,如何提高面向对象编程能力?

  •  
  •   Riverrun · Jan 31, 2019 · 7256 views
    This topic created in 2682 days ago, the information mentioned may be changed or developed.

    刚入职不久,但是部门产品已相对成熟,平时的工作多是看代码、修 bug,做需求也不会对原有代码结构做太大的变动;觉得如果真的要自己动手写这样一个产品会非常吃力。

    请问平时自己学习时该如何提高面向对象编程的能力?

    41 replies    2019-02-01 16:51:14 +08:00
    hv3s1
        1
    hv3s1  
       Jan 31, 2019
    ...现在什么框架不是面对对象。

    除了 C。其他基本上都是面对对象。

    提高编程能力,疯狂 CODE 吧。
    Riverrun
        2
    Riverrun  
    OP
       Jan 31, 2019
    @hv3s1 因为就是写 C 的……痛哭
    junjieyuanxiling
        3
    junjieyuanxiling  
       Jan 31, 2019
    那就 gtk。
    simple2025
        4
    simple2025  
       Jan 31, 2019
    @Riverrun C 也有 C 的好处呀,性能高。。万物基于 C,逃
    di94sh
        5
    di94sh  
       Jan 31, 2019 via Android
    可以了解 go 的面向对象。c 也能写出来
    Riverrun
        6
    Riverrun  
    OP
       Jan 31, 2019
    @chenqh 最近开始接触 java 感觉来到了没有技能的荒原 orz
    Riverrun
        7
    Riverrun  
    OP
       Jan 31, 2019
    @di94sh 感谢,去了解一下
    anyele
        8
    anyele  
       Feb 1, 2019 via Android
    说下我对楼主问题的理解,其实我觉得楼主想表达继承封装多态在实际代码里的应用? 还有各种设计模式怎么应用到业务代码里对吗?
    q8164305
        9
    q8164305  
       Feb 1, 2019 via Android
    先写出来,再考虑写好
    q8164305
        10
    q8164305  
       Feb 1, 2019 via Android
    其实不用面向对象照样能写代码的,就是不好维护而已,等你触到痛点,自然就会了,我刚开始写的时候也是看不懂面向对象干嘛用的,不用面向对象照样写代码,但是后期迭代的时候触到痛点自然就会了
    danc
        11
    danc  
       Feb 1, 2019 via Android
    那就找个对象呗。去 TM 的面向对象,C 语言那种方式不是挺好的么
    GeruzoniAnsasu
        12
    GeruzoniAnsasu  
       Feb 1, 2019
    个人经验,写点 MFC 的小东西

    不用什么大项目,随便什么对话框小工具就足够了

    以前学编程的时候,c++看完类一脸懵逼一点概念都没,然后稍微学了学 MFC 突然开窍了,MFC 是纯 C++(C with class)搭起来的框架,没有任何扩展语法和机制,最多有点点宏,对学习 OO 编程很有帮助( c++语言限定)
    Yishanshan
        13
    Yishanshan  
       Feb 1, 2019 via Android
    当我发现自己以前写的代码和一坨屎一样的时候
    Andiry
        14
    Andiry  
       Feb 1, 2019   ❤️ 1
    C 也能面向对象,看看 Linux kernel 里 VFS 的接口就懂了
    RqPS6rhmP3Nyn3Tm
        15
    RqPS6rhmP3Nyn3Tm  
       Feb 1, 2019 via iPhone   ❤️ 1
    现代的 c 也用了不少面向对象的模式
    Design pattern 还是要看看
    ma9806
        16
    ma9806  
       Feb 1, 2019 via Android   ❤️ 1
    找一个对象
    lifeintools
        17
    lifeintools  
       Feb 1, 2019
    先写出来 写够 10W+
    ericgui
        18
    ericgui  
       Feb 1, 2019
    你自己写个 MVC 框架,不管多丑,不管多垃圾,能跑起来,自己用它写个博客
    zhangroyaso
        19
    zhangroyaso  
       Feb 1, 2019
    我一直。卡在这。
    mfc 是 win 的吗?没有 win 的我怎么办
    其实 lz 应该想要的和我一样,一条学习的道路能弄懂面相对象,不管是哪本书还是某个博客系列
    Kaiv2
        20
    Kaiv2  
       Feb 1, 2019 via Android
    试试一个完成一个项目
    shylockhg
        21
    shylockhg  
       Feb 1, 2019   ❤️ 1
    用 c 实现面向对象思想呗,
    不要 c++/java/python 这些原生实现影响了,
    关注面向对象的三大原则,自己用 c 模拟。
    比如 Linux 内核的 container_of。
    chiu
        22
    chiu  
       Feb 1, 2019
    C 也可以写面向对象的 C
    SorcererXW
        23
    SorcererXW  
       Feb 1, 2019
    学一下设计模式
    zhwithsweet
        24
    zhwithsweet  
       Feb 1, 2019 via iPhone
    来吧,haskell。Fb 好玩一万倍(滑稽
    frylkrttj
        25
    frylkrttj  
       Feb 1, 2019
    @Andiry @chiu 有没有 C 面向对象的书或者教程我想看看
    frankyxu
        26
    frankyxu  
       Feb 1, 2019   ❤️ 1
    首先,你得有个对象
    guanhui07
        27
    guanhui07  
       Feb 1, 2019
    看看设计模式,把各种语法用熟悉 应用到写各种封装类库
    no1xsyzy
        28
    no1xsyzy  
       Feb 1, 2019
    C 的话不妨稍微看看 CPython 的源码?
    或者是哪个地方解释为什么 Python 方法需要 self —— 为了弄得像是 C OOP 一样。
    StubbornC
        29
    StubbornC  
       Feb 1, 2019
    没点进来之前还以为是找女朋友经验贴,失望啊阿仔(狗头
    wingpui
        30
    wingpui  
       Feb 1, 2019
    楼上大大们都说得很对啦,经验到了,自然会升级的,技能都可以领悟的
    OMan
        31
    OMan  
       Feb 1, 2019
    首先,你要有个 对象。之后才能真正的实现,面向 对象 编程。
    hievan
        32
    hievan  
       Feb 1, 2019
    先找个“对象”吧.
    zhazi
        33
    zhazi  
       Feb 1, 2019 via Android
    不知道楼上一群人在说啥
    你可以尝试用编程语言写个小短篇故事
    比如
    “一个人在逛超市”
    如何形容这个人,这个人在超市里能干什么,这个人本身能干什么,超市如何形容
    用汉语描述一遍,用编程语言表述一下你的汉语描述
    如果程序读起来没有歧义我觉得你就知道什么是面相对象了,
    如果把这句话转换成公司的商业业务你也应该能找到业务中的 “人”和“超市”
    wei375653972
        34
    wei375653972  
       Feb 1, 2019
    首先得找个对象,才能面向对象 你说是吧
    libook
        35
    libook  
       Feb 1, 2019
    理论都了解的话,还是的练,自己做点小项目啥的,比如做些工具库,尝试使用面向对象的思想来设计。

    不过面向对象不能一招走天下,其他的变成思想最好也看看,项目上灵活使用。
    qwingmix
        36
    qwingmix  
    PRO
       Feb 1, 2019
    当你有的一个项目不停地增长的时候,必然遇到 OOP 来解决重复代码的问题。 不然你要改动的个东西, 就要是 N 个重复代码的地方改动,效率会非常低。 这是最基本款的面向对象的好处。
    tiedan
        37
    tiedan  
       Feb 1, 2019
    找个对象
    ByZHkc3
        38
    ByZHkc3  
       Feb 1, 2019
    new Object();
    Object.create();
    const MyGirl = {name:'Anna'};
    const MyGirl = function(name){
    return {

    }

    }
    kakudesu
        39
    kakudesu  
       Feb 1, 2019
    分三步把大象装进冰箱
    xxgirl2
        40
    xxgirl2  
       Feb 1, 2019
    zeroDev
        41
    zeroDev  
       Feb 1, 2019 via Android
    自我感觉就是写,然后看文档怎么写
    日常写 Python
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2995 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 91ms · UTC 06:07 · PVG 14:07 · LAX 23:07 · JFK 02:07
    ♥ Do have faith in what you're doing.