关键词搜索

源码搜索 ×
×

C# VS 面向对象基础(一)

发布2012-11-26浏览17152次

详情内容

     面向对象(Object Oriented,OO)的相关知识学习了很多了,这篇博客我从C#实现面向对象的理论来做个初步的总结。

 

    在这篇博客中,我通过一个例子讲述了,面向对象中,类,类的实例化,构造方法,方法重载,类的属性,封装和继承,这些概念的代码实现。首先我们再次了解这些名词的相关知识。

 

    类:就是具有相同属性和功能的对象的集合。

 

    构造方法:就是对类进行初始化。如果不编码则系统将默认生成空的构造方法。

 

    方法重载:提供了创建同名的多个方法的能力,但是这些方法需要有不同的参数类型。他可以在不改变原方法的基础上增加新功能。

 

    属性:适合于以字段的方式使用方法调用的场合,这里字段是存储类要满足其设计所需要的数据。

 

    封装:每个对象都包含他能进行操作的所有信息。封装可以减少耦合,类的内部可以修改,可以使类具有清晰的对外接口。

 

    继承:如果子类继承父类,第一子类拥有父类非private的属性和功能;第二,子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能,还可以以自己的方式实现父类的功能(方法重写)。

  

    下边我们看这个例子来对上边的知识点进行深一步理解:

 

 

  1. namespace WindowsFormsApplication3
  2. {
  3. public partial class Form1 : Form
  4. {
  5. public Form1()
  6. {
  7. InitializeComponent();
  8. }
  9. private void button1_Click(object sender, EventArgs e)//单击猫叫按钮的事件方法
  10. {
  11. Cat cat = new Cat("咪咪"); //类的实例化
  12. cat.ShoutNum1 = 7;
  13. MessageBox.Show(cat.shout());
  14. }
  15. private void button2_Click(object sender, EventArgs e) //单击狗叫的按钮的事件方法
  16. {
  17. Dog dog = new Dog("旺财");//这里只是简单的调用方法,即可实现目的,体现了封装的特性
  18. dog.ShoutNum1 = 6;
  19. MessageBox.Show(dog.shout());
  20. }
  21. }
  22. class Animal//声明一个父类
  23. {
  24. protected string name = "";//声明类的的私有字符串变量name
  25. public Animal(string name)//定义cat类的构造方法,参数是输入一个字符串
  26. {
  27. this.name = name;//将参数赋值给私有变量
  28. }
  29. public Animal()//将构造方法重载
  30. {
  31. this.name = "无名";
  32. }
  33. protected int shoutNum1 = 3;//声明一个内部字符段,默认值3,
  34. public int ShoutNum1//属性的设置
  35. {
  36. get//get表示外界调用属性的值
  37. {
  38. return shoutNum1;
  39. }
  40. set//set表示外界可以给属性的赋值
  41. {
  42. shoutNum1= value;
  43. }
  44. }
  45. }
  46. class Cat : Animal//子类猫,使用了继承的机制,继承了Animal父类
  47. {
  48. public Cat(): base()
  49. { }
  50. public Cat(string name)
  51. : base(name)
  52. { }
  53. public string shout()
  54. {
  55. string result = "";
  56. for (int i = 0; i < shoutNum1; i++)
  57. {
  58. result += "喵";
  59. }
  60. return "我的名字叫" + name + " " + result;
  61. }
  62. }
  63. class Dog : Animal//子类狗,继承父类Animal
  64. {
  65. public Dog()
  66. : base()
  67. { }
  68. public Dog(string name)
  69. : base(name)
  70. { }
  71. public string shout()
  72. {
  73. string result = "";
  74. for (int i = 0; i < shoutNum1; i++)
  75. {
  76. result += "汪";
  77. }
  78. return "我的名字叫" + name + " " + result;
  79. }
  80. }
  81. }

 

    

      看里边的注释即非常清楚,下边我们看看输出的结果:

 

 

 

      这是一个非常简单的例子,但是对于我们初学者,来理解面向对象的一些概念,还有这些概念如何实现还是非常有帮助的。这些都是基础基础的东西,尤其是学习下一阶段大话设计的必备知识!

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载