美文网首页
1,类、对象、三大特性、构造方法

1,类、对象、三大特性、构造方法

作者: 24_yu | 来源:发表于2017-11-03 00:48 被阅读0次

1、面向对象

面向过程的操作是以程序及基本功能是实现为主,实现之后就完成了,不考虑修改的可能性;面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用。

面向对象中有三大特性:

●封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

⑴保护内部的操作不被破坏,隐藏方法的内部的实现,仅仅提供一个调用的方法给其他人,让其他使用这个类的人不需要关心是如何实现的,只要关心如何调用;⑵封装类的属性,将类属性分成私有和公有属性,私有属性自身调用,公有属性仅提供一个外部调用的方法;⑶封装的作用:减少耦合

●继承:在原本的基础之上继续进行扩充,让某个类型的对象获取另一个类型的对象的属性和方法。通过继承创建的新类称为子类或者派生类,被继承的类称为基类或者父类。分为实现继承和接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称,但是子类必须提供实现的能力

●多态:同一个行为具有多个不同表现形式或形态的能力;指一个类的实例的相同方法在不同情形有不同表现形式。

作用:提高程序的复用性;动态创建对象时,可以动态调用子类的方法。??

多态的表现形式:继承和重写。

方法的多态,重载:相同函数名,不同的参数列表;(返回值不能作为重载的判断)

覆写:子类覆写父类相同方法名的函数

对象的多态:父子类对象的转换,向上转型和向下强制转型

五大基本原则

单一职责原则SRP(Single Responsibility Principle)

是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。

开放封闭原则OCP(Open-Close Principle)

一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

替换原则LSP(The Liskov Substitution Principle)

子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。

依赖原则DIP(the Dependency Inversion Principle)

具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类,而应当由B定义一个抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口,这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假设B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。

接口分离原则ISP(the Interface Segregation Principle)

模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来。

2、类与对象的定义

一句话:类是对象的模板,对象是类的实例,类只有通过对象才可以使用

3、引用传递和值传递

引用传递:同一块堆内存空间,同时被多个栈内存所指向,不同栈可以修改同一块堆内存的内容

值传递:体现在基本数据类型作为参数进行方法调用时,原始值不受方法内值的修改而修改。

4、构造方法

⑴构造函数如果没有被显示的声明,那么对象在创建时候回调用默认的空参数的构造方法;

⑵构造方法的名称必须和类名相同

⑶构造方法只会在创建对象的时候被调用一次,调用完成后即出栈,而一般的方法可以在对象创建后被调用多次

⑷构造方法中,默认也是有return语句的,任何方法都是由return语句的,只是如果显示的写明,那么在编译后会自动加上

⑸构造方法前面如果加上返回值类型,那么它将变成一个普通方法(不推荐这种写法)

⑹构造方法可以加上权限修饰符,private,则可以用于单例模式

⑺构造函数可以被重载,一个类中可以存在多个不同参数的构造方法,构造方法没有返回值类型,没有具体的返回值

⑻构造方法之间可以调用,但是不能相互调用,即方法1和方法2互相调用,会导致内存溢出

相关文章

  • Dart语法面向对象之1

    面向对象之1 概述 类与对象,声明、创建及基本特性构造方法及初始化列表静态成员及对象操作符的使用 类 属性与方法 ...

  • Java类与对象

    面向对象的特性类构造方法与对象的创建参数传递对象的组合实例成员与类成员方法重载、覆盖与多态this、包、impor...

  • 1,类、对象、三大特性、构造方法

    1、面向对象 面向过程的操作是以程序及基本功能是实现为主,实现之后就完成了,不考虑修改的可能性;面向对象,更多的是...

  • Java学习笔记(五):类的构造方法和类的主方法

    1. 类的构造方法 类的构造方法是一个与类同名的方法,对象的创建就是通过构造方法实现的。每当类实例化一个对象时,类...

  • Java基础03 类和对象

    一、类和对象 以上是对类和对象的解释。 二、构造方法 1、什么是构造方法?构造方法是具有特殊功能的那个方法,就是与...

  • Java基础精粹

    类 类和对象 构造方法:1. 使用new+构造方法,创建一个新的对象。2. 构造方法是定义在java类中的一个用来...

  • Java 面向对象-构造方法

    构造方法(构造函数) 当一个对象被创建时,构造方法用来初始化该对象,所有的类都有构造方法。 注意:1.构造方法必须...

  • Lesson 0 Objective-C basic

    1.OC特性 (1)OC方法:对象方法(-),类方法(+) 1.对象方法:-(returnType)initWit...

  • Java反射初始化类调用类中的方法

    1.通过无参构造方法实例化对象 无参构造方法,类 反射调用方式 2. 有参构造函数,对象实例化 有参构造函数类 反...

  • Java_basic_2:构造方法 Constructor

    构造方法 格式: 几个特性 使用 new + 构造方法 ——> 创建一个新的对象Console con1 = ne...

网友评论

      本文标题:1,类、对象、三大特性、构造方法

      本文链接:https://www.haomeiwen.com/subject/dmiapxtx.html