为了账号安全,请及时绑定邮箱和手机立即绑定

C#面向对象编程

kong66 全栈工程师
难度入门
时长 3小时17分
学习人数
综合评分9.47
105人评价 查看评价
9.7 内容实用
9.2 简洁易懂
9.5 逻辑清晰
  • public class luiproblemlocateManager:IluiproblemlocateManager{}

    这是一个接口,接口只能用来被实现,所以这里用函数让它被继承

    查看全部
    0 采集 收起 来源:接口

    2019-02-27

  • 加“_" 表示私有化

    查看全部
    0 采集 收起 来源:构造函数

    2019-02-27

  • 接口简介:

    https://img1.sycdn.imooc.com//5c6a65c800014e3410860569.jpg


    https://img1.sycdn.imooc.com//5c6a661a0001786509950490.jpg


    https://img1.sycdn.imooc.com//5c6a667e000196a709080426.jpg


    https://img1.sycdn.imooc.com//5c6a668d000181e609440544.jpg



    查看全部
    0 采集 收起 来源:接口

    2019-02-18

  • 密闭类和密闭方法:

    https://img1.sycdn.imooc.com//5c6a64350001015010630545.jpg

    sealed密闭过的方法再派生类中不能再通过override重写同名方法


    查看全部
    0 采集 收起 来源:密闭类

    2019-02-18

  • 抽象方法

    比虚方法还要更进一层,不能具有实体。

    举例:

     abstract public void spirits();

    抽象类

     abstract class Animal

        {

            abstract public void spirits();

        }

    c抽象方法必须包含在抽象类里面

    https://img1.sycdn.imooc.com//5c6a634b0001c6b710810494.jpg



    查看全部
  • 依赖倒置原则:

    程序设计要依赖抽象(Pet)类,而不依赖于具体类(Dog)。


    调用哪个类(基类还是派生类)的函数取决于声明一个类时引用的是哪个类型的类。

    https://img1.sycdn.imooc.com//5c693eb60001440810490387.jpg

    查看全部
    0 采集 收起 来源:虚方法和多态

    2019-02-17

  • https://img1.sycdn.imooc.com//5c6935ba000119d104520257.jpg

    https://img1.sycdn.imooc.com//5c6935e30001631503820085.jpg

    https://img1.sycdn.imooc.com//5c6936850001c39504350154.jpg

    上述编程实例举例,C#继承语法:

    public/protected/private ChildClass:ParentClass

    {


    }

    查看全部
    0 采集 收起 来源:继承

    2019-02-17

  • 面向对象-特点:封装、继承、多态

    面向对象-优点:易维护、易扩展、易开发

    面向对象-方法:掌握面向对象的核心思想,使用面向对象的语言技巧

    查看全部
    1 采集 收起 来源:课程介绍

    2019-02-15

  • 发布者:通知某件事情发生的

    订阅者:对某件事情关注的

    触发:事件发生时,会通知所有关注该事件的订阅者

    注册:想在事件发生时被通知,必须注册以表示关注


    事情发生时,通知订阅者,就是调用订阅者的注册函数。注册,就是高数发布者调用哪一个注册函数。


    事件声明:

    delegate void Handler();

    public event Handler NewDog; //Handler 委托类型  NewDog 事件名

    //NewDog是一个成员,并且会被隐式自动初始化为null


    事件订阅:

    NewDog += 方法  //订阅

    NewDog -= 方法  //取消订阅

    //方法可以是,实例方法,静态方法,匿名方法、Lambda表达式

    事件触发:

    if(NewDog!=null)

    {

    NewDog();

    }

    事件可以理解成是一种封装的受限制的委托,事件是对进行的一种委托的封装,委托中保存着实际订阅者注册的函数,事件触发是调用的是委托当中持有的函数


    查看全部
    0 采集 收起 来源:事件

    2019-02-07

  • 匿名方法

    delegate void ActCute();

    ActCute del;

    del = delegate(参数列表){方法体};


    Lambda表达式

    del=(参数列表)=>{方法体};

    查看全部
    0 采集 收起 来源:Lambda表达式

    2019-02-07

  • 委托:持有一个或者多个方法的对象,并且该对象可以执行,可以传递。

    声明委托类型  delegate void ActCute();//委托类型是一种引用类型

    定义委托类型的对象  ActCute actCute;

    给委托对象赋值

    class Dog

    {

    public void WagTail(){...}

    }

    actCute = dog.WagTail;

    使用委托类型  actCute();//像调用函数一样使用委托类型



    查看全部
    0 采集 收起 来源:委托

    2019-02-07

  • 字典Dictionary<Tkey,Tvalue>

    字典容器存储的是一系列的键值对,每个值对应一个唯一的键。

    键的意义在于我们可以通过键相对高效的访问到底。

    字典操作:

    数量  Count

    添加  Add(key,value)

    删除  Remove

    访问  [key]


    栈:先进后出,后进先出

    出栈  Pop

    入栈  Push

    获取栈顶元素  Peek

    队列:先进先出

    出队  Dequeue

    入队  Enqueue


    查看全部
    0 采集 收起 来源:集合(下)

    2019-02-07

  • 集合:一种存放多个数据的容器类型。

    最简单的 集合:数组Array(完整的类型是System.Array)


    预定义常用集合:

    动态数组:ArrayList

    列表:List

    字典:Dictionary

    队列:Queue

    栈:Stack


    动态数组ArrayList:

    优点:

    1、初始化,可以不指定大小;

    2、获取长度,使用Count属性;

    3、添加Add;

    4、删除Remove(根据对象),RemoveAt(根据索引);

    5、访问 [index]。

    缺点:

    1、比数组耗费更多的内存;

    2、存取速度不如数组那么快;

    3、Object装箱、拆箱,性能损耗。


    List<T>

    不会有装箱拆箱的性能问题,但是存取速度较慢。


    查看全部
    1 采集 收起 来源:集合(上)

    2019-02-07

  • 泛型接口:泛型接口允许我们将接口成员的参数和返回类型设置为泛型参数的接口。

    语法:

    interface IMyself<T>

    {

    T Myself(T self);  //泛型参数可以出现在泛型成员的定义当中,可以出现在参数位置,也可以出现在返回值位置,可以接一个泛型参数,也可以接多个泛型参数

    }  //和反省语法类似

    实现泛型接口语法:

    class A: Imyself<A>

    {

    public A Myself(A self);  //泛型参数可以是实现类本身或者是其他类型

    }


    class A<T>: IMyself<T>

    查看全部
    0 采集 收起 来源:泛型接口

    2019-02-07

  • 约束:缩小泛型参数的范围。

    只有添加了约束,才能调用泛型参数中(比如T)的方法。

    约束的类型:

    类名,改类或者继承改类的类;

    class,任何类;

    struct,任何值;

    接口名,该接口类型或任何实现该接口的类型;

    new(),带有无参共有构造函数的类。

    约束叠加规则:

    A、主约束,类名,class,struct,只能由1个;

    B、接口约束,任意多个;

    C、构造约束。

    三个约束可以三个都有,也可以一个都没有。

    使用where来进行约束。

    void Cage<T> where T:Pet,IClimbTree,new()

    {...}

    查看全部
    0 采集 收起 来源:约束

    2019-02-07

举报

0/150
提交
取消
课程须知
1、需要掌握c#基础语法和基本概念 2、建议听课和写代码实践相结合,更好的掌握知识点
老师告诉你能学到什么?
1、通过学习继承和多态,构建对象的森林,减少重复代码 2、学习静态成员静态类,实现对象间的共享资源和扩展非派生类 3、学习接口,可以跨类型地实现对象的统一管理 4、学习操作符重载,大大简化我们自定义对象的相关操作 5、学习泛型,极大地降低了开发的工作量

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!