编程语言比较: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]