一直以为自己算是比较理解什么是面向对象了,而在今天写代码的过程中发现了一些问题,原来自己不是那么的懂,整理了一下,给我和需要的朋友一个方便!

       我现在还是一学生,欢迎交流,指教!

和以前一样以问题开头,如何在父窗体中操作子窗体的变量,如何在子窗体中操作父窗体的变量,又如何在这些操作中保持较好的高内聚和低耦合呢?

而这里面就 要提一下面向对象的特点了:封装、继承和多态

**封装**

        在C#中可使用类来达到数据封装的效果,这样就可以使数据与方法封装成单一元素,以便于通过方法存取数据。除此之外,还可以控制数据的存取方式。
在面向对象的世界中,大多数都是以类作为数据封装的基本单位。类将数据和操作数据的方法结合成一个单位。设计类时,不直接存取类中的数据,而是通过方法来存取数据,如此就可以达到封装数据的目的,方便以后的维护升级,也可以在操作数据时多一层判断。
       此外,封装还可以解决数据存取的权限问题,可以使用封装将数据隐藏起来,形成一个封闭的空间,然后就可以设置哪些数据只能在这个空间中使用,哪些数据可以在空间外部使用。如果一个类中包含敏感数据,有些人可以访问,有些人却不能访问。如果不对这些数据的访问加以限制,后果是很严重的。所以在编写程序时,要对类的成员使用不同的访问修饰符,从而定义他们的访问级别。

      在这个使用过程中需要提到一下的是get和set访问器以及字段变量的区别了,这大概是最常用的了吧

class myclass 
 

      属性中能实现各种复杂的逻辑,而这些是直接把一个字段共有所不能实现的.从这里就能体现出get和set访问器带来的好处了;

     具体有:

1、属性可以只读或只写,比如下面代码,共有字段变量一定是可读写的。
2、属性可附带错误检查或额外的的代码,共有字段变量的读写不能。
3、虽然这些都是编译器给带来的好处,但封装有很多好处,像细节隐藏,实现隐藏等。比如说有一天人可以活到200岁,更改if(value > 200)不会影响其他调用Age的函数。

在c#中理解面向对象class myclass 

 总结:属性除了公布字段外,还可以在属性上添加对字段的约束规则,比如只读,只写,读写规则,还可以对属性的值进行逻辑验证等等.另外从软件设计的角度来看,属性是方法,应该被 公开,而字段是数据 ,应该被封装.

 

 

 

 

 

 

 

相关文章:

  • 2022-02-19
  • 2021-11-16
  • 2022-02-17
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2022-02-09
猜你喜欢
  • 2022-02-09
  • 2022-12-23
  • 2021-07-27
  • 2022-12-23
  • 2022-02-09
  • 2022-01-12
  • 2022-02-09
相关资源
相似解决方案