封装,访问者C#vs Java

时间:2015-06-02 19:04:19

标签: java c# encapsulation accessor

C# vs Java中有关封装和访问者的快速问题。 C#中的代码是否等同于下面的Java中的代码?

C#

class MyClass{

    public string var1 {get; private set;}
    public int var2 {get; private set;}

    public MyClass(string aString, int anInt){
        this.var1= aString;
        this.var2=anInt;
    }

}

的java

//Java
class MyClass{

    private String var1;
    private int var2;

    public MyClass(String aString, int anInt){
        this.var1= aString;
        this.var2=anInt;
    }

    public String getVar1(){
        return this.var1;
    }

    public void setVar1(int anInt){
         this.var1 = anInt;
    }

    public int getVar2(){
        return this.var2;
    }

    public void setVar2(String aString){
         this.var2 = aString;
    }

}

我来自java世界,不确定C#中的访问者缩短。

2 个答案:

答案 0 :(得分:3)

不,在C#代码中,您已经拥有了私人制定者 - 在您的Java代码中,他们已经公开了。

与Java代码等效的C#将是:

public string Var1 { get; set; }
public int Var2 { get; set; }

(我已将名称更改为遵循.NET命名约定 - 属性为PascalCased。)

答案 1 :(得分:0)

为了说实话,你可能不应该有公共场地。

拥有公共mutator有什么好处?我很少见到有公共改变者的理由。