封装、访问器C与Java
一个关于封装、访问器C与Java,java,c#,encapsulation,accessor,Java,C#,Encapsulation,Accessor,一个关于CvsJava中的封装和访问器的快速问题。 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;
C
vsJava
中的封装和访问器的快速问题。
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
中的访问器是否缩短了不,在C代码中有私有setter,在java代码中它们是公共的
相当于Java代码的C#是:
public string Var1 { get; set; }
public int Var2 { get; set; }
(我已将名称更改为遵循.NET命名约定-属性为PASCALCASE。)老实说,您可能不应该在这两个字段中都有公共集合字段
拥有一个公共的变种人有什么好处?我很少看到有理由使用公共mutator。
void int
和void String
不是有效的返回类型…;)在没有IDE的情况下编写代码时,有一个有趣的坏习惯,感谢我现在看到的更正OK,尽管setter@JimC:您没有声明公共变量-只是一个公共属性。支持字段仍然是私有的。C版本没有公共的变异子。我知道。我只是做一个一般性的陈述。爪哇人做了,如果他让它得到;设置在C#to match中,他们都会公开,可能不应该公开。