这是Alan Kay关于第一个成功的面向对象语言SmallTalk的总结: 1.所有的东西都是对象.可将对象想象成一种新型的变量:它保存着数据,但是可要求它对自身进行操作,理论上讲,可从要解决的问题身上提出所有概念性的组件,然后再程序中将其表述为一个对象 2.程序是对象的集合,通过消息传递,对象知道自己在做什么.为了向对象发出请求,需要向那个对象发送一条消息 .更具体的讲,可将消息想象成一种调用的请求,它调用的是从属于目标对象的一个例程或函数. 3.每个对象都有自己的存储空间,可容纳其他对象.或…
面向对象编程 Object Oriented Programming 一.什么是面向对象编程OOP 1.计算机编程架构; 2.计算机程序是由一个能够起到子程序作用的单元或者对象组合而成.也就是说由多个程序单元可以拼凑成一个完整的功能程序; 3.三个目标:重用性.灵活性和扩展性; 4.每个单独的对象或者单元都可以实现数据的接收.处理和发送; 5.在实际的项目开发中,都会使用达到OOP去声明类,而且在项目里面只用对象和类. 详细参考网址(根据原文学习的) http://www.cnblogs.com…
面向对象编程OOP Note OOP五个基本特性1. 万物皆对象.2. 程序是对象的集合,它们通过发送消息来告知彼此所要做的.3. 每个对象都有自己的由其他对象所构成的存储.4. 每个对象都拥有其类型.5. 某一特定类型的所有对象都可以接收同样的消息. OOP五个不同地方可以存储数据:1. 寄存器2. 堆栈3. 堆4. 常量存储5. 非RAM存储 对象初始化地方:1. 在定义对象的地方2. 在类的构造器内3. 正要使用对象之前(惰性初始化)4. 使用实例初始化 Static 关键字当声明Stat…
第三章第四节 面向对象编程OOP 本节讲学习ADT的具体实现技术:OOP Outline OOP的基本概念 对象 类 接口 抽象类 OOP的不同特征 封装 继承与重写(override) 多态与重载(overload) 重写与重载的区别 泛型 设计好的类 Notes ## OOP的基本概念 [对象] 对象是类的一个实例,有状态和行为. 例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 概念:一个对象是一堆状态和行为的集合. 状态是包含在对象中的数据,在Java中,…
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 a.在前面的章节中,我们创建对象的方式有两种:new Object() 和 对象字面量: //1.new Object() 创建对象 var person1 = new Object(); person1.name = "ry"; person1.age = 21; //2.对象字面量 v…
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 a.在前面的章节中,我们创建对象的方式有两种:new Object() 和 对象字面量: //1.new Object() 创建对象 var person1 = new Object(); person1.name = "ry"; person1.age = 21; //2.对象字面量 v…
面向过程编程(OPP) 和面向对象编程(OOP)的关系 原文链接:http://blog.csdn.net/phphot/article/details/3985480 关于面向过程的编程(OPP)和面向对象的编程(OOP),给出这它们的定义的人很多,您可以从任何资料中找到很专业的解释,但以我的经验来看,讲的相对枯燥一点,不是很直观.除非您已经有了相当的积累,否则说起来还是比较费劲. 我是个老程序员出身,虽然现在的日常工作更多倾向了管理,但至今依然保持编码的习惯,这句话什么意思呢?我跟大家沟通应…
注:以下图片均来自<如何向妻子解释OOD>译文链接:http://www.cnblogs.com/niyw/archive/2011/01/25/1940603.html      <How I explained OOD to my wife> 原文链接:http://www.codeproject.com/Articles/93369/How-I-explained-OOD-to-my-wife S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编…
面向对象编程OOP 编程方式的发展 1,面向过程 重用性低 维护工作量大  2,面向对象 重用性高 维护容易 概念 1,对象 Object 一个具体的事物 是类的实例      2,类Class 同一类事物的统称 具有相同属性和行为的一类实体 特性:1,封装:  oop的核心思想           封装属性和行为,隐藏细节           保证内部数据完整性        2,继承: 子类自动继承所有父类的属性和行为           java是单继承 所有类的父类Object     …
一.面向对象编程(继承) 这篇博客是面向对象编程的第三篇,JS继承.继承顾名思义,就是获取父辈的各种"财产"(属性和方法). 怎么实现继承? 我们的JavaScript比较特别了,主要通过原型链实现继承的. 下面介绍各种实现继承的方式:原型链继承,借用构造函数,组合继承,原型式继承,寄生式继承,寄生组合式继承. 二.实现继承方式 1.原型链方式 原型我们都知道,每个构造函数都有一个原型对象(prototype),用于存放共享的属性方法. 原型链继承原理:我们要继承一个父类,那就把这个子…
在写这篇博客之前,我想对自己进行简单概括:我从事软件开发工作已经三年多了,并且一直在从事.NET相关项目的开发.为什么突然间想学习Java呢?有以下几个原因: 1. 开发程序三年多来,已经对.NET相关体系完成了基本掌握,但是还不是炉火纯青的那种,我不想一直忙碌的奔跑,想停下来看看Java这位与.NET势均力敌的"大腕"的精妙之处,比较两者之间各自的优势与应用领域,以便为以后软件架构师(主要在扩展知识体系而非语言)做一定准备: 2. Java更加需要注重个人思维解决问题,而.NET却提…
好,今天继续学习这个面向对象编程.(根据博客园 小炒花生米写的博客学习而来) 一,封装性 a.把对象的全部属性和全部服务(方法)结合在一起,形成一个不可分割的独立单元 =>对象 b.信息隐蔽,尽 可能的隐蔽对象的内部细节,只保留有限的对外接口使之与外部发生联系.  private  只能对象内部自己访问这个成员属性,外部不能访问    public     内.外部均可以访问    protect  只有 在当前类和继承子类里面可以访问   因为构造方法是默认的公有方法(构造方法不要设置成私有的…
1.前言 创建对象有很多种方法,最常见的是字面量创建和new Object()创建.但是在需要创建多个相同结构的对象时,这两种方法就不太方便了. 如:创建多个学生信息的对象 let tom = { name: "Tom", age: 20, sex: "boy", height: 175 }; let marry = { name: "Marry", age: 22, sex: "girl", height: 165 } 2.…
ID:技术让梦想更伟大 作者:李肖遥 解释区分一下C语言和OOP 我们经常说C语言是面向过程的,而C++是面向对象的,然而何为面向对象,什么又是面向过程呢?不管怎么样,我们最原始的目标只有一个就是实现我们所需要的功能,从这一点说它们是殊途同归的.过程与对象只是侧重点不同而已. 举个例子吧,我现在有个计划,要去北京,OOP语言是直接给你一个车,然后你自己设定路线去北京就好,而C语言是需要你自己制造零件,自己组装好车,然后再自己设定路线,最后到达北京.C语言比较费劲,但是程序的效率很高. 过程&对象…
Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词组合时每个单词首字母大写,单词之间不加任何连接符号) *字段名.方法名(首字母小写,多个单词组合时第一个单词首字母小写,之后每个单词首字母大写,单词之间不加任何连接符号) */ [public][final] class 类名 { [public|protected|private 类名() {}]…
一.介绍 老铁们,这次是JS的面向对象的编程OOP(虽然我没有对象,心累啊,但是可以自己创建啊,哈哈). JS高程里第六章的内容,这章内容在我看来是JS中很难理解的一部分.所以分成三篇博客来逐个理清. 这是第一篇:理解对象,认识对象属性的类型. 二.理解对象 书中原话--ECMA-262中把对像定义为:无序属性的集合.其中属性可以是基本值,对象或者是函数. 1.我们通俗点理解一下 对象是一个真实存在的东西,就像世上每一个人.每一个物体一样,它有自己的属性,行为.也就是说各种属性集合在一起就是一个…
一.介绍 老铁们,这次是JS的面向对象的编程OOP(虽然我没有对象,心累啊,但是可以自己创建啊,哈哈). JS高程里第六章的内容,这章内容在我看来是JS中很难理解的一部分.所以分成三篇博客来逐个理清. 这是第一篇:理解对象,认识对象属性的类型. 二.理解对象 书中原话--ECMA-262中把对像定义为:无序属性的集合.其中属性可以是基本值,对象或者是函数. 1.我们通俗点理解一下 对象是一个真实存在的东西,就像世上每一个人.每一个物体一样,它有自己的属性,行为.也就是说各种属性集合在一起就是一个…
面向对象并不是一种技术,而是一种思想,是一种解决问题的最基本的思维方式!如何理解使用?OOP:面向对象编程 (直接代码说明) 1.面向对象的基本概念 示例demo: <?php header("Content-Type: text/html;charset=utf-8"); //如何类的实例化? 例如: $newA= new a(); 利用类得到对象,过程是类的实例化.关键字new完成. //如何定义一个类? 例如: class a{} 类 //如何声明定义属性? 例如: pub…
这节讲一下,什么是面向对象(Object Oriented Programming).说面向对象之前,我们不得不提的是面向过程(Process Oriented Programming),C语言就是面向过程的语言,这两者的区别在哪呢?我们可以设想一个情景--厨房做菜: 以面向过程的形式解释来说,第一步:准备材料,第二步:起火,第三步:炒菜,第四步:上菜:面向过程就是编写一个个函数,每个函数执行一部分操作,最后根据这一套函数,执行下来完成一个整体需求为目的. 那面向对象呢,我们同样的解释做菜说,第…
在我们学习OOP过程中,难免会见到一些结构图~各种小框框.各种箭头.今天小猪就来简单介绍一下这些框框箭头的意思——UML. UML定义的关系主要有:泛化(继承).实现.依赖.关联.聚合.组合,这六种关系紧密程度依次加强,下面分别来看一下 泛化(继承)概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在程序中是通过继承类实现的.比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类. 表示方法:空心三角形箭头的实线,子类指向父…
OOP,Object Oriented Programming,原来就是面向对象的编程. 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物. OOD,Object Oriented Analysis [əˈnæləsɪs],(面向对象的设计) OOA,Object Oriented Design,(面向对象的分析) . 以前的编程是面向过程的,比如实现一个算术运算1+1 = 2,通过这个简单的算法就可以解决问题.但是随着时代的进步,人们不满足现有的算法了,因为问题…
2.1创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元. 本章包含两个Java源文件:Doll.java和AppMain.java,下例是他们的代码. 2.1.1  Java源文件结构 一个Java应用包含一个或多个Java源文件,每个Java源文件只能包含下列内容(空格和注释除外): ①零个或一个包声明语句 ②零个或多个包引入语句 ③零个或多个类的声明 ④零个或多个接口声明 每个Java源文件可…
摘要:韦东山android视频学习笔记  面向对象程序的三大特性之封装性:把属性和方法封装在一个整体,同时添加权限访问. 1.封装性的简单程序如下,看一下第19行,如果我们不对age变量进行权限的管控,万一我们设置的age为-1,实际上设置age为-1是不合理的,将age的属性设置为private之后,设置age变量只能通过setAge方法进行操作,如果你传进来的age不合理的,那样我们都设置为0,那样就能够拦截下来. class Persion{ private int age; public…
有了翅膀才能飞,欠缺灵活的代码就象冻坏了翅膀的鸟儿.不能飞翔,就少了几许灵动的气韵.我们需要给代码带去温暖的阳光,让僵冷的翅膀重新飞起来.结合实例,通过应用OOP.设计模式和重构,你会看到代码是怎样一步一步复活的. 为了更好的理解设计思想,实例尽可能简单化.但随着需求的增加,程序将越来越复杂.此时就有修改设计的必要,重构和设计模式就可以派上用场了.最后当设计渐趋完美后,你会发现,即使需求不断增加,你也可以神清气闲,不用为代码设计而烦恼了. 假定我们要设计一个媒体播放器.该媒体播放器目前只支持音频…
书单 <Object-Oriented Analysis & Design with Application>:Grady Booch, 下载地址:object-oriented-analysis-and-design-with-applications-2nd-edition <Designing Object-Oriented C++ Applications>:Robert Martin: 0. 单一职责(SRP) 单一职责对应着复杂问题分解拆分的能力: 管理控制,用…
基类通常定义一个虚析构函数,通过基类指针析构派生类对象时不会出现未定义的行为. 如果一个类定义析构函数,编译器不会为这个类合成移动操作. 虚函数覆盖,可以显式地加override,可以让程序员的意图更加清晰,同时让编译器可以为我们返现一些错误. 派生类,先初始化基类的部分,然后再按照声明的顺序依次初始化派生类的成员. 不希望一个类被继承,将它定义为final 和内置指针一样,智能指针也支持派生类到基类的类型转换.该转换只对指针和引用有效. 同时受可访问性的限制,如D继承自B,如不是公有继承,用户…
定义和用法 在 JavaScript 中, constructor 属性返回对象的构造函数. 返回值是函数的引用,不是函数名: JavaScript 数组 constructor 属性返回 function Array() { [native code] } JavaScript 数字 constructor 属性返回 function Number() { [native code] } JavaScript 字符串 constructor 属性返回 function String() { […
在java的这座殿堂中,我才刚刚推开了大门,就像是在岔路口找到了一条,走向前进java大门的路. 下面是一些java算法的问题 第一题: package project.model; import java.util.Scanner;//兔子问题:有一对兔子,从出生第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不是,问每个月的兔子总数为多少?public class lianxi01 { public static void main(String[] args…
(因为我粗略学过C,C++,Python,了解过他们的一些语法,所以为了使得java的入门更为顺畅,便会忽略一些和C语法相类似的地方,着重点明一些java自己的特色之处.也减轻一下自己写文字的负担.) JAVA是一门静态的强类型的面向对象的重量级的编程语言. 一般写JAVA程序需要的组件是JDK,到甲骨文的网站上下载即可. 初级阶段使用文本编辑器即可,当然,我正处在这个阶段. 此时用来编译运行JAVA文件常用的两条命令是 javac -encoding utf-8 filename.java j…
鄙人为兴趣爱好,0基础入门学习Java,有些心得想法,记录于此,与君分享. 然毕竟新手,学识尚浅,错误之处,希望多多指正批评,也是对我最大的帮助! 前言:本篇文章,主要讨论在子类继承父类之后,一些继承在内存中构建的过程,以及this和super的特点和异同. 文章内所有内容均为个人猜测和想法,不代表任何学科结论. 一.我是孙子! 既然有孙子,那肯定是指三代传承,所以,我准备了三个类,A是爷爷,B是爸爸,C是孙子(也就是我,一下均以孙子代替).代码如下: 类A(爷爷): public class…