zoukankan      html  css  js  c++  java
  • C#类的使用

    C#面向对象的编程思想的精髓:模拟真实世界,把真实世界中的事物抽象成类,整个运用程序就是靠类和类之间的相互协作和通信完成系统功能

    总结以上的说法:程序一切来源于类,并在不同的的需求情况下在类的基础上进行扩展,以完成系统所需功能,并且不断的优化系统性能

    下面讲一下我个人对“类”的理解和使用

    一、关于类的基本小知识(内容不多,作为对类的系统理解)

    • 普通基类
    • 普通基类虚成员(virtral关键字修饰的成员,可以被子类重写(override))
    • 抽象类(abstract 关键字修饰,有抽象成员、实例成员,类本身不能new。抽象成员一般指抽象方法,只能有方法的声明不能具体实现,实现是由子类来完成的(override))
    • 接口(interface 关键字修饰,不能new,天生就是public 成员不能使用public 进行修饰,存在显示和隐式两种实现方式,实现接口的类必须实现接口成员)

    补充一下类的访问范围:子类继承基类,可以继承基类的共有成员和受保护成员。私有成员只在类的内部可见,一般是类中的字段成员,类的外部可以通过类的属性访问器(get/set)来访问类私有成员。类的外部只能访问类的共有成员。

    那么上面所列举的四种情况是什么关系呢,又是在什么情况下使用呢,我下面做一个自己的简单理解

    总结一句话:继承使我们的代码得到一定程度的优化,当这些知识掌握很好之后你就会发现实现相同的功能,使用继承代码量会减少很多,更精简干练

    二、举个小梨子

    1、声明一个抽象类

    1 abstract class LongXiaM
    2     {
    3         public abstract void Tongzhi(int tem);
    4     }

    2、创建两个普通基类实现上面抽象类

    首先先声明每个类各自会用的方法

    1 class Alerm
    2     {
    3         public void AlermXiazi(string name,int tem)
    4         {
    5             Console.WriteLine("{0}tongzhi,wenduyijing {1} keyi dashui le ",name,tem);
    6         }
    7     }
    1  class ShowInfo
    2     {
    3         public void TongzhiLongzi(string name,int tem)
    4         { 
    5             Console.WriteLine("{0}tongzhi shuiwen yijing {1} ,keyhidashui le ",name,tem);
    6         }
    7     }

    创建子类

     1 class xiazi:LongXiaM
     2     {
     3         string name;
     4         public xiazi(string n)
     5         {
     6             this.name = n;
     7         }
     8         public override void Tongzhi(int tem)
     9         {
    10             Alerm a = new Alerm();
    11             a.AlermXiazi(name,tem);
    12         }
    13     }
    14 
    15     class longzi:LongXiaM
    16     {
    17         string name;
    18         public longzi(string n)
    19         {
    20             this.name = n;
    21         }
    22         public override void Tongzhi(int tem)
    23         {
    24             ShowInfo t = new ShowInfo();
    25             t.TongzhiLongzi(name,tem);
    26         }
    27     }

    3、创建一个中间调用的方法

     1 class BoilWater
     2     {
     3         private int tem;
     4         public List<LongXiaM> lxm = new List<LongXiaM>();
     5 
     6         public void ShowBaseInfo()
     7         {
     8             for (int i = 0; i <= 100; i++)
     9             {
    10                 tem = i;
    11                 if (i > 99)
    12                 {
    13                     if (lxm.Count > 0)
    14                     {
    15                         foreach (var lx in lxm)
    16                         {
    17                             lx.Tongzhi(tem);
    18                         }
    19                     }
    20                 }
    21             }
    22         }
    23     }

    4、在主程序中调用

    1 static void Main(string[] args)
    2         {
    3             BoilWater b = new BoilWater();
    4             b.lxm.Add(new xiazi("看不见"));
    5             b.lxm.Add(new longzi("听不见"));
    6             b.ShowBaseInfo();
    7         }

    5、结果

    1 看不见tongzhi,wenduyijing 99 keyi dashui le
    2 听不见tongzhi shuiwen yijing 99,keyhidashui le

    三、上面这个例子可以看出,当我们学会如何灵活的使用类,巧妙的设计逻辑结构后,在代码上可以节省很大的力气,也可以看出我们的专业性

  • 相关阅读:
    SDN大作业
    个人作业——软件工程实践总结作业
    2019 SDN上机第7次作业
    2019 SDN上机第6次作业
    SDN课程阅读作业(2)
    个人作业——软件评测
    2019 SDN上机第5次作业
    2019 SDN上机第4次作业
    SDN阅读作业
    ThinkPHP3.2.2中开启REWRITE模式
  • 原文地址:https://www.cnblogs.com/fllowerqq/p/10808775.html
Copyright © 2011-2022 走看看