Python Java Scala 区别

时间:2020-06-06 10:05:52   收藏:0   阅读:70

  本文仅从语法知识点上阐述三者之间的区别,因为该三种语言在现在工作中处理大数据时用的较多,简单记录一下,并逐步丰富与巩固

1. 基本数据结构用法

1.1 Array 数组

       I. Python

    主要是见于Numpy,同时Pandas中的DataFrame一起处理数据

       II.Java

       III.Scala

1.2 List 列表

       I. Python

       II.Java

       III.Scala

1.3 Set集合

       I. Python

       II.Java

       III.Scala

1.4 Dict字典、Map映射

       I. Python

       II.Java

       III.Scala

2. 流程控制语句

2.1 if/else

2.2 while/for

       I. Python

       II.Java

       III.Scala

2.4 switch(Java)与match(Scala)

       I. Python  

    使用if/else实现

       II.Java

       III.Scala

3. 面向对象

  1. 类是抽象的,具有相同属性和方法(行为)的集合
  2. 对象是具体的,具有某些属性和方法(行为)
  3. 创建的对象的过程,叫实例化

3.1 类的初始化或类的构造函数

       I. Python

       II.Java

       III.Scala

3.2 类的访问控制

  主要涉及 public、protect、privite在父类和子类中的访问范围

    Public: 所有类都可见;三种语言概念一致

    Protect: pythonscala当前类及子类都可以访问,java是当前类及子类都可以访问,同时所在的同名的包中的类也可以访问

    Privite: 仅限当前类,子类不可访问,且不可以被重写;三种语言概念一致

  I. Python

    Public:变量不是___开头

    Protect:_ 单下划线表示, 例如: _instance

    Privite:__双下划线表示例如:__instance

  II.Java 

    略

  III.Scala

    略

3.3 类的属性与方法

       I. Python

    有静态属性/方法,实例(动态)属性/方法,类属性/方法, 都可以被重写

       II.Java

    有静态属性/方法,实例(动态)属性/方法

    静态属性/方法不能被直接重写,实例属性/方法需要在构造函数中才能重写

       III.Scala

    没有静态属性/方法,动态属性/方法的概念

    但是有实例属性/方法(相当于实例属性/方法) 和 对象属性/方法(相当于静态属性/方法),且都可以被重写

3.4 接口

       I. Python

    通过定义类实现,方法体可有可无

       II.Java

    通过interface定义实现,且无方法体,一般仅定义方法,因为接口中定义的属性后不能被重写

       III.Scala

    通过trait定义实现,方法体可有可无

3.5 继承

  三者概念基本一致:

    1).继承了父类的基本属性和方法
    2).可以继续实现自己的属性和方法
    3).方法重写:同名函数重写,用另一种实现方案实现父类的方法

  I. Python

    有单继承、多重继承、多层继承,都是通过class类本身定义

  II.Java

    有单继承、多层继承,通过class类本身定义

    但多重继承是通过继承多个接口即多个interface

  III.Scala

    同Java概念

3.6 重写与重载

  重写:子类继承父类后对父类的属性或方法进行重写,

        同时基类的私有方法能被子类重写

  重载:同一个类中,方法名相同,但是参数不一样(参数类型、数量)

       I. Python

    仅重写,没有重载

       II.Java

    静态字段不能被重写,实例方法仅在构造函数中才能被重写

       III.Scala

    必须使用override修饰

3.7 多态

  多态:

    目的是为了让代码更加,降低耦合

    有继承或实现特质(接口)

    父类引用指向子类对象或接口指向实现类

    方法需要重写

  三者概念一致,

       I. Python

       II.Java

       III.Scala

 

原文:https://www.cnblogs.com/satansz/p/13053199.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!