main 方法
Java
1 | //java 的函数必须写在类里 |
C++
1 | //C++ 的函数可以写在任意地方 没有限制 |
编译
Java
1 | // 编译成 HelloWorld.class |
C++
1 | //编译生产helloworld |
注释
Java 和 C++ 注释的方法都是一样的分别为行注释//
和块注释/* */
。
类的声明
大部分是一样的但是C++ 需要分号结尾而Java 则不需要
Java
1 | class Foo{ |
C++
1 | class Foo{ |
函数的声明
大部分一样,在Java中函数必须定义在类中,并且可以使用 public
,private
,protected
作为前缀,而在C++ 中函数可以单独定义(比如 一个cpp 文件中就一个函数).
构造函数
构造函数基本一致 都是类的名字为构造函数名。但是C++ 中还有个析构函数 这个函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。
静态方法
Java 是通过类名.
来调用静态方法的
C++ 是通过类名::
来调用静态方法的
Java
1 | class HelloWorld{ |
C++
1 | class HelloWorld |
对象的声明
Java
1 | //直接在堆(heap)上分配内存 |
C++
1 | //在堆栈(stack)上 |
访问对象中的属性
Java
1 | HelloWorld helloWorld = new HelloWorld(); |
C++
1 | // 基于堆栈的对象的需要用.来访问对象中的属性 |
引用(References)和指针(pointers)
Java
1 | //Java 中的引用是可变的 并且只存储对象的地址。 Java 中没有指针 |
C++
1 | //引用是不可变的,指针是灵活的 |
继承
Java 只能单继承,C++ 可以多继承(对这个比较头疼,还有环形继承更搞不懂什么鬼。有点难以理解,有兴趣的可以去找找资料)
Java
1 | //java 的继承使用关键字 extends(当然java 中的对象默认都是继承Object 对象的) |
C++
1 | //C++ 使用 : 表示继承 |
访问修饰符
Java
1 | //对所有类可见。 |
C++
1 | //类的外部是可访问,跟Java类似 |
抽象类
Java
1 | //java 可以明确制定为抽象类 子类必须实现print() 函数 |
C++
1 | //只需要定义一个纯虚函数 |
关于纯虚函数和虚函数有什么区别可以点这里看看http://www.runoob.com/w3cnote/cpp-virtual-functions.html
内存管理
都是通过new
来分配内存的,C++ 需要自己来管理内存 释放,Java 则不需要管,有垃圾回收
布尔类型的定义
Java
1 | boolean foo; |
C++
1 | bool foo; |
常量定义
Java
1 | final int x = 8; |
C++
1 | const int x = 8; |
异常
Java
1 | void print() throw IOException{ |
C++
1 | void print(){ |
数组
Java
1 | //直接定义使用 不用管回收问题 |
C++
1 | int x[10]; |
集合和迭代
Java
1 | ArrayList list = new ArrayList(); |
C++
1 | vector myVec; |
暂时补充到这,如发现有问题请联系我哈!