Chinaunix首页 | 论坛 | 博客
  • 博客访问: 669444
  • 博文数量: 90
  • 博客积分: 1631
  • 博客等级: 上尉
  • 技术积分: 1413
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-15 22:43
文章分类
文章存档

2017年(8)

2016年(9)

2015年(11)

2014年(10)

2013年(9)

2012年(9)

2010年(2)

2009年(10)

2008年(22)

我的朋友

分类: C/C++

2014-06-07 18:01:27

  C#基本知识的学习总共用了有不到10天的时间,这段时间内看完了楚广明老师的教程,并初步了解了C#的基本知识,在加上以前专业课中学习过C++和Java语言,所以在学习C#时一些基本概念很容易理解。在看完视频后,对C#的知识进行了一些整理,主要概括为两个大的方面,一是面向对象部分,二是基本构成,该篇博客也会从这两个方面进行论述。

    C#全称为C-Sharp,是微软公司开发的一种面向对象的编程语言。由C/C++语言演变而来,同时简化和现代化了C++在类、命名空间、方法重载和异常处理的各领域。C#的功能强大,应用较广泛,能够开发Dos程序、桌面应用程序、Web程序、手机应用程序等,并且开发环境使用方便。

C#知识概况图

 一、面向对象

   面向对象部分之所以单独把它列数来是因为它是很多编程语言共有的基础,能够为以后其它面向对象的语言学习提供方便。

  1、特点

    封装、继承、多态与其说是面向对象技术的三大特点,不如说是类的三大特性,因为在面向对象技术中,类是语言的关键,这三大特性都是类所拥有的三大特性。

   封装性

    封装是将数据或方法、函数等集合在一个单元中,我们将该单元称之为类,对于使用该单元的人来说它只知道单元的一些功能,并不能知道具体的实现方法。被封装的对象通常被称之为抽象数据类型。

   ①概念

   可以把程序按某种规则分成很多“块”,块与块之间可能会有联系,每个块都有一个可变部分和一个稳定的部分。我们需要把可变的部分和稳定的部分分离出来,将稳定的部分暴露给其他块,而将可变的部分隐藏起来,以便随时可以让它修改,这项工作就是封装。如:在用类实现某个功能时,我们会定义类及类的属性和方法,其中类可看作是上面的块,类中的属性值是可变部分,类的方法和属性是稳定的部分。

   ②意义

   保护或者防止代码(数据)被破坏。

    私有的数据可以用两种方式来间接的控制。一是传统的读、写方法封装;二是使用属性进行封装。主要有以下好处:

    其一: 使用者只需要了解如何通过类的接口使用类,而不用关心类的内部数据结构和数据组织方法;

    其二:高内聚,低耦合一直是我们所追求的,用好封装恰恰可以减少耦合;

    其三:只要对外接口不改变,可以任意修改内部实现,这个可以很好的应对变化;

    其四:类具有了简洁清晰的对外接口,降低了使用者的学习过程。

   ③两种封装方法

    传统的读、写方法封装:

[csharp] view plaincopy
  1.    //有一个类Name,为了操纵这个类中的数据(string name)我们定义了一个读方法和一个写方法。  
  2.     public class Name  
  3.     {  
  4.         private string name;  
  5.         // 读方法  
  6.         public string GetName()  
  7.         {  
  8.             return name;  
  9.         }  
  10.         //写方法  
  11.         public void SetName(string n)  
  12.         {  
  13.             name = n;  
  14.         }  
  15.         public static void Main(string[] args)  
  16.         {  
  17.             Name Country = new Name();  
  18.             Country.SetName("China");  
  19.             Console.WriteLine("The Name is :" + Country.GetName());  
  20.         }  
  21. }  

    上面的方法保证了私有成员name不被外部成员所破坏,我们实例化一个对象Country来实现读和写数据。在上面的例子中,我们不能直接访问类Name的实例Country中的私有数据(string name),我们只能通过SetName和GetName两个方法来读和写数据。

   用属性来实现封装:

    属性是类的基本组成部分,通过对属性的读和写来保护类中的域。使用属性来实现封装比上一种方法更简单。

[csharp] view plaincopy
  1. public class Name  
  2. {  
  3.     private string name;  //需要封装的属性  
  4.     public string CountryName  
  5.     {  
  6.         get{return name;}  
  7.         set{name=value;}  
  8.     }  
  9. }  
  10. public class Name1  
  11. {  
  12.     public static void Main(string[] args)  
  13.     {  
  14.         Name Country= new Name();  
  15.         Country.CountryName = "China";  
  16.         Console.WriteLine("The Country is :{0}",Country.CountryName);  
  17.     }  
  18. }    

    上面的例子通过属性实现了stringname的封装,其中属性具有两种操作get和set。Get用来返回属性域的值;Set通过value这个变量来给属性域赋值。

   未完待续!

    继承性:

    多态性:

  2、类

 二、基本构成

阅读(2302) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~