篇一 :面向对象总结

1. 面向对象=对象+类+继承+通信

2. 对象是面向对象开发模式的基本成份。每个对象可用它本身的一组属性和它可以执行的一组操作来定义。属性一般只能通过执行对象的操作来改变。操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。

3. 消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。一个对象接收到消息则调用消息中指定的方法,并将形式参数与参数表中相应的值结合起来。

4. 类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。同一个类的每个对象都是类的实例 (Instance),它们都可使用类中提供的函数。对象的状态则包含在它的实例变量,即实例的属性中。

5. 继承是使用已存在的定义做为基础建立新定义的技术。新类的定义是基础类所声明的数据和新类所增加的声明的组合。新类复用既存的定义,而不要求修改既存类。既存类可当做基类来引用,则新类相应地可当做派生类来引用。

6. 面向对象的特点:封装(Encapsulation):通过定义类实现;继承(Inheritance):通过派生新类实现;多态性(Morphism):虚拟函数实现。

7. 函数:完成特定功能的一段代码;具有合法的名称;具有一定返回类型;可以多次调用。

8. 参数的传递:值调用、地址调用、引用调用、参数的求值顺序。

9. 重载:具有相同函数名,但其参数个数不同或参数类型不同的一组函数称为重载。

10. 函数声明中可以为一个或多个参数指定缺省参数值。具有缺省值的参数右边不能出现没有缺省值的参数。重载函数的参数具有缺省值时要注意。

11. C++的类是对象的抽象:数据成员、成员函数。

12. 类的结构(外部说明):访问控制描述符:

…… …… 余下全文

篇二 :面向对象总结

Private私有化:

一般的话只对外提供几个功能的话,会把具体实现的过程给封装起来,这样可 可以不让外界随意改动代码,如果私有化成员属性的话,要对外提供两人个方法set get ,因为属性是不能有逻辑判断的,只是容器,用来放东西的,但如果放入的东西不符合规范就会出错,所以要私有化成员属性,再用set 和 get,函数里面可以进行逻辑判断,可以规定属性的范围,这样不容易出来安全隐患。

构造函数:

只要是类,都会有构造函数的。如果自己没有写,就是系统默认生成的,但如果自己写了构造函数,那系统就不会生成了。构造函数是可以被重载的,也就是可以定义多个构造函数,只要类型不一样或者个数不同就可以了。一般可以用来给成员变量初始化的,所以没有返回值和返回类型,如果事物有需要了,可以定义多个构造函数,对方调用哪个,就给哪个初始化,可以让对方选择。构造函数和一般函数不一样的是,一创建新的类就会运行构造函数了,但只运行一次,一般的函数你不调用他是不会运行的,也可以运行多次。

代码块:

代码块比构造函数还要先执行,也执行一次,代码块只要是类中的对象都会初始化,而构造函数是针对的调用他的对象。类中的话运行顺序是:成员变量——》代码块——》构造函数

程序运行的顺序:

main()

{

Person p = new Person();

}

创建一个对象都在内存中做了什么事情?

1,先讲硬盘上指定位置的Person.class文件加载进内存。

2,执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈)

然后在main方法的栈区分配了一个变量p。

3,在堆内存中开辟一个实体空间,分配了一个内存首地址值。

4,在该实体空间中进行属性的空间分配,并进行了默认初始化。

5,对空间中的属性进行显示初始化。

6,进行实体的构造代码块初始化。

…… …… 余下全文

篇三 :面向对象总结

面向对象总结

下面只是我个人对面向对象的一点理解,希望大家多提意见。 向对象有这么几个好处:

可维护;可拓展;可复用。

首先我们要知道一点,不是在程序中用到了封装、继承、多态就是面向对象的设计。面向对象的设计是会用到三大特性,但是应该根据需求合理的来应用它们,这才会发挥面向对象的好处。

我们在设计时,首先要把程序的各个功能都相互隔离,比如界面和业务要相分离,业务和访问数据库相分离,又比如把每个具体的业务封装成类。在划分类时,我们就要注意了,一个类只要能做一件事就行了,像DBHelper就只专注做连接数据库,不去做注册业务,而把注册单独作为一个类。这样可以保证每个类的职责单一化,两个功能不会耦合在一起。从而降低耦合度,耦合度降低了,就有了这样的好处:当你换掉DBHelper时,注册业务不会被影响。这就是面向对象的可维护性,程序中和各个模块之间相互独立,耦合度不高,其中每一个模块的职责都很单一,这样的程序,维护起来就会很容易,不会牵一发而动全身。当然,并不是耦合度越低越好,耦合太低,会造成模块之间的脱节,所以还是要有耦合的,做到高内聚,低耦合即可。

当我们想为我们的程序添加新功能时,当然都是希望不改代码或者少改代码,而是通过添加代码就可以实现的。这其实并不难,只要你遵守开闭原则就行了。那么,开闭原则是什么呢。开闭原则就是对拓展开放,对修改封闭。意思就是,一个程序应该可以能够去拓展,

但不能或尽量少去修改。我们举个例子,现在我们刚刚做好了一个程序,而需求变了,要求我们改用Oracle而不用SqlServer。这时,我们就不得不大量改动代码,到那时你就会知道啥是痛苦了,如果在设计时,我们遵守了开闭原则,就会很轻松了。我们当初在编码时,应该创建一个DBHelper的接口,然后在创建SqlDBHelper并继承于DBHelper,所有的业务都通过DBHelper去调其子类的方法,这样再换数据库时,只需添加一个OraDBHelper即可,完全做到了对拓展开放,对修改封闭。由此我们可以看出,提早创建抽象就会有效的避免此类问题,开闭原则会留下那个接口,这就是对拓展开放。只要我们遵守了开闭原则,程序的拓展性就会很好。

…… …… 余下全文

篇四 :java面向对象总结

1.子类与父类的关系?

子类继承父类但不能继承private成员,子类只能有一个父类,如果省略了extends,子类的父亲就是object,子类继承了父类和祖先的成员,子类可以添加新的成员变量和方法,也可以隐藏父类的成员变量或者覆盖父类的成员方法。数的重载?

在同一个类中允许同时存在一个以上的同名函数。只要他们的参数个数或类型不同即可

3.重写(覆盖):父类与子类的关系,子类中可以根据需要对父类中继承来的方法进行改造,但必须和被覆盖的方法具有相同的方法名称,参数列表和返回值。这正好跟重载相反。

4.构造方法的作用?

他可以为类的成员变量进行初始化工作,当类的一个实例对象刚产生时,这个类的构造方法就会自动调用。

5类的多态性

他是发生在同一个类中的,它体现在方法的重载上包括成员方法和构造方法的重载。 6局部变量:定义在方法之中的变量。

局部变量要先赋值,再进行运算,而实例变量均已经赋初值。这是局部变量和实例变量的一大区别。

实例变量的对象赋值为null。

局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。

实例变量和局部变量允许命名冲突

7构造方法。

1构造方法是当用类生成对象时,系统在生成对象的过程中利用的方法。与类同名 2特点

构造方法在生成对象的时候会被调用,但并不是构造方法生成了对象。

构造方法没有返回值。格式为:public 方法名。

构造方法的方法名与类名相同。

构造方法是在对象生成的过程中自动调用,不可能利用指令去调用。

在一个对象的生成周期中构造方法只用一次,一旦这个对象生成,那么这个构造方法失效。 3作用:可以用类来生成对象,和初始化

8this表示本类的其他构造方法,也可以表示实例变量和当前对象

9多态:多态指的是编译时类型变化,而运行时类型不变。

多态分两种:

…… …… 余下全文

篇五 :妙味课堂(js面向对象总结1)

构造函数就是类JS 对象的组成 <script>

vararr=[1,2,3,4,5];

var a=12; //变量:自由 arr.a=5; //属性:属于一个对象

function show() //函数自由的 { alert('a'); }

arr.fn=function () //方法属于一个对象{ alert('a'); };

</script>

第一个面向对象的实例 <script>

vararr=[12, 65, 87];

//this:当前的方法,属于谁 arr.show=function () { alert(this);//this指的就是arr };

oDiv.onclick=function () { alert(this);//this指的就是oDiv };

</script>

<script>

function show() { alert(this); }

show(); //window </script>

Object <script>

varobj=new Object();

obj.name='blue'; obj.sex='男';

obj.showName=function ()

{ alert('我的名字叫:'+this.name); };

obj.showSex=function () { alert('我是'+this.sex+'的'); };

var obj2=new Object();

obj2.name='leo';

obj2.sex='女';

obj2.showName=function () { alert('我的名字叫:'+this.name); };

obj2.showSex=function () {

…… …… 余下全文

篇六 :PHP面向对象总结

本部分一共包括以下一些技术点:

1.面向对象的概念

2.什么是类,什么是对象,类和对象这间的关系

3.什么是面向对象编程呢?

4.如何抽象出一个类?

5.如何实例化对象?

6.如何去使用对象中的成员?

7.特殊的引用“$this”的使用

8.构造方法与析构方法

9.封装性

10.__set()、 __get()、 __isset()、 __unset()四个方法的应用

11.类的继承

12.多态的应用

13.重载新的方法

14.访问类型

15.静态成员的使用

16.final关键字的应用

17.__toString()方法

18.克隆对象

19.__call处理调用错误

20.自动加载类

21.把对象串行化

22.抽象方法和抽象类

23.php5接口技术

1.面向对象的概念

面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,OOP达到了软件工程的三 个目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。面向对象一直是软件开发领域内比较热门的话 题,首先,面向对象符合人类看待事物的一般规律。其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。为编程人员敞开了一扇大门,使其编程的代码 更简洁、更易于维护,并且具有更强的可重用性。有人说PHP不是一个真正的面向对象的语言,这是事实。PHP 是一个混合型语言,你可以使用OOP,也可以使用传统的过程化编程。然而,对于大型项目,你可能需要在PHP 中使用纯的OOP去声明类,而且在你的项目里只用对象和类。这个概念我先不多说了,因为有很多朋友远离面向对象编程的主要原因就是一接触面向对象概念的时 候就理解不上去,所以就不想去学下去了。等读者看完整体内容后再去把概念搞明白吧。

…… …… 余下全文

篇七 :学习心得《面向对象》

面向对象课程学习心得

这学期的面向对象课程对我来说是收获匪浅的一门课。通过老师课件的讲解,自己一些相关书籍的阅读和实践作业的完成,逐步对课程有了由浅及深的认识。

面向对象(Object Oriented,OO)是一门以实践为主课程,课程中可以分开两块OOA(面向对象系统分析)和OOD(面向对象系统设计)。 OOA(面向对象系统分析)主要内容: 研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系.OOA不涉及针对具体实现采取的设计决策和有关细节,独立于具体实现的系统模型。是一个完整确切反映问题域和用户需求的系统模型。OOA的优势:复用、可扩展、可维护性、弹性。

OOD(面向对象系统设计):以OOA模型为基础,按照实现的要求进行设计决策,包括全局性的决策和局部细节的设计,与具体的实现条件相关。OOD的步骤:细化重组类→细化和实现类之间的关系,明确其可见性→增加属性,指定属性的类型和可见性→分配职责,定义执行每个职责的方法→对消息驱动的系统,明确消息传递的方式→利用设计模式进行局部设计→画出详细的类图和时序图。

面向对象的分析与设计方法将致力于解决传统软件研发过程中由于软件模块化结构化程度不高带来的软件重用性差、软件可维护性差、开发出的软件不能满足用户需要等方面问题。面向对象的概念包括:对象、对象的状态和行为、类、类的结构、消息和方法。对象概念将包含对象唯一性、抽象性、继承性、多态性的重要特征。面向对象的要素包含:抽象、封装性、共享性三方面。

在设计模式的研究过程中,我们组选择的是迭代器(Iterator)的设计模式研究。完成设计研究后,我对迭代器的设计模式有了更为深刻的理解。迭代器(Iterator)提供一个方法顺序访问一个聚合对象的各个元素,而又不暴露该对象的内部表示。并了解到迭代器设计模式一般在以下三类场合使用较多。

…… …… 余下全文

篇八 :java面向对象总结

面向对象

面向对象是一种思想,能让复杂的问题简单化,让我们角色从执行者变成指挥者,不要知道过程,只要知道结果。(一切皆对象。)

描述一个事物,其实就是在描述事物的属性和行为。

对象的特点在于封装数据,数据包含着属性和行为。

我们用类来描述一个事物,然后引用类来建立一个对象。

也可以在本类建立一个主函数来中创建本类对象,这个叫在本类中创建本类对象。

一般一个程序可以由很多个类组成,也可以有多个主函数,但一般有一个主函数就可以。

格式:引用类名 对象名=new 构造函数名(参数);

例:class DuiXiang{}

则建立对象为:DuiXiang mingZi=new DuiXiang();

如果要实现功能,则格式为:

mingZi.变量或函数名();

(string是java中的字符串。 String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。)

面向对象主要的部分:(类和对象的关系,封装(机箱故事),继承,多态,构造函数,this,static,内部类,抽象类,接口)

面向对象之封装

函数是最小的封装体。类也是一个封装体。

private:私有的,权限修饰符,用来修饰类中的成员(成员变量 、成员函数),其只在本类中有效。

每个成员变量通常都会对应两个访问方式:一个设置,一个获取。

注意:私有仅是封装的一种表现形式。

因为语句都必须在函数内,所以,私有化后,再提供访问方式,就可以在访问方式的函数内实现变量控制。这样就提高代码的健壮性。

一般进行封装,要对类中的大部分属性都隐藏,最低权限是private。

类里有一个setXxx函数(一般返回值是void,直接获取,要带参数)和getXxx函数(有返回值类型,但一般没参数,getXxx之后一般用一个变量来接收:string x=p.getXxx
),那代表一定有一个私有化属性。

…… …… 余下全文