C#和JAVA GET,SET对比

来源:互联网 发布:陕西广电网络吧 编辑:程序博客网 时间:2024/06/11 16:01
使用GET,SET方法的好处:
隐藏内部成员,但又想外部能够以某
种正确的方式来访问和修改内部成员的属性,
因此通过构造GET,SET访问器来控制访问成员,确保数据的一致,完整和正确性。


下面分析JAVA和C#写法


JAVA写法:通过定义GET,SET方法来访问内部属性,达到控制访问的目的。
命名规范:所有成员变量,最好以小写字母开头。GET,SET访问器(方法)的对应属性值则以大写字母开头。
复制代码
public class Dog { private int age; private String name; public int getAge()
{ this.age;
} // SET方法 public void setAge(int age) { // 这世界有超过30岁的狗吗? if (age <= 30) { this.age = age;
}
} public String getName() { // 后缀标识这是一只狗 return this.name + "(Dog)";
} public void setName(String name) { this.name = name;
} public static void main(String[] args) {
Dog dog = new Dog(); // 输入错误的年龄 dog.setAge(40);
dog.setName("honey");
System.out.println(dog.getName() + ",年龄:" + dog.getAge()); // 输入正确的信息 dog.setAge(4);
dog.setName("baby");
System.out.println(dog.getName() + ",年龄:" + dog.getAge());
}
}
复制代码
C#写法
C#单独定义了GET,SET访问器的书写方法,通过暴露的成员“属性”,来达到控制访问。
命名规范:成员变量,以下划线作为前缀,可省去this,避免覆盖,对于属性则以大写字母开头。
复制代码
public class Dog
{ private int _age; private String _name; public int Age
{ get { return _age;
} set { if (value <= 30)
{
_age = value;
}
}
} public String Name
{ get { return _name + "(Dog)";
} set {
_name = value;
}
} static void Main(String[] args)
{
Dog dog = new Dog(); //输入错误的年龄 dog.Age = 40;
dog.Name = "honey";
Console.WriteLine(dog.Name + ",年龄:" + dog.Age + "\n"); //输入正确的信息 dog.Age = 4;


dog.Name = "baby";
Console.WriteLine(dog.Name + ",年龄:" + dog.Age + "\n");
Console.ReadLine();
}


}
复制代码


C#的写法:相比JAVA,更加简洁明了,通过暴露属性方法,而不是通过调用方法的方式来访问内部属性,不仅更加直观,通过也简化了繁琐的代码书写。
0 0