C++ Java C#.net VB.net 语法对比,转

本对照表旨在当你熟悉其中一门语法,你可以根据本对照表,快速地熟悉另外的语言的语法。

1.基本数据类型

基础类型名 C++   VB.net   C#.net     Java

______________________________________________

布尔型   bool   Boolean   Boolean     boolean

字符型   char   Char     Char      char

短型    short   Short    Short      short

整型    int    Integer   Integer     int

长型    long   Long    Long      long

单精型   float   Single    Single      float

双精型   double  Double   Double     double

指针    void*   N/A     N/A       N/A

字符串型  string   String    String     String

2.声明

1)变量的声明

C++  : 类型名 变量名 [= 初值] [, 变量名 [= 初值] [, 变量名 [= 初值] [, …]]];

VB.net: Dim 变量名 as 类型名 [= 初值] [, 变量名 as 类型名 [= 初值] [, …]]

C#.net: 类型名 变量名 [= 初值] [, 变量名 [= 初值] [, 变量名 [= 初值] [, …]]];

Java  : 类型名 变量名 [= 初值] [, 变量名 [= 初值] [, 变量名 [= 初值] [, …]]];

示例:

C++  : int nValue;

VB.net: Dim nValue as Integer

C#.net: Integer nValue;

Java  : int nValue;

2)常量的声明

C++  : const 类型名 常量名 = 值 [, 常量名 = 值 [, 常量名 = 值 [, …]]];

VB.net: Const 常量名 as 类型名 = 值 [, 常量名 as 类型名 = 值 [, …]]

C#.net: const 类型名 常量名 = 值 [, 常量名 = 值 [, 常量名 = 值 [, …]]];

Java  : final 类型名 常量名 = 值 [, 常量名 = 值 [, 常量名 = 值 [, …]]];

示例:

C++  : const float PI = 3.1415926;

VB.net: Const PI as Single = 3.1415926

C#.net: const Single PI = 3.1415926;

Java  : final float PI = 3.1415926;

3)数组的声明

C++  : 类型名 数组名[维数];

VB.net: dim 数组名(维数) as 类型名 or dim 数组名() as 类型名={0,1,2}

C#.net: 类型名 数组名[维数];

Java  : 类型名 数组名[维数];

示例:

C++  : int nArray[255];

VB.net: dim nArray(255) as Integer

C#.net: Integer nArray[255];

Java  : int nArray[255];

访问方法:

C++  : 数组名[下标];

VB.net: 数组名(下标)

C#.net: 数组名[下标];

Java  : 数组名[下标];

示例:

C++  :nArray[2];

VB.net: nArray(2)

C#.net: nArray[2];

Java  :nArray[2];

4)全局函数的声明

C++  : 返回值类型 函数名(参数列表)

{

……

return 返回值;

……

}

VB.net: 分为过程和函数两种,过程没有返回值

过程: Sub 过程名(参数列表)

……

Exit Sub

……

End Sub

函数: Function 函数名(参数列表) As 返回类型

         ……

         Return 返回值

         ……

        End Function

C#.net: 无全局函数声明

Java  : 无全局函数声明

示例:

C++  :

int AddPar(int nPar1, int nPar2)

{

return nPar1 + nPar2;

}

VB.net:

Function AddPar(ByVal nPar1 As Integer, ByVal nPar2 AsInteger) As Integer

Return nPar1 + nPar2

EndFunction

C#.net:N/A

Java  :N/A

5)面向对象的声明(即类声明)

1.面向对象的关键字的比较

关键字   C++   VB.net   C#.net  Java

______________________________________________

名域  namespace NameSpace namespace package  Java中的package会起到同样的效果

类声明符  class   Class    class   class

接口声明符 class   Interface  interface interface

公共访问符 public   Public    public   public

私有访问符 private  Private   private  private

保护访问符 protected Protected  protected protected

构造函数  类名   New    类名   类名

析构函数  ~类名  Finalize    finalize  finalize   VB.net、C#.net和Java并无真正意义上的析构函数

类继承符  : (冒号)  Inherits   : (冒号)  extends

接口实现  : (冒号) Implements  : (冒号)  Implements

运算符重载 operator  N/A    operator  N/A    虽然C#可以可以重载运算符,但可以重载的运算符有限

覆写父类函数 virtual  Overrides  override  abstract

或实现接口函数

示例:

C++:

namespace EVACN //名域

{

 //接口IWorker

 class IWorker

 {

  virtual void Work() = 0;

 };

 

 //类Factory

 class Factory : public Building,// 父类

  publlc IWorker// 所要实现的接口

 {

 public:

  Factory() //构造函数

  {

   //……

  }

 

  ~Factory()//析构函数

  {

   //……

  }

 

  void Work()//所实现的接口方法

  {

   //……

  }

 

  string GetName()//成员函数

  {

   return string(“Evacn Studio.”);

  }

 

  bool operator+ (IWoker *p) //重载运算符+

  {

   return true;

  }

 protected:

  int m_nSize;//成员变量

 };

}

VB.net:

Namespace EVACN ‘名域

 //接口IWorker

 Public Interface IWorker

  Sub Work()

 End Interface

 

 ‘类 Factory

 Public Class Factory

     Inherits Building ‘父类

     Implements IWoker ‘所要实现接口

  Public Sub New() ‘构造函数

  ‘……

  End Sub

 

  Public Sub Finalize() ‘析构函数

  ‘……

  End Sub

 

  Public Overrides Sub Work Implements IWorker.Work ‘所实现的接口函数

  ‘……

  End Sub

 

  Public Function GetName As String ‘成员函数

   Return “Evacn Studio.”

  End Function

  

  ‘operator + 重载运算符不可能

 

  Protected m_nSize As Integer ‘成员变量

 End Class

End Namspace ’EVACN

C#.net:

namespace EVACN //名域

{

 Interface IWoker

 {

  void Work();

 }

 

 Class Factory : Building //父类

        IWoker

 {

  public Factory() //构造函数

  {

   //……

  }

 

  public finalize() //析构函数

  {

   //……

  }

 

  public override void Work() //所实现的接口函数

  {

   //……

  }

  

  public String GetName() //成员函数

  {

   return “Evacn Studio.”;

  }

 

  public Boolean operator+ (IWorker p) //重载运算符+

  {

   return true;

  }

 

  protected Integer m_nSize; //成员变量

 }

}

Java:

package EVACN; //包

Interface IWorker

{

 void Work();

}

class Factory extends Building // 父类

       Implements IWork // 所要实现的接口

{

 public Factory() //构造函数

 {

  //……

 }

 public finalize() //析构函数

 {

  //……

 }

 public void Work() //所实现接口函数

 {

  //……

 }

 public String GetName() //成员函数

 {

  return “Evacn Studio.”;

 }

 protected int m_nSize; //成员变量

}

3.语句

C类(其中包括C++,C#,Java)中的语句是完全通用的。

关键字  C类(其中包括C++,C#,Java)  VB.net

______________________________________________________

等于判断语句 ==           =

判断语句  if、else          IF、THEN、ELSE、END IF

分支语句  switch、case       SELECT、CASE、END SELECT

异常处理语句 try,catch,finally,throw  TRY、CATCH、FINALLY、END TRY、Throw

循环语句  for, while, do       FOR、TO、STEP、NEXT、WHILE、LOOP、END WHILE

      continue,break      EXIT DO、EXIT WHILE、EIXT FOR

示例:

1>判断语句

C类:

if (a == b )

{

 a = 12;

 b = 13;

}

else

{

 a = b;

 b = 13;

}

VB:

IF a = b THEN

a = 12 : b =13

ELSE

a = b : b = 13

END IF

2>分支语句

C类:

switch (a)

{

case 1:

 b = 12;

 break;

case 2:

 b = 13;

 break;

case 3:

 b = 14;

 break;

default:

 b = 0;

}

VB:

Select a

Case 1

 b = 12

Case 2

 b = 13

Case 3

 b = 14

Case Else

 b = 0

End Select

3>循环语句:

1)for

C类:

for (i = 0; i < 10; i++)

{

 //……

}

VB:

FOR i = 0 to 10 Step 1

‘……

NEXT

2)while

C类:

while(true)

{

 //……

}

VB:

While true

‘……

END While

3)do while

C类:

do

{

 //……

}

while(true)

VB:

Do

‘……

Loop While True

4>异常处理语句

C类:

try

{

//……

throw int(0);

}

catch(int e)

{

//……

}

finally

{

//……

}

VB:

TRY

‘……

THROW New Exception

CATCH e As Exception

‘……

FINALLY

‘……

END TRY

4.程序结构:

关键字   C++   VB.net   C#.net   Java

____________________________________________

包含   #include  import  #import   import

     #import

由于C#,Java,VB是纯面向对象语言。所以主函数都在主类中。而C++则是将主函数作为全局函数声明出来。