与C#相比,Java的final与const或readonly类似

时间:2011-05-01 02:30:10

标签: c# java

想知道如果与C#相比,java的final更类似于哪个? const还是readonly?

3 个答案:

答案 0 :(得分:9)

有趣的问题,

Java的final关键字意味着一些事情:

  • 您只能分配一次值
  • 您必须在构造函数中指定变量,或者作为声明的一部分

C#的readonly关键字基本上适用相同的限制。

为了完整性 - 让我们看一下const

  • 您只能将其作为声明的一部分分配给它
  • 它本身就是静态的 - 对于你班级的所有N个实例中只有一个

所以 - 我认为final与readonly更相似。

- 丹

答案 1 :(得分:7)

readonly,因为就像在C#中一样,您只能设置final一次,包括在构造函数中。

答案 2 :(得分:1)

Java的final关键字实现了C#readonlyconst关键字的两种情况。

C#只读

public Employee
{
  private readonly string _name;
  public Employee(string name)
  {
      this._name = name;
  }
}

Java最终版本(只读)

public class Employee
{
  private final String name;
  public Employee(String name) {
    this.name=name;
  }
}

C#常量

public class Circle
{
   private const float Pi = 3.14F;
}

Java final(const)

public class Circle 
{
   private final float pi = 3.14F;
}