c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】

这篇具有很好参考价值的文章主要介绍了c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

内存管理、适用 区别

C

手动内存管理:C语言没有内置的安全检查机制,容易出现内存泄漏、缓冲区溢出等安全问题。

适用于系统级编程

C++

手动内存管理:C++需要程序员手动管理内存,包括分配和释放内存,这可能导致内存泄漏和指针错误。

适用于游戏引擎和系统级编程

Java

内存管理:垃圾收集器自动管理内存,减少了内存泄漏的风险。

平台无关性:具有“一次编写,到处运行”的能力,因为它通过Java虚拟机(JVM)来实现跨平台性。

python

快速开发:Python重视开发者的生产力,它有丰富的标准库和第三方库,用于快速开发应用程序。

js

事件驱动和异步编程:JavaScript使用事件驱动和异步编程模型,处理用户界面事件和网络请求时

前端+服务器开发:JavaScript最初是一种用于在浏览器中添加交互性的脚本语言,现在也可以用于服务器端开发(Node.js)。

按执行方式分类:执行效率

编译型:c、c++

解释型:python、js

动态解释型(不用声明变量类型):python、js

混合:java

按照代码组织的方式分类:扩展/维护/性能

面向过程:c

面向对象(OOP):java

封装性

继承性

多态性:覆盖

多范式(过程、对象):c++、js、python

作用域:在作用域末尾自动销毁

函数

块{}

js(ES6新增let和const关键字,允许块级作用域的变量定义)

类:在类中定义成员变量和成员函数

除了c(面向过程)

全局

python(global声明)

变量提升:js


内存管理、适用 区别

C

手动内存管理:C语言没有内置的安全检查机制,容易出现内存泄漏、缓冲区溢出等安全问题。

适用于系统级编程

C++

手动内存管理:C++需要程序员手动管理内存,包括分配和释放内存,这可能导致内存泄漏和指针错误。

适用于游戏引擎和系统级编程

Java

内存管理:垃圾收集器自动管理内存,减少了内存泄漏的风险。

平台无关性:具有“一次编写,到处运行”的能力,因为它通过Java虚拟机(JVM)来实现跨平台性。

python

快速开发:Python重视开发者的生产力,它有丰富的标准库和第三方库,用于快速开发应用程序。

js

事件驱动和异步编程:JavaScript使用事件驱动和异步编程模型,处理用户界面事件和网络请求时

前端+服务器开发:JavaScript最初是一种用于在浏览器中添加交互性的脚本语言,现在也可以用于服务器端开发(Node.js)。

按执行方式分类:执行效率

编译型:c、c++

在编译性语言中,源代码首先被编译器(compiler)翻译成机器码。这个翻译过程在程序执行之前发生,生成的可执行文件可以在不依赖源代码的情况下多次执行,所以速度快

编译性语言的可执行文件通常是与特定平台相关的,因此需要重新编译以适应不同的操作系统或硬件架构。

解释型:python、js

源代码逐行被解释器(interpreter)解释执行。代码行按顺序逐行翻译成机器代码并立即执行。因此,程序的执行是一边翻译一边执行的,不需要先编译成独立的可执行文件,所以速度慢

解通常在特定的解释器上运行,因此可以跨平台执行,只要有相应的解释器

因为逐行执行,所以方便调试

动态解释型(不用声明变量类型):python、js

混合:java

需要程序快速启动和运行时,解释器可以首先发挥作用,省去编译的时间;

当程序运行一段时间后,编译器可以发挥作用,将更多的代码编译成本地代码,减少解释器的中间消耗,获得更高的执行效率。

当内存限制较大时,使用解释执行节约内存;反之使用编译执行来提升效率

java可以被编译成“.class”文件(字节码)然后由JVM(Java虚拟机)解释执行的语言。这使得它既具备了跨平台性,又可以在运行时获得一定的性能优势

按照代码组织的方式分类:扩展/维护/性能

c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】,c++,开发语言

面向过程:c

面向对象(OOP):java

封装性

就是把属性和方法都放在一个类里面,而且还可以通过访问类的权限属性给区分开,更加安全,不想要释放的功能,直接搞成私有机制。

继承性

就是把之前已经实现好的代码或者方法通过继承的方法拿过来使用,能节省大量的代码量,符合代码设计里面的继承优秀代码特性。

多态性:覆盖

由于可以继承多个类,能够组合成多种特性,但多态的关键是覆盖,就是同一个方法可以用不同的方式去实现,展现出多态性。文章来源地址https://www.toymoban.com/news/detail-712447.html

class Animal {
  speak() {
    console.log("Animal makes a sound");
  }
}

class Dog extends Animal {
  speak() {
    console.log("Dog barks");
  }
}

class Cat extends Animal {
  speak() {
    console.log("Cat meows");
  }
}

const dog = new Dog();
const cat = new Cat();

dog.speak(); // 输出 "Dog barks"
cat.speak(); // 输出 "Cat meows"

多范式(过程、对象):c++、js、python

作用域:在作用域末尾自动销毁

函数

块{}

js(ES6新增letconst关键字,允许块级作用域的变量定义)

类:在类中定义成员变量和成员函数

除了c(面向过程)

全局

python(global声明)

变量提升:js

到了这里,关于c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++初阶】三、类和对象(面向过程、class类、类的访问限定符和封装、类的实例化、类对象模型、this指针)

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 【C++初阶】二、入门知识讲解 (引用、内联函数、auto、基于范围的for循环、指针空值

    2024年02月04日
    浏览(34)
  • 设计模式学习笔记 - 面向对象 - 3.面向对象比面向过程有哪些优势?面向过程真的过时了吗?

    在过往的工作中,我发现很多人搞不清面向对象和面向过程的区别,总认为使用面向对象编程语言来开发,就是在面向面向对象编程了。而实际上,他们只是在用面向对象编程语言,编写面向过程风格的代码而已,并没有发挥面向对象编程的优势。这就相当于手握一把屠龙刀

    2024年02月22日
    浏览(41)
  • 面向对象与面向过程

    从本质上而言,面向过程的和面向对象的本质是处理事务的方式。 它们不是所谓的顺序结构、类和抽象,也不是转型重载和继承等编程机制,而是如何理解事务,如何看待事务,如何处理事务的哲学思想。 面向过程是最基本的编程思想,它基于事件本身的逻辑。 也就是要想

    2023年04月19日
    浏览(37)
  • 从面向过程到面向对象

    目录 1、抽象 2、UML类图 3、类定义 4、类成员函数 (1)构造函数(constructor) (2)析构函数(destructor) 5、对象实现 6、封装 7、getter、setter方法 为什么要从面向过程转到面向对象? 随着计算机发展,问题场景越来越复杂,我们很难再描述每一个可能的过程 转而描述每一个

    2024年02月03日
    浏览(31)
  • 面向过程 VS 面向对象

    学习编程, 基本功是掌握编程语言,但编程的本质是逻辑,所以编程思维的培养也很重要。面向过程和面向对象是两种重要的编程思想,下面讲述一下这两者的区别和优缺点比较。 面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函

    2024年02月08日
    浏览(32)
  • 🔥🔥Java开发者的Python快速进修指南:面向对象进阶

    在上一期中,我们对Python中的对象声明进行了初步介绍。这一期,我们将深入探讨对象继承、组合以及多态这三个核心概念。不过,这里不打算赘述太多理论,因为我们都知道,Python与Java在这些方面的主要区别主要体现在语法上。例如,Python支持多重继承,这意味着一个类可

    2024年02月05日
    浏览(52)
  • 🔥🔥Java开发者的Python快速进修指南:面向对象基础

    当我深入学习了面向对象编程之后,我首先感受到的是代码编写的自由度大幅提升。不同于Java中严格的结构和约束,Python在面向对象的实现中展现出更加灵活和自由的特性。它使用了一些独特的,如self和cls,这些不仅增强了代码的可读性,还提供了对类和实例的明确

    2024年02月05日
    浏览(58)
  • Java开发者的Python快速进修指南:面向对象--高级篇

    首先,让我来介绍一下今天的主题。今天我们将讨论封装、反射以及单例模式。除此之外,我们不再深入其他内容。关于封装功能,Python与Java大致相同,但写法略有不同,因为Python没有修饰符。而对于反射来说,我认为它比Java简单得多,不需要频繁地获取方法和属性,而是

    2024年02月05日
    浏览(60)
  • 🔥🔥Java开发者的Python快速进修指南:面向对象--高级篇

    首先,让我来介绍一下今天的主题。今天我们将讨论封装、反射以及单例模式。除此之外,我们不再深入其他内容。关于封装功能,Python与Java大致相同,但写法略有不同,因为Python没有修饰符。而对于反射来说,我认为它比Java简单得多,不需要频繁地获取方法和属性,而是

    2024年02月05日
    浏览(58)
  • 设计模式 -- 策略模式(传统面向对象与JavaScript 的对比实现)

    规则:根据员工的工资基数和年底绩效情况计算年终奖 初级实现 缺点 多重 if else 违反开发-封闭原则,可维护性差 复用性差 使用组合函数重构代码 使用组合函数来重构代码,把各种算法封装到一个个的小函数里面,这些小函数有着良好的命名,可以一目了然地知道它对应着

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包