首页 > 代码库 > Java(SE)与C++之我见(大学的时候写的)

Java(SE)与C++之我见(大学的时候写的)

  读大学的时候写的,偶然看到,拿来共享下。

大学里面学了很多编程语言相关的东西,汇编,C、Objective-C、C++、C#、HTML、CSS+DIV、ASP.NET、JavaScript、XML、VHDL、Java等,以前选修Java,纯属打酱油。对于TIOBE编程语言排行榜的前五名语言,都学过了。主要研究方向是C/C++,在培训机构培训了4个月,在学校用过C#做过几次课设,在公司用Objective-C做了半年的开发,只有Java学得最差,趁大学最后的时间,刚好宿舍又有Java大神,恶补中。
    多懂几门语言,才能站在一定的高度,看到各种语言之间的优劣,对编程有更深刻的理解。听别人说,语言不懂要,重要的是算法和思想,只有当弄懂两三门语言之后,大概也才能理解这话的意思。
    学完Java的基础部分,感觉跟C++没有什么区别,不到两天时间,完全能够搞定,要说有不同就是控制台输入。
1 控制台输入不同
Java:
import java.util.Scanner;
Scanner in = new Scanner(System.in);
int i = in.nextInt();
String str = in.nextLine();
.....
C++:
#include <iostream>
using namespace std;
int i;
cin >> i;
String str;
cin >> str; 
... 
    开始学习Java的面向对象部分,Java的类跟C++的类也差不多的,只有些细微的差别。
 2 API提供方式
Java:
使用Javadoc提取源文件中文档注释(/**.....*/)中的内容,类必须是public类型的,生成网页,以网页的方式提供。
其中包括:
文件说明:@author XXX(作者) ,@version XXX(版本)
函数说明:@param args XXX(传入参数),@return XXX(返回值)
C++ :
头文件的形式提供

3 类的修饰词
Java:
public   在本包和其他包中可见,强制类名跟文件名一样,同时也只有public类才能用Javadoc生成文档
abstract 表明是抽象类 必须被继承后才能使用  
final 不能被继承(还可以修饰函数,使之不能被重修,修饰变量,使之成为常量,相当于C++中的const)
C++:
类没有修饰词

4 引用文件
Java:
导包的形式:src文件下的文件夹开始
import  src文件夹.子文件夹1.子文件夹2.~.类文件名
C++:
#include "当前文件夹中文件夹/子文件夹1/子文件夹2/~/类的头文件名"

5 继承
Java:
只支持单继承,通过关键字extends,没有继承方式的选择,可是实现多个接口,使用关键字implements,后面的多个接口名通过逗号分开
C++:
支持多继承,继承方式可以有public,protected和private,使用冒号“:”

6 子类构造函数
Java:
在子类中通过调用super(参数列表)来调用父类的构造函数
C++:
在子类构造函数的参数初始化列表中调用父类的构造函数

7  类成员变量的默认参数
Java:
可以在定义时直接赋初值
C++:
在构造函数的参数中给定默认值

8 接口
Java:
使用interface定义,其中的函数必须是abstract的,可以选择性实现接口
C++:
没有接口,使用抽象类

9 异常处理
Java:
try - catch - finally
C++:
try - catch

10 命名空间
Java:
package 类名(包括路径);
C++:
using namespace 命名空间命;

多线程:
Java:
继承Thread类重写Run方法,调用start启动线程
实现Runnable接口中的Run方法,调用start启动线程
C++:
C++语言中本身没有多线程,都是与操作系统相关。

Java(SE)与C++之我见(大学的时候写的)