面向对象编程(C++和Java的区别/封装/基础/多态)

  • Post author:
  • Post category:java





面向对象编程

(OOP:Object Oriented Programming)

OOP面向对象编程指:

用面向对象的编程语言把OOD(面向对象设计)模型里的类编写为程序语言。让代码更容易理解,更容易管理。

具体的属性(成员变量/变量)和数据类型在

设计和分析

阶段就决定了。

面向对象程序设计以

对象

为核心,该方法认为程序由一系列对象组成。


类是对现实世界的抽象

,包括表属性和操作,

对象是类的实例化



对象间通过

消息

传递相互通信,来模拟现实世界中不同实体间的联系。在面向对象的程序设计中,对象是组成程序的基本模块。


用程序模拟人类思维,真实世界的概念。


Java和C++


都是面向对象语言。

最大的区别在于,Java 是

解释语言

,需要在JVM虚拟机上进行解释后,再进行编译、运行;而C++可以直接编译、运行。

因此,Java是跨平台的语言,但因为要在虚拟机上进行解释,封装程度更高,因此接触底层更难。

其他区别有:

1.Java中没有指针、联合体和结构体。

2.C++可以多重继承,Java只能通过接口实现相同功能。

3.Java 有⾃动内存管理机制,不需要程序员⼿动释放⽆⽤内存。

4.C中有’\0’结束符,Java里没有这一概念。


类与对象


Java:变量/属性、

方法


C++:成员变量、成员函数


封装、继承和多态


面向对象语言的特性



封装


:隐藏信息,把抽象数据类型(类)的属性和方法(操作)封装在内部,这样用户在使用时通过接口来访问对象,不需要知道内部细节。

e.g. 把类的属性和方法private私有化,外部就无法直接调用它们。



继承




1.子类拥有父类非private私有的属性和方法。

2.子类可以拥有自己属性和方法,即可以对父类进行扩展。

3.子类可以用自己的方式实现父类的方法。

ps. protected关键字允许子类和同一个包里的类自由调用。

继承的缺陷:

1.父类变,子类就必须变。

2.破坏了封装。子类可以直接访问父类。

3.继承是一种强耦合关系。


耦合

:对

模块间关联程度

的度量。模块间的耦合度是指模块之间的依赖关系,包括控制、调用、数据传递关系。

耦合强,模块间独立性低。



多态




宏观:不同的

对象

接收到相同的

消息

,所表现出来的动作和

结果

不同。

微观:在一组对象的一个类中,用一样的方式调用同名函数,调用的函数具体内容不同。


关于面向过程:


过程(procedure),无返回值。

函数(function),有返回值。

函数(过程)是最小的模块封装单位。



版权声明:本文为weixin_45255206原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。