您的位置:首页 > 编程语言 > Java开发

Java与C#语法比较

2012-04-04 18:05 357 查看
基本数据类型 

Java有八种基本数据类型:boolean,byte,char,short,int,long,float,double 

C#的数据类型会多一些,Java中的数据类型都是有符号的,而C#中还定义了相应的无符号数据类型:bool,(byte,sbyte),char,(short, ushort) ,( int, uint) , (long, ulong),float,double,decimal 

 
结构 

在C#中的结构使用struct关键字定义;Java 不支持

 
可空值类型 

空值类型是在.NET 2.0发布的时候被引入的。使用泛型(Generics),任何值类型都可以被包装成空类型,从而可以有空值;Java 不支持

引用类型 

所有的类类型(除了String)都是引用类型 

在一个值类型转换为相应的类类型时,Java和C#都有自动装箱机制,感觉C#做的更进一步,比如,将一个int数值转为一个String: 

Java  :int num = 100;               C# :int num = 100; 

num.ToString(); //出错             num.ToString();  //自动装箱 

常量 

Java的常量用final来定义 

C#中有两个关键字:const和readonly, readonly可以在声明时赋值也可以在构造函数中赋值,const必须在声明的同时赋值

枚举 

赋初始值上有分别:

Java:enum Status {Start, Stop, Rewind, Forward}; 

      enum Status { Start (20), Stop (40), Rewind (60) , Forward (80)}; 

C#: enum Status {Start, Stop, Rewind, Forward}; 

     enum Status { Start = 20, Stop = 40, Rewind = 60, Forward = 80};

属性访问

在Java中需要暴露一个属性通常用set/get方法;

在C#提供了get 和set 访问器来做这个工作

文件和类 

在Java中一个类文件只能有一个公有类,且类名必须与文件名相同; 

但在C#中没有这种限制,一个文件可以有多个公有类,一个类还可以分散放在多个文件中(使用Partial 关键字)。 

命名规范

Java的类方法一般用小写字母开头,而C#的类方法一般用大写字母开头。 

运算符 

Java和C#基本相同,只是Java多了一个位运算符 

>>> 右移,左边空出的位以0填充 

流程控制 

Java和C#基本相同,唯一的一点区别是在做遍历时的写法: 

Java:   for (int i : numArray)                  C#:  foreach (int i in numArray) 

数组 

Java:  int[][] d;                             C#:   int[][] d;  还有一种写法:int[,] d; 

包(命名空间) 

Java:package harding.compsci.graphics;  

      import harding.compsci.graphics.*; 

C#:  namespace Harding.Compsci.Graphics {} 

      using Harding.Compsci.Graphics; 



继承和接口 


Java和C#的继承与接口实现机制是一样的,两者都只能单继承,可以实现多接口 

Java的继承用extends关键字,接口用implements 关键字, 

C#中都是用: 如 

public class MyClass : ParantClass, Interface1,Interface2 {} 

public class MyClass extends ParantClass implements Interface1,Interface2 {}

Java常用包

Java.lang:基础 

Java.util: 工具库 

Java.net: 网络通信用协议包 

Java.io:  输入输出管道 

Java.awt : 基本图型工具包 

Javax.swing : 高级图型工具包 

Java.math : 数学括展包 

Java.sql : 用来访问DB的包 

.NET常用命名空间: 

System:基础

System.Collections :集合相关,比如列表,队列,数组,哈希表等 

System.IO :  数据流 

System.Text : 包含了一些表示字符编码的类型及字符串的操作和格式化 

System.Reflection :反射相关 

System.Threading :多线程 

System.Drawing :绘图 

System.Data :数据访问 
System.Net :网络通信 

附:关键字区别

c#
Java
c#
Java
c#
Java
c#
Java
abstract
abstract
extern
native
operator
N/A
throw
throw
as
N/A
false
false
out
N/A
true
true
base
super
finally
finally
override
N/A
try
try
bool
boolean
fixed
N/A
params
...
typeof
[b]N/A
break
break
float
float
partial
N/A
uint
N/A
byte
N/A
for
for
private
private
ulong
N/A
case
case
foreach
for
protected
N/A
unchecked
N/A
catch
catch
get
N/A
public
public
unsafe
N/A
char
char
goto
goto
readonly
N/A
ushort
N/A
checked
N/A
if
if
ref
N/A
using
import
class
class
implicit
N/A
return
return
value
N/A
const
const
in
N/A
sbyte
byte
virtual
N/A
continue
continue
int
int
sealed
final
void
void
decimal
N/A
interface
interface
set
N/A
volatile
volatile
default
default
internal
protected
short
short
where
extends
delegate
N/A
is
instanceof
sizeof
N/A
while
while
do
do
lock
synchronized
stackalloc
N/A
yield
N/A
double
double
long
long
static
static
:
extends
else
else
namespace
package
string
N/A
:
implements
enum
N/A
new
new
struct
N/A
N/A
strictfp
event
N/A
null
null
switch
switch
N/A
throws
explicit
N/A
object
N/A
this
this
N/A
transient
参考:

http://blog.renren.com/share/223803214/1026680561
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息