关于网友提出的“5个 C# 和 Java 之间的不同方法”问题疑问,本网通过在网上对“5个 C# 和 Java 之间的不同方法”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:5个 C# 和 Java 之间的不同方法
描述:C#和Java之间最大的区别之一,是如何处理的方法。在这两种语言,方法是功能代码的基石:他们定义变量,并指定对这些变量进行操作,返回值给其他方法使用。尽管Java语言的创建者遵循了许多基于C语言的概念,他们研发的方法允许更少的限制和增加更多的灵活性。
#1: Virtual 方法
C#:方法默认是非虚方法
Java:方法默认是虚方法
虚方法允许任何类继承,并重写其方法。在Java中,所有方法默认是虚方法。此默认设置防止插入的一个与继承类同名的不相关的方法。
在C#中,开发人员必须明确指定带“virtual”关键字的虚方法:
public class Dimensions
{
public const double pi = Math.PI;
protected double x, y;
public Dimensions()
{
}
public Dimensions (double x, double y)
{
this.x = x;
this.y = y;
}
public virtual double Area()
{
return x*y;
}
}
继承类要使用虚方法,该方法必须加上“override”关键字:
public class Circle: Dimensions
{
public Circle(double r): base(r, 0)
{
}
public override double Area()
{
return pi * x * x;
}
}
#2: Generator 方法 C#:支持generator方法
Java:不支持generator方法
generator方法允许开发人员控制如何循环处理每一次迭代。而不是创建一个组,generator方法返回每次迭代后的值作为循环过程的代码。Java没有内置处理generator方法的功能,假设在Java中有这些功能代码,往往也是庞大而复杂的。C#使用“IEnumerable”接口创建generator函数和“yield”命令返回值:
public class TexasCityCollection : IEnumerable {
public IEnumerator GetEnumerator() {
yield return "Houston";
yield return "Auston";
yield return "Dallas";
yield return "San Antonio";
}
}
#3: Partial 方法 C#:支持并限制分部方法
Java:不支持分部方法
Java不支持分部方法。在C#中,分部方法是允许的,但必须符合特定的限制:
· 分部方法方法名必须相同。
· 分部方法必须返回void。
· 分部方法默认是“private”,而且不接受任何修饰符。
#4: Extension 方法 C#:支持扩展方法
Java:不支持扩展方法
扩展方法允许开发人员包括他们当前类型的方法,而不需要创建一个新类型或者修改现有的类型。当前的Java语言不支持扩展方法,但是其特性会考虑放在将来的版本中。
#5: Conditional 条件编译 C#:支持条件编译
Java:有限的支持条件编译
C#编译器允许条件编译:开发者可以输入参数来确定项目编译哪些方法来使用。Java也允许条件编译,但这种做法通常是在调试过程中使用。
原英文链接 ,
OSChina.NET编译
解决方案1:比语法当然是C#胜於Java
但是许多知名且重要的Open Source Project都是使用Java或C++写成
例如:hadoop
况且你在JVM平台如果不喜欢Java语法的落後
可以使用Scala或Groovy
这两种语言除了语言先进且简洁
目前都有成功使用的案例
ex :Twitter的Server端已经迁移到Scala/JVM
解决方案2:语法特性多不代表好。
以上介绍了“5个 C# 和 Java 之间的不同方法”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1242643.html