两种封装方法
传统的读、写方法封装:
- //有一个类Name,为了操纵这个类中的数据(string name)我们定义了一个读方法和一个写方法。
- public class Name
- {
- private string name;
- // 读方法
- public string GetName()
- {
- return name;
- }
- //写方法
- public void SetName(string n)
- {
- name = n;
- }
- public static void Main(string[] args)
- {
- Name Country = new Name();
- Country.SetName("China");
- Console.WriteLine("The Name is :" + Country.GetName());
- }
- }
上面的方法保证了私有成员name不被外部成员所破坏,我们实例化一个对象Country来实现读和写数据。在上面的例子中,我们不能直接访问类Name的实例Country中的私有数据(string name),我们只能通过SetName和GetName两个方法来读和写数据。
用属性来实现封装:属性是类的基本组成部分,通过对属性的读和写来保护类中的域。使用属性来实现封装比上一种方法更简单。
- public class Name
- {
- private string name; //需要封装的属性
- public string CountryName
- {
- get{return name;}
- set{name=value;}
- }
- }
- public class Name1
- {
- public static void Main(string[] args)
- {
- Name Country= new Name();
- Country.CountryName = "China";
- Console.WriteLine("The Country is :{0}",Country.CountryName);
- }
- }
上面的例子通过属性实现了stringname的封装,其中属性具有两种操作get和set。Get用来返回属性域的值;Set通过value这个变量来给属性域赋值。