常用编程语言的介绍及特点

本文介绍了C语言的历史、发展和主要特点,包括其简洁、高效的特性;接着探讨了C++,强调了数据封装、继承和多态等面向对象特性;最后概述了Java语言,特别讨论了封装、继承、多态和抽象等核心概念。
摘要由CSDN通过智能技术生成

一、C语言

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。

###发展

之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
1973年贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言,对B取长补短,并用之改写了原来用汇编编写的UNIX,(即UNIX第5版),但仅在贝尔实验室使用。
1978年影响深远的名著《The C Programming Language》由 Brian W.Kernighan和Dennis M.Ritchie 合著,被称为标准C。
###时间线

| 语言 | 时间 | 地点 |主要人物 |
| ------------- |:-------------? -----?
| BCPL语言| 1967年 | 英国剑桥大学 | Martin Richards|
|B语言|1970年|美国AT&T贝尔实验室|Ken Thompson|
|C语言 | 1972~1973年 | 美国贝尔实验室 | D. M. Ritchie|

###特点:

易于学习
具有结构化的控制语句 ,是完全模块化和结构化的语言
语言简洁、紧凑,使用方便、灵活。 32个关键字、9种控制语句,程序形式自由
目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%-20%。
可以处理底层的活动
可在多种计算机平台上进行编译,程序可移植性好(与汇编语言比。
运算符丰富。有34种运算符
语法限制不太严格,程序设计自由度大
允许直接访问物理地址,能进行位操作

二、C++

     C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

特点:

  • 支持数据封装和数据隐藏

在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。

  • 支持继承和重用

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员

  • 支持多态性

采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。

三、Java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1]  。

Java具有简单性、面向对象、分布式健壮性安全性、平台独立与可移植性、多线程、动态性等特点 [2]  。Java可以编写桌面应用程序Web应用程序分布式系统嵌入式系统应用程序等。

特点:

1、封装:

封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private,protected和public实现封装。什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。
一般来说经常接触封装就是类的封装,方法的封装等。比如:来个例子看看;

public class People 
{ 
//其中姓名,年龄都是私有属性,外部只能通过get方法访问 
private String name; 
private int age; 
 public String getName() { 
  return name; 
 } 
 public void setName(String name) { 
  this.name = name; 
 } 
 public int getAge() { 
  return age; 
 } 
 public void setAge(int age) { 
  this.age = age; 
 } 
} 
再来看个方法的封装: 
//打印一个人name 
public void showName() { 
//相应的实现 
  People people = new People(); 
  String name = people.getName(); 
  System.out.println(name); 
} 
public static void main(String[] args) 
{ 
  showName(); 
} 

2、继承

        继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
 

class A{ 
  //成员变量name 
  private String name; 
  public String getName() { 
    return name; 
  } 
  public void setName(String name) { 
    this.name = name; 
  } 
  public void showName(){ 
    System.out.println(name); 
  } 
} 
//B继承A 
class B extends A{ 
  private int age; 
  public int getAge() { 
    return age; 
  } 
  public void setAge(int age) { 
    this.age = age; 
  } 
  public void showAge(){ 
    System.out.println(age); 
  } 
} 
public static void main(String[] args) 
{ 
A a = new A(); 
B b = new B(); 
//调用B类show年龄的方法 
b.showAge(); 
//因为B继承了A,B也有A的name属性,也能调用A的方法。 
b.showName(); 
} 

3、多态

       按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作
多态的话,我觉得是更好的利用了继承这一特性,然后为什么能实现多态,因为可以重写父类的方法。说重写可能不清楚,具体来说就是子类父类可以存在分别存在名字相同的属性或者方法,然后可视声明的类去调用相应的方法等。

class B extends A{

  private int age; 
  public int getAge() { 
    return age; 
  } 
  public void setAge(int age) { 
    this.age = age; 
  } 
  public void showAge(){ 
    System.out.println(age); 
  } 
  public void showName(){ 
    //显示姓名年龄 
    //这里的super.name是调用父类的name 
    System.out.println(super.name+age); 
  } 
} 
public static void main(String[] args) 
{ 
  A a = new A(); 
  B b = new B(); 
  //调用B类show年龄的方法 
  b.showAge(); 
  //调用的是A类自己显示名字的方法 
  a.showName(); 
  //因为B重写了A的showName()方法,显示的就是姓名加年龄 
  b.showName(); 
} 

4、抽象
       抽象是通过分析与综合的途径,运用概念在人脑中再现对象的质和本质的方法,我觉得理解成一种方法比较好。就是我们通过对事物的认知,将某一或者一类事物的属性变化成JAVA语言能识别的类(你可以把一个基础的类看成一个事物,这个类的属性就等于这个事物的的属性)。
举个例子吧,比如我现在要做一个人员作主体的系统,那么我需要把现实生活的人抽象成一个基础的实体类功能程序识别,我会声明一个people的类,这个类包含了name(名字),age(年龄),sn(身份证),sex(性别),height (身高),等等属性,这些属性基本都是我们现实生活中都有的标签。类抽象好了,就是封装,继承,根据业务进行相应功能逻辑实现。

以上的代码演示均为完结,只是粗略的介绍一下,让大家明白这些特性!!!
 

1. 开放源代码的必要性 在介绍编程语言之前,先说说开放源代码的必要性。现在,在软件生产领域存在巨大的智利浪费,大家把大量的精力用在编写别人已经实现的程序代码上。看看,文本编辑器有多少,看看ftp程序有多少,看看字处理程序有多少,这些程序虽然有差别,但主要的功能都是一样的。要实现个性化的功能,在已有的软件基础上修改会节省多少时间呀!而每个程序各编一套,又浪费多少时间?如果,没有这些重复的工作量,世界上的程序员至少可以节省80%的工作量。同时,开放源代码也方便了大家的交流,阅读源代码应该是最直接最有效的学习途径,尤其是比较专业的领域。 要开放源代码,下面几点比较重要: * 语言要流行。 * 语言的函数和类库统一。 * 语言的语法和编译器要统一。 * 编译器是否开放源代码。 * API是否开放源代码。 语言的可重用性、功能、友好性。 * 语言统一:如果大家都用一种编程语言,都用同样的函数,同样的类库,那么,大家的共同语言就会很多。大家只要学会一种语言,一套函数,一套类库,就可以相互读懂源代码,这样,学习量是最少的;但是语言统一根本是不可能的事,因为各种语言都有其特色,如果取了其中一个优点,通常就会牺牲另一个优点。可是学习新的API浪费程序员大量的时间和精力,尤其是当这个API有大量和其他API重复的功能的时候。 要增加代码的可重用性,要从下面几点着手: * 代码的可读性。如格式、是否接近英语语法和单词。 * 代码的表达能力,也就是简单性,能用最少的语句和单词实现同样的功能。 * 代码的结构性,如函数、模块、类。 语言功能的强大从下面几点来说: * 是否拥有大量的库支持。这是最重要的,要求编写任何功能的程序都有强大的库支持。 * 语法功能是否强大,比如是否有出错处理。是否有指针。 语言的友好性: * 语言包的大小,语言包越小,学习越简单。 * 语言是否有友好的编辑调试环境。 * 语言的可视化和集成编程环境。 2. 简介各种程序语言 注︰在程序语言前划有☆号者,表示它有重大影响,但不代表它优良。
以下是各种常用编程语言特点和区别: 1. Java:Java是一种跨平台的面向对象编程语言,具有良好的可移植性和安全性。它的主要特点是内存管理由虚拟机自动完成,具有丰富的API库和强大的多线程支持。Java也是Android应用开发的主要编程语言。 2. Python:Python是一种解释型的高级编程语言,以简洁、易读、易学、易写和可读性高著称。Python适用于数据分析、机器学习、人工智能、Web开发等领域。 3. C++:C++是一种面向对象的编程语言,是C语言的扩展。C++具有高效的性能、灵活的编程方式和广泛的应用领域,特别是在游戏开发、操作系统开发等领域占有重要地位。 4. JavaScript:JavaScript是一种脚本语言,主要用于Web前端开发,可以实现动态效果和交互性。JavaScript具有灵活的语法、易于学习和广泛的应用领域。 5. PHP:PHP是一种服务器端脚本语言,主要用于Web开发。PHP具有易于学习、使用和扩展的特点,与MySQL数据库配合使用,可以快速开发出高效的Web应用。 6. Ruby:Ruby是一种面向对象的编程语言,类似于Python,它具有简洁、优雅的语法和强大的元编程能力。Ruby配合Rails框架,可以快速开发出高效的Web应用。 7. Swift:Swift是一种由苹果公司推出的面向对象编程语言,主要用于iOS和macOS应用程序开发。Swift具有安全、快速、易用和灵活的特点,是一种现代化的编程语言。 8. Kotlin:Kotlin是一种由JetBrains公司开发的面向对象编程语言,可以与Java语言完美地互操作。Kotlin具有简洁、安全、易用和高效的特点,是一种适于Android应用开发的编程语言。 总之,每种编程语言都有自己的特点和应用场景,需要根据具体的需求和项目来选择合适的编程语言
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值