面向对象

C++中的面向对象(二)

旧时模样 提交于 2020-03-09 23:05:53
1,类之间的基本关系: 1,继承: 1,从已存在类细分出来的类和原类之间具有继承关系(is-a); 1,子类就是一个(is-a)父类; 2,继承是单向的; 2,继承的类(子类)拥有原类(父类)的所有属性和行为; 2,组合: 1,一些类的存在必然依赖于其它的类,这种关系叫组合; 1,同生死,共存亡; 2,组合的类在某一个局部上由其它的类组成; 2,类之间的基本关系: 1,继承: 2,组合: 3,类的表示法(生活中的概念用程序语言表达): 1,原始表达: 1,问题: 1,图的方式编译器读不懂,更改; 2,简化: 1,问题: 1,类之间的继承关系没有表示出来; 2,继承而来的属性和行为需要重复声明; 1,继承从概念上就使得子类拥有父类的一切属性和行为,重复申请没有意义; 3,改进 1: 1,问题: 1,需要使用划线来表示属性和行为,不适合于编程开发; 4,改进 2: 1,问题: 1,使用中文进行属性和行为的描述,绝大多数编译器无法接受; 5,改进 3: 1,思考: 1,如何用程序设计中的概念描述类的属性和行为? 1,变量和函数; 6,改进 4: 4,类的表示法编程实验: 1,main.cpp 文件: 1 #include <stdio.h> 2 3 struct Biology { 4 bool living; 5 }; 6 7 struct Animal : Biology { 8

c++面向对象高级编程 学习四 静态、类模板、函数模板

断了今生、忘了曾经 提交于 2020-03-09 00:42:34
静态static:静态数据和静态函数,在内存中只有一份,不会随着创建对象的数目的增加而增加 static数据 :比如银行的account类中,账户名是普通数据,100个对象会有100个账户名,但利率都是相同的,因此利率可以设置为static static函数 :static函数和其他一般成员函数相比,static函数没有this指针,因此它不能处理类中的一般数据,只能处理static数据 static数据,需要在类外面进行定义。 调用static函数的两种方式:(1)通过object调用(2)通过class name调用 class Account { public : static double m_rate ; //声明 static void set_rate ( const double & x ) { m_rate = x ; } } ; double Account :: m_rate = 8.0 ; //定义 int main ( ) { Account :: set_rate ( 5.0 ) ; //通过class name调用 Account a ; a . set_rate ( 7.0 ) ; //通过object调用 } 单例模式的例子: class A { public : static A & getInstance ( ) ; setup ( ) { .

面向对象的总结

孤街浪徒 提交于 2020-03-09 00:34:58
其实面向对象是一种编程思想,不用想的太复杂,可以想这个问题,把大象放进冰箱需要几步?面向的对象是什么,就是:打开冰箱放进大象关上冰箱,而面向过程就是这个事件的步骤,分步骤一步步实现,这就是面向过程。 需要实现拿出大象,只需要把“放进” 修改成“拿出”的步骤就可以了。 这就是面向过程,面向对象就是整个事件。 1.关键字createPerson和prototype以及__proto__ 原型对象的作用和语法 function createPerson ( ) { } createPerson . prototype . name = "admin" ; createPerson . prototype . show = function ( ) { console . log ( "hello" ) ; } console . log ( createPerson . prototype ) ; var p1 = new createPerson ( ) ; console . log ( p1 ) ; console . log ( p1 . __proto__ ) ; 最后会发现__proto__身上也能找到prototype添加的属性和方法。由此可以证明 createPerson.prototype 这个就叫原型对象。 那这个到底有什么用呢?首先要清楚原型对象也是一个对象

面向对象设计的SOLID原则

落爺英雄遲暮 提交于 2020-03-08 08:24:50
S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。 SRP The Single Responsibility Principle 单一责任原则 OCP The Open Closed Principle 开放封闭原则 LSP The Liskov Substitution Principle 里氏替换原则 DIP The Dependency Inversion Principle 依赖倒置原则 ISP The Interface Segregation Principle 接口分离原则 Steve Smith 在5月份的微软TechED 2009上有个 SOLIDify Your ASP.NET MVC 的讲座, derick.bailey 的 SOLID Development Principles – In Motivational Pictures 很好的解释了SOLID原则。 单一责任原则: 当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。 开放封闭原则 软件实体应该是可扩展

javascript 面向对象

自闭症网瘾萝莉.ら 提交于 2020-03-07 12:23:37
1. arguments An array-like object corresponding to the arguments passed to a function. arguments.callee   Reference to the currently executing function. arguments.caller --- arguments.callee.caller   (Obsolete)   Reference to the function that invoked the currently executing function. arguments.length   Reference to the number of arguments passed to the function. function myConcat(separator) { var result = ""; // iterate through non-separator arguments for (var i = 1; i < arguments.length; i++) { result += arguments[i] + separator; } return result; } document.write(myConcat('-', "red", "green"

java基础——面向对象

半城伤御伤魂 提交于 2020-03-07 05:30:51
面向对象【java语言的核心机制,最重要的内容,java语言的特点】 面向对象和面向过程的区别 面向过程 :主要关注点是:实现的具体过程,因果关系【集成显卡的开发思路】 优点 :对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低 缺点 :采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的方式导致软件元素之间 的“耦合性”非常高,只要其中一环出问题,整个系统受到影响,导致最终的软件“扩展力”差, 另外,由于没有独立体的概念,所以无法达到组件复用 面向对象 :主要关注点是:主要关注对象【独立体】能完成哪些功能。【独立显卡的开发思路】 优点 :耦合度低,扩展力强,更容易解决现实世界当中更复杂的业务逻辑,组件复用性强 缺点 :前期投入成本较高,需要进行独立体的抽取,大量的系统分析与设计 面向对象思想特点 【1】是一种更符合我们思想习惯的思想 【2】可以将复杂的事情简单化 【3】将我们从执行者变成了指挥者角色发生了转换 面向对象的三大特征 - 封装 - 继承 - 多态 采用面向对象方式开发一个软件,生命周期当中:【整个生命周期中贯穿使用OO面向对象方式】 - 面向对象的分析:OOA - 面向对象的设计:OOD - 面向对象的编程:OOP 类和对象的概念 什么是类 【1】类在现实世界当中是不存在的,是一个模板,是一个概念,是人类大脑思考抽象的结果 【2

面向对象 - day02

强颜欢笑 提交于 2020-03-06 01:21:34
创建对象:   new运算符: 1. 执行函数 2. 自动创建一个空对象 3. 把空对象指向另一个对象 4. this绑定到这个空对象 5. 隐式返还this 原型链: 链上都是对象,有限长度 (终点是 null)   var obj = new Object();   var Tab = function (){}   var tab1 = new Tab();   1. 访问对象原型:obj.__proto__   2. 构造函数访问原型:Tab.prototype   3. 原型链: tab1.__proto__ (tab1.__proto__).__proto__ ((tab1.__proto__).__proto__ ).__proto__ 【Tab.prototype Object null 】   4. 原型链的终点是: null (会不会很惊讶) 构造函数判断类型:   tab1.__proto__.constructor.name // Tab   tab1.__proto__.__proto__.constructor.name // Object   tab1.__proto__.__proto__ .__proto__ // null Object.prototype.__proto__ == null 工厂模式: 像产品一样生产对象

java面向对象类的设计 继承

泄露秘密 提交于 2020-03-03 14:34:06
面向对象类的设计继承 4.继承 重写方法:快捷键Ctrl o; (1)关键字super 使用super子类可以调用子类之上所有父类的层级 (2)关键字this 使用this访问本类中的属性,若本类没有则从父类继承 (3) this和super调用构造器 this调用本类构造器必须放在构造器首行 super调用父类构造器必须放在构造器首行 public class b02 extends b01 { public void showInfo ( ) { super . showInfo ( ) ; //此时super调用的是父类中的方法且必须放在第一行,但super上可有多个super System . out . println ( "Its kiana time" ) ; } (4)instanceof x instanceof A:检验x是否为类A的对象,返回值为Boolean型 _(5)object是所有类的父类 public class b01 { public void test ( Object o ) { //设置Objiect obj可以接收任何类作为其参数 System . out . println ( "舰长补给全保底,舰长副本零掉落" ) ; } public static void main ( String [ ] args ) { b01 t =

Lei ❤ 面向对象

亡梦爱人 提交于 2020-03-02 22:42:01
那么什么是面向对象呢? 这里我们要引入一个面向过程的概念,因为面向过程和面向对象是息息相关的。 比如说举个例子,想干成一件事的话,那么有两种途径,要么自己做,要么别人帮你做,面向对象就好比你让别人来做这个事情,面向过程是无论谁做这个事情只要做了,也就是说,在处理问题时可以完全的面向过程,但是不能完全面向对象。 所以说可以把面向过程看成实现问题的解决,把面向对象看成实现问题的解决方案。实现问题有多种解决方案,但是最后肯定目的是为了解决问题,所以说抛出问题,一定就得需要面向过程。 面向对象的好处是可以有效的帮助开发大规模的软件以及图形用户界面。(通俗来说就是能实现更复杂的业务逻辑) 对象的具体含义 对象可以说是明确标识的一个实体,例如:一个学生,一张桌子,一个球等等都可以看成是一个对象,每个对象都有自己独特的标识,状态,行为。 一个对象的状态(也叫特征或者属性)都是由具体当前的数据域来表示的。例如:矩形对象具有数据域width和height,他们都是描述矩形的属性。 一个对象的行为(也叫动作)是由方法定义的,调用对象的一个方法就是要求对象完成一个动作。例如:可以为圆对象定义一个名为getArea()的方法,圆对象可以调用这个方法返回圆的面积。也可以定义其他的方法,圆对象也可以调用。 类的具体含义 类主要描述 属性-数据-成员变量 行为-函数-成员函数 类是对对象的抽象

面向对象与面向过程

余生颓废 提交于 2020-03-02 10:27:57
小编计算机系大学生一枚,自学Java后,根据面向对象与面向过程有些感触总结如下。(本文只适合小白阅读,大佬勿喷,如有不妥的地方,请联系博主修改,欢迎大家斧正!) 【面向过程】 顾名思义,面向过程它是站在过程角度思考问题,强调的是功能行为,功能的执行过程,即先干啥后干啥,而每一个过程每一个步骤都需要我们使用函数(学习过C语言的同学应该知道)去实现。没看懂,没关系,看下面的例子: 有一天你根据面向过程建立了一个食品公司,那么每一批货的出产都是你一个人完成的。 联系买家→签订合同→原料购买→商品生产→商品包装→商品储存… 等等这些步骤全部由你完成,从开始到结束,你们公司都是你一个人。一批货完成,你累死累活,拿到了第一桶金。 【面向对象】 面向对象,站在对象的角度思考问题,我们把多个功能合理的放在不同的对象中,强调的是具备某些功能的对象的对象。为了便于理解我们还拿建公司举例子: 有一天你根据面向对象建立了一个食品公司,这回,你决定轻松点,你找了几个人建立业务部,找了几个人建立了法务部,找了几个人建立了市场部,找了几个人建立生产部,找了几个人建立了包装部,又找了几个人建立储存部。于是你告诉业务部联系买家,命令法务部签订合同,给市场部拨款让他们去购买原料,生产部开始生产,包装部开始包装,储存部负责储存,而你就坐在办公室里,翘着二郎腿,批批文件啥的。 每个部门分工合作一批货完成了,你很轻松