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

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

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

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

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

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

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

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

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

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

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

    }

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