面向对象是一种思惟方式[与语言无关],教你如何思考代码
Object Oriented Programming
orient 的英文意思 是 使朝向
那么,面向对象不如说成是以对象为目标的一种编程思惟方式程序员
好了,如今让咱们进入正题编程
面向对象的难点之一就是它有一大堆的概念——类、实例、成员等等,为了让咱们更好地理解这些概念,咱们从一个故事讲起。函数
龚先生是一位在当地很是有名气的厨师,但他对本身用的锅一直不太满意,因而打算本身造一个
龚先生想好了。他的第一个锅必需要剑走偏锋,因而起名为“日天锅”,而且得是金色的,并且必需要用寒铁制造,方能展示实力
龚先生风风火火画好了一份设计图纸
// 日天锅 // --------- // 颜色:金 // 用料:钛合金 // 功能:炒菜()
日天锅造出来后,龚先生若有神助,手艺直线上升,日天锅的大名就此传开
某日,一土豪前来,让龚先生为他也定作一款日天锅,不过此次要镶嵌24颗钻石
龚先生欣然接受,并画好了第二份设计图纸,只是 在原有的基础上镶嵌了钻石
// 镶钻日天锅 // --------- // 镶嵌物:钻石
土豪把镶钻日天锅带回家后,瞬间获得了一众土豪太太和她的闺蜜圈的喜好,你们纷纷询问可否批量生产,在原有的基础上加上煮菜功能
龚先生天然不会放过这个赚钱的机会,因而乎画出了第三份图纸, 只是在【镶钻日天锅】原有的基础上增长了新功能
// 镶钻日天锅——土豪太太版 // --------- // 新功能:煮菜()
从那之后龚先生再也没有炒过菜,而是专心致志进行着造锅业务,并且大力发展物流业务,努力早日让客户享受到“人在家中坐,锅从天上来”的顶级服务
完
根据这个故事,咱们来解释一下面向对象一些名字很是抽象的概念^_^:设计
好吧,让咱们来看看龚先生的锅的广告词code
镶钻日天锅
这款锅不只 继承了日天锅的金色和钛合金用料还有炒菜功能 ,并且还新增了24课钻石镶嵌于其上,你还在等什么?
下一款
钻石日天锅——土豪太太版
这款产品不只拥有新功能煮菜,并且还 继承了日天锅的金色和钛合金用料还有炒菜功能 和 镶钻日天锅的24颗钻石 ,你还在等什么?
让咱们暂时远离一下龚先生和他该死的锅
封装的概念其实就是把一些复杂的东西封装成一个类——把细节隐藏起来
什么意思呢?
好比你拿到一个大补药方,里面让你把当归、人参、枸杞找来,每一个两百克在一起煮一个时辰【你们别乱试,只是举个例子】,你只要经过你的大补药方,就能造出【实例化】大补药,而无需了解当归、人参、枸杞他们分别有什么做用,如何种植这些本就无需了解的细节
这就是封装的优点对象
// JavaScripter的代码 var bluesbone = {name: "Bruce"} // Java程序员说 // 不行!你的图纸呢?bluesbone这个实例怎么直接出来了? // 通过Java程序员的修改后 var bluesbone = new Object() bluesbone.name = "Bruce"