前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java什么叫面向对象

Java什么叫面向对象

作者头像
用户7886150
修改2021-02-03 10:39:17
1.3K0
修改2021-02-03 10:39:17
举报
文章被收录于专栏:bit哲学院

参考链接: java 面对对象概念

什么是面向对象呢?这个问题真的是老生常谈,面试的时候经常问。到底什么是面向对象。。。我也不知道啊 

    看看百度一下的结果吧: 

世界上有loli控,御姐控,女王控,所以有句话就叫万物皆可控面向对象也是一样,万物皆对象 对象这个词你可以理解为一个总称,比如男人女人都叫人,蜡烛皮鞭高跟鞋都是道具,所以面向对象原本的意思是“都叫对象”,翻译过来不是原汁原味了而已因此,房子是对象、飞机是对象、猫是对象、树是对象、女朋友也是对象,并且对象具有唯一性:你家的房子是你家的,不是我家的,你在国外看到的美女不是我在国内看到的美女,你的身份证号和我的身份证号不一样 那么一个房子里都有啥呢,有电脑,还有动作片光盘、战争片录像带、人体艺术杂志……现在这些“包含”在房子里的东西就不是东西了,而是叫做“属性”…… 对象、属性都有了,剩下就是方法了方法也很好理解啊,意思就是你想要得到某种结果,就需要用特定的方法比如你女朋友生气了要哄吧,不高兴了要逗她开心吧,“哄”和“逗”这些就是让女朋友死心塌地的方法……诸如此类,发现一个美眉要用“追”这个方法,和女朋友逛街上碰到美女要用“窥”这个方法,恋爱都要用“谈”这个方法…… ——对象就是一个概念,把所有的事物都称作为“对象”(没有不是对象的东西)——属性就是该事物的组成部分,所有可以被包含的部分都称为“属性”(没有不含属性的对象)——方法就是达成目标的途径,所有可行性的行为都成为方法(没有不存在方法的对象和属性,但是可以选择使用哪些方法) 

    我想大家很多时候都会看到上面的话吧,上面的是我百度过来的,下面要说的才是我说的: 

    在一开始的时候,我也那样的回答,什么万物皆对象啊,什么都是对象什么的。但是真的理解吗,不理解,说白了只是记了下来。工作之后一段时间了,最近对面向对象有所感悟。 

   说说感悟过程吧,在我用socket时候,说是绑定数据关系,我去看源码,一层一层翻,一层一层的debug,希望能有所明白,在找的时候说白了,我也不大明白我想找什么东西,最后找到了,最后的最后,竟然只是往socket对象里面填几个数据,socket对象里面的几个成员变量赋值。一下子我的世界就崩溃了,这都什么啊,最后的最后竟然给我看的是这个。我瞬间懵住了,三观被毁,只能思考重建了。 

       没错就是这样的。我理解的面向对象的编程到现在就是:对象其实是一个由成员变量组合起来,用于临时存一些数据的一个东西,我们通过调用对象的方法去使用这些数据,这样做的目的一般来说有两个:一是修改了成员变量的值,二是返回一些数据,一般来说,方法都是单功能的,而方法里面的数据来源于三个地方:第一个地方是方法的形参,第二个就是对象的成员变量,第三个就是系统的一些数据,或者是静态的全局变量。通过这样的方法,就能完成一些操作。即使是不知道对象里面的源码,知道这个方法是做什么的就行。      就这么简单,这就是面向对象,其实理解这些话很容易,深刻理解却很难,其实就是两句话:1,对象是有一些数据的东西,,,2,调用对象使用或者修改这些数据,或者返回一个你需要的东西,往往方法都是单功能的便于修改和维护。 

     源码中,很多方法都是由说明的,只要看懂说明调用就好了,没必要去死抠一些东西,如果想明白这个方法的用途,单扣这个方法就ok了。我想这也是面向对象的一个好处吧。当对每个类,每个方法都加了注解之后,阅读的人只需要知道简单的流程就可以,如果想单独去研究其中的某个部分,去研究他的类里面的具体方法就好了。 

     我以前总以为,一些操作一些东西应该是很难的,调用很多东西怎么怎么样。其实现在有点想明白,其实就是包含数据的对象调用方法去修改对象本身或者其他的对象的数据,或者运用本身数据去运算得到一些数据而已。没有那么多的调用底层的东西,都是表象,本质是数据计算和简单存储数据。当然这样说有点牵强和不严谨。 

      即使是java底层真的调用了一些c/c++的东西,那些C啊、C++啊也基本上是数据计算和数据存储,都是这样子的 这就是计算机编程的大的框架,最后的最后归结到高低电平0,1和半导体的应用,,,除了高低电平0,1和半导体之类的硬件的东西,整个编程体系无非就是数据计算和找个地方把数据存起来,以便用于再计算。这只是我一家之言,反驳就不用了,不严谨很牵强,仅供参考。 

      但是声明一点,java的编程,很多人只是知道new出来对象,创造对象,却不知道垃圾回收。虽然java提供了很好的垃圾回收机制,但是就空间复杂度而言,还是要控制的,知道每个变量什么时候活的状态不能被回收,什么时候死的状态可以被回收,对于每一个开发都很重要,要在程序到达一个阶段,一个结束去思考一下,哪些变量可以回收了,哪些不能回收了,对不需要但是还在引用的变量进行处理。这样节约了空间。不关注这些敲出来的代码质量很渣,没法看啊。虽然不需要像C那样需要析构函数,但java的垃圾回收还是很重要的。 

        That‘s all,thanks!

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档