迈向面向对象程序设计的第一步:封装(c#描述)
来源:互联网 发布:qq飞车帝王雷诺数据 编辑:程序博客网 时间:2024/06/06 09:30
public class Department
...{
private string departname;
.......
// 读方法
public string GetDepartname()
...{
return departname;
}
//写方法
public void SetDepartname( string a)
...{
departname=a;
}
}
通过上面的方法,我们可以保护私有数据不被外部程序所破坏。现在我们使用两个不同的方法来写和读数据 在上面的例子中,我们不能直接访问类Department的实例d中的私有数据(string departname),我们只能通过这两个方法来访问。 用属性来实现封装 属性是c#引入的一种语言成分,只有很少的语言支持属性。通过对属性的读和写来保护类中的域。第一种方法体身也是一种好的方式,但用属性来实现封装会更方便。 现在我们来看一个例子: 通过上面的例子,我们可以看到如何通过属性来实现封装。属性具有两种操作get和set。Get用来返回属性域的值。Set通过value这个变量来给属性域赋值。属性可以设为只读的(read-only)。这只需属性只具有一个set操作。 只读属性
public class Department
...{
private string departname;
public string Departname
...{
get
...{
return departname;
}
set
...{
departname=value;
}
}
}
public class Departmentmain
...{
public static int Main(string[] args)
...{
Department d= new Department();
d.departname="Communication";
Console.WriteLine("The Department is :{0}",d.Departname);
return 0;
}
}
using system;
public class ReadDepartment
{
private string departname;
public ReadDepartment(string avalue)
{
departname=avalue;
}
public string Departname
{
get
{
return departname;
}
}
}
public class ReadDepartmain
{
public static int Main(string[] args)
{
ReadDepartment d= new ReadDepartment("COMPUTERSCIENCE");
Console.WriteLine("The Department is: {0}",d.Departname);
return 0;
}
}
在上面的例子中我们看到了如何来实现一个只读的属性。类ReadDepartment拥有一个Departname属性只实现了get操作。它省略了写操作。这个特别的类拥有一个构造器,用来接受一个字符串变量。类ReadDepartmain中的Main方法创建了一个新的对象d。对像d的实例使用了类ReadDepartment带有一个字符串参数的构造器。因为上面的属性是只读的,所以我们不给给域departname赋值并且我们只侧读取此域中的值。当然属性也可以是只写的(write-only),这只需属性只具有一个get操作。
只写属性
using system;
public class WriteDepartment
{
private string departname;
public string Departname
{
set
{
departname=value;
Console.WriteLine("The Department is :{0}",departname);
}
}
}
public class WriteDepartmain
{
public static int Main(string[] args)
{
WriteDepartment d= new WriteDepartment();
d.departname="COMPUTERSCIENCE";
return 0;
}
}
在上面的例子中我们看到了如何来实现一个只写的属性。类WriteDepartment拥有一个Departname属性只实现了set操作。它省略了读操作。
总结
封装是朝着面向对象程序设计迈出的第一步。本文向您展示了一些封装的知识。用传统的读、写两种方法可以实现封装,另一种实现封装的方法是使用属性。使用属性的好处在于对象的使用者可以用一条语句来操作内部的数据。
...{
Department d = new Department();
d.SetDepartname("ELECTRONICS");
Console.WriteLine("The Department is :"+d.GetDepartname());
return 0;
}
- 迈向面向对象程序设计的第一步:封装(c#描述)
- 迈向面向对象程序设计的第一步:封装(c#描述)
- 迈向面向对象程序设计的第一步:封装(c#描述)
- 迈向程序员的第一步
- 迈向 flex 的第一步
- 迈向程序员的第一步
- 迈向程序员的第一步
- C#面向对象程序设计
- 迈向架构师的第一步
- 迈向架构师的第一步
- 迈向架构师的第一步
- 迈向架构师的第一步
- 迈向架构师的第一步
- 迈向架构师的第一步
- 迈向架构师的第一步
- 学习C#030428面向对象的程序设计
- 面向对象的程序设计(Object Oriented Programming)之一-----封装
- LUA面向对象程序设计(六)数据的封装
- [学习笔记]Linux应用程序开发指南:使用GTK+Gnome库-01-Gnome的开发结构
- 对学习编程2个半月的总结!
- 用Visual C#来清空回收站
- .NET的数据库编程技术
- 尽可能地使用const
- 迈向面向对象程序设计的第一步:封装(c#描述)
- [学习笔记]X Window
- 运用 ADO.NET 对象优化数据查询代码
- 显示桌面的图标恢复
- [转载]將 DVD-9 影片備份成 DVD-5 的教學資料介紹與整理
- [烧录]將 DVD-9 影片備份成 DVD-5 的進階應用
- 取得设备网卡的MAC地址和硬盘的卷标号
- phpMyAdmin error about language selection
- 孕妇缺碘 孩子易患多动症