面向对象与面向过程 && Java与C++

一. 面向过程和面向对象

1. 二者区别是什么

  1. 面向过程就是,分析出解决问题所需要的步骤,然后用函数把这些步骤一个一个实现,使用的时候一个一个依次调用就可以了
  2. 面向对象就是,把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题的步骤中的行为
  3. 面向对象是以功能来划分问题的,而不是步骤

2. 二者优缺点分别是什么

  1. 面向过程:
    (1) 优点:性能比面向对象要高,因为类调用时需要实例化,开销比较大,比较消耗资源。比如Linux/Unix都是采用面向对象开发的,性能就是最主要的原因
    (2) 缺点:没有面向对象易维护、易扩展、易复用
  2. 面向对象:
    (1) 优点:易维护、易扩展、易复用。由于面向对象有继承、封装、多态的特性,可以设计出低耦合的系统,使系统更加灵活且易于维护
    (2) 缺点:性能要低于面向过程

二. 面向对象的特性

1. 封装

封装是指,将客观事物抽象成类,每个类对自身的数据和方法实行保护。类可以把自己的数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏

2. 继承

新类继承了原始类的特性,新类既可以从它的基类那里继承方法和实例变量,也可以修改或增加新方法使之更适合特殊的需要

3. 多态

多态是指,允许将子类型的实例赋值给父类。多态的作用就是为了实现代码重用。
实现多态有两种方式:重载和覆盖

三. Java语言的优点

  1. Java是面向对象的语言
  2. 平台无关性。Java可以“一次编译、到处运行”,因为Java是解释型语言,编译器会把Java代码变成“中间代码”,然后再Java虚拟机(JVM)上结束执行。由于中间代码与平台无关,所以Java可以很好的跨平台执行,具有很好的可移植性。
  3. Java提供了很多内置的类库
    (1) java.lang: Java中的基本类库,如String、Boolean、System、Math、Exception、Thread等,该类库是不需要导入的,其他类库需要导入
    (2) java.util: 提供使用方法及数据结构,如Arrays、Collection、HashTable、Data等
    (3) java.io: 通过数据流、文件系统实现对想序列的系统输入输出,如File、FileInputStream、IOException等
    (4) java.sql: 用于访问及处理数据库数据的类
    (5) java.math: 简明的整数算术及十进制算数的基本函数

四. Java和C++之间的区别

两者都是面向对象语言,都具有继承、封装、多态的特性。它们的区别如下:

  1. Java是解释型语言,代码经过Java编译器编译成字节码,再由JVM解释执行。C++为编译型语言,代码经过编译和链接后生成可执行的二进制代码。因此Java的执行速度比C++慢,但Java可以跨平台执行
  2. Java中没有指针的概念,从而使程序更加安全
  3. Java不支持多重继承,但可以可以实现多个接口。C++是允许多重继承的
  4. C++需要开发人员去管理内存的分配,而Java提供了垃圾回收器来实现垃圾的自动回收,不需要程序显示地管理内存的分配
  5. Java不支持自动强制类型转换,必须由开发人员进行显示地强制类型转换。而C++支持自动强制类型的转换,但这会导致程序的不安全
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章