电商网站开发系统架构,discuz 网站标题,珠海网站建,搜索引擎优化seo是什么-- 作者 谢恩铭 转载请注明出处 上一篇 Android探索之旅 | Android简介 中说到#xff1a; Android的默认开发语言是Java#xff0c;入门简单。而且#xff0c;你的Java水平不需要多好就可以上手开发Android App了。 不少朋友说看到后很是心安。 不过小编也不想… -- 作者 谢恩铭 转载请注明出处 上一篇 Android探索之旅 | Android简介 中说到 Android的默认开发语言是Java入门简单。而且你的Java水平不需要多好就可以上手开发Android App了。 不少朋友说看到后很是心安。 不过小编也不想误导大家: 你的Java和面向对象水平当然是越高越好啦, 也要学学设计模式, 这样才能设计出可复用可扩展可维护的优秀程序。 如果你是Java高手,那么上手Android很容易。如果你是新手或者完全没接触过Java, 也不要惊慌, 只要你有一些基本的编程知识和面向对象的概念即可。 比如, 你之前学习过C#, PHP, Ruby, Python, C等面向对象的编程语言,那么你上手Android不会有什么大障碍。 其实, 现如今App开发已经很容易上手。你说现在Android的官方IDE: Android Studio(下一课我们配置开发环境会讲到), 苹果的iOS开发官方IDE : xCode。都已经做得很好很简便了: 代码提示,自动补全,错误提示,修改提示, 等等, 简直是夫复何求! 所以现在做App已经简单得不能再简单了,拉起来直接做呗。你不实践永远入不了门, 如果一直在那边问: 我不怎么懂Java能不能做Android开发啊? 那你止步不前, 怪谁呢? 必须踏出信心的第一步。 小编以前有段时间业余做过游戏开发,主要用Unity 3D, 也接触过Cocos2D-X。 以前从来没开发过3D或2D游戏, Unity 3D里面的所用的语言C#或Javascript也不是那么精通,但很快就能做不少小游戏出来。 如果你完全没有编程基础, 那么最好先了解一下编程, 不过也不是说就不能上手Android了, 只是入门稍微累一些。但也不要怕, 你可以的。有问题可以问啊。 Java基础 我觉得Java语言已经设计得很容易上手了, 如果你连C语言和C都能驾驭, 那Java相对来说实在比较亲民。 标识符命名规范 Java数据类型 运算符 分支语句if,switch 循环语句(for,while) 函数的定义 等等 这些基础, 只要是个程序员都懂。 语言之间可以融会贯通。 其他的知识点, 要用到时再去Google搜呗。 面向对象基础 Android采用面向对象的编程技术。 因此我们学习一下面向对象的基础知识, 之后我们还是会花时间细说的。 面向对象编程OOP: Object-Oriented Programming 。这是一种不同于以往的编程模式。 英语Object是对象的意思, 听到这个词, 少年你又激动了对吧? 我说的可不是找对象... 面向对象编程的模式不会立即使你的程序发生革命性的改变而且刚开始接触的时候你甚至会觉得这种模式没什么用。 目前为止我们的编程模式一直是面向过程(POP : Procedure-Oriented Programming)。 也就是我想要实现什么功能就写什么函数声明相应变量等等。比如我要显示一段信息到屏幕上我可以创建一个函数 void showMessage(string message);复制代码如果你接触过C语言,那么应该知道C语言是面向过程编程模式。当然了, C语言也可以实现面向对象编程的,只不过本身没有内嵌的实现而已, 你可以用struct结构体来模仿class类但是比较麻烦。 相信我慢慢地你会发现面向对象的编程模式比面向过程更符合人类的思维。你将能更好地组织你的代码。 听到面向对象编程你最好奇的词应该是对象吧。 你会想这不会是又一种神秘的设计吧难道是一个宿醉后的疯狂程序员想出来的东西 其实不然。我们身边充满着对象你的车是一个对象你的电脑是一个对象你的手机是一个对象你的房子是一个对象, 你的对象也是一个对象等等。 事实上我们所知道的所有东西都可以被看作对象。面向对象编程就是在代码中操作这些被称为对象的元素。 下面列举几种平时我们在编程中常见的对象 一个窗体例如QQ的一个聊天对话框画图软件的主界面。 一个按钮比如安装软件时那些下一步的按钮。 游戏里的一个人物。比如Warcreft里的伊利丹。 一首歌一个视频, 等等 说了这么多对象到底是啥呀是一种新的变量吗还是一种新的函数类型 no, no, no都不是。对象是一种新的编程元素 或者说得更具体一些对象里面混合了变量和函数。 可不要被这句话吓跑了我们一点点来探索。 想象一下... 一个对象。 嗯, 不是让你想象美女... 还是来点实际的图片好了能帮助我们理解。 设想 有一天一个程序员决定要写一个图形界面的程序这个程序可以在屏幕上显示窗体调整窗体大小移动窗体删除窗体在窗体里可以画各种图形等等。 要实现这些功能代码是比较复杂的需要不少函数这些函数之间互相调用。而且还需要很多变量例如窗体位置x坐标和y坐标窗体的宽高等等。 这个程序员花了不少的时间来写这个程序。程序有点复杂但是他完成了。最终他实现的代码包含了很多的函数和变量。 当我们第一次看到他的程序时就好像看一个化学家的一个实验环境一样啥也看不懂。如下图 不过这个程序员对自己的程序还是很满意的他甚至要把程序发布到网上让大家可以用他的程序来创建窗体直接拿来用就可以了而不需要从零开始写代码。 不过有一个问题如果你不是化学专家你可能得花不少时间搞懂这一堆东西到底是怎么运作的哪一个函数最先被调用呢为了改变窗体的大小哪个变量要被传递到哪个函数里呢总之我们很害怕把整个实验环境给弄炸了。 在接到一些用户的建议和抱怨后这个程序员决定替用户着想。他重新设计了他的代码从面向过程的模式改为面向对象的模式。 这就好比他把所有和这个化学实验有关的东西都放到一个大方盒子里。这个大方盒子就是我们所说的对象。如下图 在上图中大方盒子的一部分被设为透明是故意的使你可以看到里面的景象。是的我们的化学实验的所有设备都在大方盒子里。 但是实际当中大方盒子是完全不透明的用户从外面看不到里面到底有什么。如下图 这个大方盒子里存放着函数和变量那些化学仪器试管烧杯等等但这些元素对于用户却是不可见的。 这样用户看到的就不再是成堆的试管烧杯等等让其抓狂的东西了。 在大方盒子外面我们呈现给用户的就只有一些按钮一个按钮用于打开窗体一个按钮用于改变窗体大小一个按钮用于关闭窗体等等。用户完全不需要理解大方盒子里面的运作原理。 因此以面向对象的模式来编程就是 程序员编写代码可能很复杂然后将这些复杂的代码都装到一个大方盒子对象里用户从外面不能看到里面的实现细节。因此对于使用这个对象的用户来说操作起来就容易多了只需按下对应的按钮不需要精通化学也可以使用整个实验环境提供的功能了。 当然了上面的比喻只是一个大致概念。 类 你会问我们学的不是面向对象吗为什么无端跑出一个类来 类是什么呀类和对象之间又有什么不可告人的关系呢 呃... 为了创建一个对象必须先创建类 解释如下比如我们要造房子总得先有设计图纸对吧这样类就好比房子的设计图纸而对象就是根据图纸建造出来的房子。 因此创建一个类其实就是画出对象的设计图纸。 只要有了房子的设计图你就可以依据这张设计图造无数多个房子。类和对象也是这样一旦你把类设计好了你就可以依据这个类来创建无数多个对象。如下图所示 术语我们说对象是类的实例实例在英语中是instance这在面向对象编程领域经常听到。这表明对象是类的具体的物化房子也是房屋的设计图纸的具体物化。 你会说这有点抽象吧。那好我们就来创建一个类看看。 创建一个类但是创建什么类呢 首先必须选择一个类来创建。还是以建筑为例我们可以创建一座公寓一个带游泳池的别墅一间阁楼。 选择是很多样的。当我们刚开始学习面向对象编程的时候我们会有点却步不前不确定哪些东西可以被看作对象。 但答案却是几乎所有东西都可以被认为是对象。 举个实例 为了帮助你了解对象和其内容让我们用一个简单的比喻开始。 假设你开车你要踩加速踏板来使车子加速。 那么在你可以开车前得有人来设计制造你的车。 要制造一辆车, 需要先有工程图纸上的设计类似于之前描述房子的设计蓝图。 这些设计图中包括了加速踏板的设计。 对于驾驶员来说, 踏板有加速的作用, 但是他并不了解其中原理。就好比他也不了解为什么方向盘可以改变车子的方向。这些都被隐藏了起来。这使得人们只需要会开车就可以, 而并不需要每个人都去研究汽车的底层原理。 类和方法 类就是这个汽车的设计图纸。 一辆汽车有很多种能耐/能力, 例如可以行驶, 加速, 换方向, 刹车, 等等。 之前我们说的驾驶员踩加速踏板使其加速, 就是使用了汽车的其中一个能力。 在面向对象中, 我们把类中执行特定任务的区块称为 方法, 其实就类似面向过程编程中所说的函数。 类的方法向用户隐藏了其具体实现就像汽车的油门踏板可以控制汽车加速, 但驾驶员不知道其原理一样。 实例化 正如你不能去开一张车的设计图纸, 也不能在一个厨房的设计图纸上做菜一样。 我们的类(设计图纸)需要被实例化才能被使用, 就好比车子必须依据设计图纸被工厂制造出来才能被我们使用。 从类实例化出来可供使用的东西就是: 对象。 重用 就像汽车的设计图纸可被多次重复使用来构建多辆汽车。 你也可以重复使用类来构造许多对象。 类的可重复使用性是面向对象编程的一个很重要的优势。 消息和方法调用 当你开车时踩下加速踏板, 实际上是发送了一个指令给车子, 车子接收到指令就会加速。 类似地你将消息发送给一个对象, 每个消息就是一个方法调用告诉对象中的方法来执行其任务。 属性 一辆汽车除了具有能力(方法)来完成任务也有属性。 比如车的颜色车门的数目油罐的储油量当前行驶速度和里程表读数。类似面向过程编程中的变量。 和汽车的能力(方法)类似, 汽车的属性也是其工程图设计的一部分。当你驾驶一辆实际的汽车这些属性与汽车是紧密联系的。每辆汽车有自己的属性。 封装 类里面封装了属性和方法属性和方法是密切相关的。 不同类的对象可以彼此进行通信但它们通常不被允许知道其他对象的实现细节。 对象对外隐藏了这些细节, 这就是封装的基本概念, 也是面向对象的一个关键。 继承 一个类可以通过继承别的类来快速获取别的类的属性和方法。 之后, 在继承而来的基础上, 还可以自定义属于自己的属性和类。 用我们的汽车来类比普通车的车顶不能被开启, 但是敞篷车可以。 敞篷车就是从最基础的车这个类继承了所有车的一般属性和方法, 再自己加入了可以打开车顶的方法。 总结 当然了, 这些概念还需要我们之后实战来慢慢消化。慢慢来学习吧~ 人世间万千情感皆有温度千万代码似有性格。这里有原创教程IT丛林......和你一起探索程序人生。微信公众号「程序员联盟」ProgrammerLeague我是谢恩铭在巴黎奋斗的嵌入式软件工程师。个人简介热爱生活喜欢游泳略懂烹饪。人生格言“向着标杆直跑”