java-面向对象编程-简介

Niklaus Wirth有一句在计算机领域人尽皆知的名言:“算法+数据结构=程序”纳尼?你不知道?没关系,现在你知道了~。为什么要说这个呢?因为从计算机底层实现而言,如何用到最小的内存,达到最快的处理速度,对一个程序来说就是一个最优体验的程序。当然,我们普遍遇到的一个问题就是:要取得高的运行速度,就要增大内存。而要用到比较小的内存呢,却又需要比较长的运行效率。也就是说,既要用到最小的内存,达到最大的处理速度,目前是没什么可能的。但科技的特点就是善于创造嘛,一不小心,明天就有人找到解决这个困局的办法了呢?但现在而言,似乎也还没能达到这个状态。那我们退而求次的时候,就要想着如何在内存和运行速度这对冤家cp上分别取多少,才是一个相对合适的办法。数据和算法结构就应运而生了,这是程序的一个核心部分,不同的程序因为需求特性的不一样,要么消耗运行效率换取内存,要么消耗内存换取运行效率。然后选择一个相对比较好的方案,从而使得程序的体验相对完美。而数据与算法就是关于计算机底层执行的一个方案设计。所对应的对象,就是计算机的底层。但是,计算机并不认识字啊,这些数据结构和算法怎么才能让计算机懂得呢?这就靠我们光荣而伟大的程序员把它转变为一行行可供计算机识别的代码了。而这一行行的代码,最终构成的,就是一个项目,一个程序源码了。
但是,从计算机的角度而言,程序的执行需要优化。那么,从程序员而言,当一个项目复杂到一个程度上,通常这么说的时候,一般表明程序相当复杂,可以说是臃肿了~这个时候,一但程序员不小心哪里写错了什么,计算机说我不管,你给我改回来了我再执行,不然就等着死机吧。那程序员呢?就要苦逼的去找错,改错,调整,测试,一系列工作写来,两个愉快的周末就要过去了,怎么办?怎样可不是个好办法啊。于是,程序员大喊!不行,我也要对代码进行优化!!可是怎么优化呢?他们将相关的元素和方法放在一起,组成一个新的引用类型数据,然后通过创建引用数据类型方式获得其他所需的数据来构建项目。而既然是是数据类型,那么我们就知道,我们是可以随便去调用它的。也就是说,当程序需要在多个地方用到同一个方法或者同一个变量的时候,我们就可以在这里创建该引用对象,然后通过引用对象去获得封装在其中的变量或者方法。而这种优化的方法,就叫做面向对象编程,而没有经过这种优化的叫做面向过程编程。当然,这里并不是说面向过程不行,两者和数据与算法架构中的运行速率和内存一样,是一对cp关系。面向对象编程使程序更易于管理和维护,但因为多重嵌套,降低了程序的执行效率。什么意思?试想我们在电脑桌面放着一份叫做“android开发教程全系列”的文档,我们打开的时候自然就直接点击就打开了。但是呢,如果我把这个文档放在了一个叫做“点击我啊”的文件夹内的另一个叫做“快点我啊”的文件夹呢,那么我们要找到这个文档再打开是不是就需要更多的时间了。也就是说,面向过程使得代码难以维护和管理,但他的运行效率比面向对象要快。那么,这两种方式,到底要选择什么呢?作为一名java程序员,必须要选择程序员优先的面向对象编程呀!电脑干得多最多死机,又不会挂。人要干得多死了又不能重启是吧。下面看一下面向对象和面向过程的区别:
面向过程:
面向过程
面向对象:
这里写图片描述
所以,你现在知道区别了吧。。。。
ok,上面是关于面向对象的简单介绍,在这里说明,面向对象编程是一种编程理念,而所谓理念这东西,就是你的价值观。他其实使用于很多的编程语言,比如java,c#,哪怕是面向过程语言阵营中的c语言,现在也可以实现面向对象编程。当然,它不是技术,不是学了什么其他的东西就可以掌握了的。而是应该在以后的开发中,不断去学习,不断去实践,不断去琢磨,然后再在这些思考的基础上,再去学习,实践,琢磨,如此螺旋式的学习10年之后,或许你就可以说你已经掌握了面向对象了。当然,这并不是说这10年内什么都干不了,实际上,作为一个理念,你只需要掌握它基本的一些内容和知识点,那么你完全就可以去工作了。但是,为什么强调要掌握呢?因为你对面向对象的理解越深,那么你写起代码来就越得心应手,代码也更容易维护和管理。这样的人,公司想不升职都难啊,但是如果你10年来,写的代码一直都是只有个面向对象的轮廓,其他的又复杂,维护又难的话。那么公司能留你10年也挺不容易的了。也就是说。掌握面向对象这个理念,是和你的前途有关的,对它理解越深,对你越有好处,那么我们为什么不好好学习呢?对吧。那什么叫做掌握面向对象呢?其实很简单:就一句话:“万物皆对象”,什么意思呢?就是哪天,你发现你眼睛可以看到的任何东西,都可以看作是一个对象,并且抽象出其特质的话,你就是大师了。当然,至于什么叫对象呢,我们下节课再说~
说了面向对象,不得不旧事重提的就是,我们在前面埋下的坑,现在填上一个先,那就是:引用数据类型,为什么现在才填这个坑呢?因为在写下来的时间里,才是你接触引用数据类型最多的地方。也就是说,在面向对象编程里,引用数据类型是贯穿其中的。如果你学过c语言,那么引用数据类型类似于指针,当然,知只是类似,实际上,他们还是有很多区别的。
那么,什么叫引用数据类型呢?首先,我们回想一下,我们是把引用数据类型和基本数据类型放在一起的,也就是说,引用数据类型拥有和数据类型一致的一些特性。那么,基本数据类型是怎样的呢?它是这样使用声明的:
int 变量名;
而应用数据类型呢?我们前面说了数组和字符串,发现它们是这样声明的:
int[] 变量名;
String变量名;
你会发现,他们唯一不一样的地方,就在于前面数据类型不一样,而实际上,这也正是引用数据类型的特殊地方。它的数据类型是可以人为地创造出来的,而基本数据类型,则是固定的。并且,基本数据类型只是一个变量,里面并没有什么方法可以被调用,但是呢?我们的数据是可以调用一些方法的,比如Array.sort()方法可以对数组进行排序,String.indexof()方法可以查看字符串中某一位置的字符等。而这些是基本数据类型没有的。回到我们前面说的程序员优化代码的方法,你会发现,我们说的数据,还有方法,恰好就是引用数据类型所拥有的特性。也就是说,所谓引用数据类型,就是将一些相关的数据和方法封装在一块,构成一个全新的数据类型来供系统调用。并且,我们可以在一个引用数据类型里面封装另一个数据类型,那也是可以的。实际上,引用数据类型就是基本数据类型的拓展,并且功能更强大。但是为什么我们还要保存基本数据类型呢?因为这是计算机默认的数据类型,也是构成引用数据类型的一个来源,所以不能把它删掉。同时,引用数据类型又和基本数据类型有不一样的地方,所以就把它和基本数据类型给分开了。那么你会问,基本数据类型有8个种类,那么引用数据类型有多少呢?这个问题我无法回答,正如我前面所说,引用数据类型是认为创造出来的,也就是你想有多少,它就有多少。那么你会问,既然这样,我们该怎么去用它呢?也很简单。你只需要学会怎么创造引用数据类型,以及怎么使用数据类型就行了。那么怎么去学呢?俗话说:“胖子不是一天吃成的”,对于这种不能创造性极强的东西,自然也不是一天能否学完的。所以我们会在以后的章节中去教你如何创造引用数据类型,怎么使用引用数据类型。而在学完java-面向对象编程这一个系列之后,你应该就可以掌握面向对象的基本知识点了,而其中自然也已经把引用数据类型的创造和使用方式了然于胸,所以,让我们期待下一章:java-面向对象编程-类与对象吧!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值