在c#中理解面向对象
2008-08-15 21:49
211 查看
一直以为自己算是比较理解什么是面向对象了,而在今天写代码的过程中发现了一些问题,原来自己不是那么的懂,整理了一下,给我和需要的朋友一个方便!
我现在还是一学生,欢迎交流,指教!
和以前一样以问题开头,如何在父窗体中操作子窗体的变量,如何在子窗体中操作父窗体的变量,又如何在这些操作中保持较好的高内聚和低耦合呢?
而这里面就 要提一下面向对象的特点了:[b]封装、继承和多态[/b]
**封装**
在C#中可使用类来达到数据封装的效果,这样就可以使数据与方法封装成单一元素,以便于通过方法存取数据。除此之外,还可以控制数据的存取方式。
在面向对象的世界中,大多数都是以类作为数据封装的基本单位。类将数据和操作数据的方法结合成一个单位。设计类时,不直接存取类中的数据,而是通过方法来存取数据,如此就可以达到封装数据的目的,方便以后的维护升级,也可以在操作数据时多一层判断。
此外,封装还可以解决数据存取的权限问题,可以使用封装将数据隐藏起来,形成一个封闭的空间,然后就可以设置哪些数据只能在这个空间中使用,哪些数据可以在空间外部使用。如果一个类中包含敏感数据,有些人可以访问,有些人却不能访问。如果不对这些数据的访问加以限制,后果是很严重的。所以在编写程序时,要对类的成员使用不同的访问修饰符,从而定义他们的访问级别。
在这个使用过程中需要提到一下的是get和set访问器以及字段变量的区别了,这大概是最常用的了吧
class myclass
class myclass
"); // checking
}
if(this.age != value)
{
this.ageChanged = true; // extra routine
}
this.age=value;
}
}
}
总结:属性除了公布字段外,还可以在属性上添加对字段的约束规则,比如只读,只写,读写规则,还可以对属性的值进行逻辑验证等等.另外从软件设计的角度来看,属性是方法,应该被 公开,而字段是数据 ,应该被封装.
我现在还是一学生,欢迎交流,指教!
和以前一样以问题开头,如何在父窗体中操作子窗体的变量,如何在子窗体中操作父窗体的变量,又如何在这些操作中保持较好的高内聚和低耦合呢?
而这里面就 要提一下面向对象的特点了:[b]封装、继承和多态[/b]
**封装**
在C#中可使用类来达到数据封装的效果,这样就可以使数据与方法封装成单一元素,以便于通过方法存取数据。除此之外,还可以控制数据的存取方式。
在面向对象的世界中,大多数都是以类作为数据封装的基本单位。类将数据和操作数据的方法结合成一个单位。设计类时,不直接存取类中的数据,而是通过方法来存取数据,如此就可以达到封装数据的目的,方便以后的维护升级,也可以在操作数据时多一层判断。
此外,封装还可以解决数据存取的权限问题,可以使用封装将数据隐藏起来,形成一个封闭的空间,然后就可以设置哪些数据只能在这个空间中使用,哪些数据可以在空间外部使用。如果一个类中包含敏感数据,有些人可以访问,有些人却不能访问。如果不对这些数据的访问加以限制,后果是很严重的。所以在编写程序时,要对类的成员使用不同的访问修饰符,从而定义他们的访问级别。
在这个使用过程中需要提到一下的是get和set访问器以及字段变量的区别了,这大概是最常用的了吧
class myclass
class myclass
"); // checking
}
if(this.age != value)
{
this.ageChanged = true; // extra routine
}
this.age=value;
}
}
}
总结:属性除了公布字段外,还可以在属性上添加对字段的约束规则,比如只读,只写,读写规则,还可以对属性的值进行逻辑验证等等.另外从软件设计的角度来看,属性是方法,应该被 公开,而字段是数据 ,应该被封装.
相关文章推荐
- (教学思路 c#之面向对象二) 初步理解面向对象的基本概念
- 从C#谈对面向对象的理解点滴(一)
- 浅谈对c# 面向对象的理解
- 对面向对象,VC,C#的理解
- C# 对try catch和void的简单理解
- C#中关于派生类的构造函数的一些理解
- 深入理解C#的对象模型
- 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈
- 对Python面向对象的理解
- 关于C#中Thread.Join()的一点理解
- 面向对象的理解
- 快速理解C#高级概念(一) Delegate委托
- 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第六节 理解垃圾回收GC,提搞程序性能
- 深入理解C#(第2版)pdf
- 蜂窝教育:教你如何理解Java面向对象
- [原创]深入理解C#3.x的新特性(4):Automatically Implemented Property
- 对面向对象的特点之一的封装进行理解
- C#中 委托、事件、回调理解
- 对C#委托及事件委托的理解
- 从C#到Python —— 4 类及面向对象