Java基础语法与C++相似,存在一些不同部分
基础语法
- java和C++都使用分号
;
来结束一条语句,使用花括号{}
来定义一个代码块,使用//
和/* */
来注释代码。 - java和C++都支持变量、常量、运算符、表达式、赋值等基本概念,但是有一些细节上的差异。例如:
- java中变量必须先声明后使用,而C++中可以在任何地方声明变量。
- java中没有全局变量和全局函数,所有的内容都必须在类中定义,而C++中可以定义全局变量和全局函数。
- java中没有指针的概念,只有引用类型和基本类型,而C++中有指针和引用两种类型。
- java中没有运算符重载的功能,而C++中可以重载运算符来实现自定义的操作。
- java中没有多重继承的功能,只能实现多个接口,而C++中可以多重继承多个类。
- java和C++都支持类、对象、封装、继承、多态等面向对象的概念,但是有一些细节上的差异。例如:
- java中所有的类都是Object类的子类,而C++中没有统一的根类。
- java中只有public和private两种访问控制符,而C++中还有protected和friend等访问控制符。
- java中构造函数和析构函数都必须与类名相同,而C++中构造函数与类名相同,析构函数在类名前加上波浪线
~
。 - java中没有虚拟继承的概念,而C++中可以使用virtual关键字来避免菱形继承问题。
- java中所有的方法都是动态绑定的,而C++中可以使用virtual关键字来指定哪些方法是动态绑定的。
数据类型
java中基本数据类型有8种:byte、short、int、long、float、double、char、boolean
分别对应8种引用数据类型:Byte、Short、Integer、Long、Float、Double、Character、Boolean
流程控制
- java和C++都支持if-else、switch-case、for、while、do-while等流程控制语句,但是有一些细节上的差异。例如:
- java中if-else和switch-case语句的条件表达式必须是boolean类型或者可以转换为boolean类型的值,而C++中可以是任何类型的值。
- java中switch-case语句的case标签只能是整型或者枚举类型的常量,而C++中可以是任何类型的常量。
- java中for语句的循环变量必须在循环体内定义,而C++中可以在循环体外定义。
- java中没有goto语句,而C++中有goto语句,但是不建议使用。(悲)
注意:无法将整数强转为Boolean类型 所以对于C++的 while(t--) java的实现为 while(t-- > 0)
数组
java和C++都支持一维和多维数组,但是有一些细节上的差异。例如:
- java中数组是一个引用数据类型,它是通过new关键字来创建,并且有一个length属性来获取数组的长度,而C++中数组是一个基本数据类型,它是通过直接定义或者new关键字来创建,并且没有length属性,需要使用sizeof运算符来获取数组的大小。
- java中数组可以作为方法的返回值,而C++中数组不能直接作为函数的返回值,需要使用指针或者引用来返回。
方法(函数)
java中的方法(函数)是一段具有特定功能的代码,可以被重复调用。方法(函数)必须定义在类中,不能单独存在。方法(函数)有以下几个要素:修饰符、返回值类型、方法名、参数列表、方法体、返回语句。