seemebaby 发表于 2017-5-2 09:43:11

编程语言比较:AS vs C++ vs Java vs Python

文件/类
是否支持一个文件内定义多个类?(基于C++)
AS:    支持。但只允许有一个public类。此类需要包含在package的括号里,而其他类则不能在括号里。C++:   支持,无限制。Java:支持,但只允许有一个public类。Python:支持,无限制。
类名是否必须和文件名(不包含后缀)相同?(基于AS)
AS:    是C++:   否Java:是(public 类需和文件名相同)Python:否
是否允许private或者protected构造函数?(基于C++)
AS:    否,构造函数只能是public的C++:   是Java:是Python:待完成
函数
函数格式(基于C++)
AS:      public function functionName(parameters...):returnType { functionBody }
C++:   public returnType functionName() { functionBody }
Java:    同C++
Python:def functionName():
             tab缩进 functionBody
是否支持缺省参数(基于C++)
AS:    支持。C++:   支持。Java:不支持。Python:支持。
示例代码(C++):
int a(int b = 10)
{
....
}

是否支持出参?(基于C++)
AS:支持。 通过pass by reference。前提是出参必须是Object对象。
C++:支持。通过指针和引用,对出参的数据类型没有要求,即使是基本数据类型也支持。
是否支持函数重载?(基于C++)
AS:    不支持。类里不允许出现同名函数,编译时报错。C++:   支持。Java:支持。Python:不支持。后边的同名函数会把前边的函数覆盖/替换掉。
是否支持返回多个结果?(基于Python)
AS:    不支持。C++:   不支持。Java:不支持。Python:支持。
是否支持package level 函数?(基于AS)
AS:    支持。C++:   不支持。C++没有package的概念,只有类似的namespace的概念。Java:不支持。Python:支持。
语法
switch、case是否支持对象类型(基于AS)
AS:    支持C++:   必须是整型常量Java:必须是整型常量Python:没有"switch case"语句,只能使用"if ... elif ... elif"替代
是否支持__FILE__,__LINE__,__FUNCTION__(基于C++)
AS:    不支持C++:   支持Java:不支持Python:待测试
是否支持Interface?(语法层面,基于Java)
AS:    支持,使用Interface关键字。C++:   不支持Java:支持,使用Interface关键字。Python:不支持
是否支持final class和final function?(基于Java)
AS:    支持,使用final关键字。C++:   不支持,没有final关键字,待完成Java:支持,使用final关键字。Python:不支持,待完成
是否支持在运行时判断对象是否是特定类的实例?(基于Java)
AS:    支持,使用is关键字。 obj is classC++:   不支持Java:支持,使用instanceof关键字。obj instanceof classPython:支持,使用内建函数isinstance。 isinstance(obj, class)
是否友元类或者友元函数?(基于C++)
AS:    不支持C++:   支持Java:不支持Python:不支持
是支持数据类型:double和float?(基于C++)
AS:    不支持,替代类型为:NumberC++:   支持Java:支持Python:不需要声明
5 / 2 的结果(基于AS)
AS:    2.5 C++:    2 Java: 2 Python: 2
常用函数
求最小值
AS:    Math.min,支持两个以上参数C++:   algorithm:min,仅支持两个参数Java:Math.min,仅支持两个参数Python:min,支持两个以上参数
页: [1]
查看完整版本: 编程语言比较:AS vs C++ vs Java vs Python