程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Java(SE)與C++之我見(大學的時候寫的)

Java(SE)與C++之我見(大學的時候寫的)

編輯: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
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++語言中本身沒有多線程,都是與操作系統相關。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved