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

C#面向对象编程

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

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;


    namespace ConsoleApp2

    {

        class Pet

        {

            protected string _Name;

            public Pet(string name)

            {

                _Name = name;

            }

            public void a()

            {

                Console.WriteLine("size:");

            }


            virtual public void b()

            {

                Console.WriteLine("fb:");

            }


             public void c()

            {

                Console.WriteLine(_Name);

            }

        }

        class Cat:Pet

        {

            public Cat(string name) :base( name)

            {

            }

            new public void a()

            {

                Console.WriteLine("13:");

            }


            override public void b()

            {

                base.b();

            }

        }

        class Program

        {

            static void Main(string[] args)

            {

                //Console.Write("input:");

                //string a = Console.ReadLine();

                //Console.WriteLine(":" + a);

                ////得到字节长度

                //Console.WriteLine("size:" + sizeof(int));

                int[,] bb = new int[0,1];

                Cat b = new Cat("66");

                b.a();

                b.b();

                b.c();

                Console.ReadKey();

            }

        }

    }


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

    2019-05-05

  • 重载运算符

    查看全部
    0 采集 收起 来源:重载运算符

    2019-05-04

  • 自定义显示转换语法

    查看全部
    0 采集 收起 来源:自定义转换

    2019-05-04

  • 自定义隐式转换语法

    查看全部
    0 采集 收起 来源:自定义转换

    2019-05-04

  • 为什么需要装箱

    查看全部
    0 采集 收起 来源:装箱和拆箱

    2019-05-04

  • 什么是装箱

    查看全部
    0 采集 收起 来源:装箱和拆箱

    2019-05-04

  • 装箱的本质

        

    查看全部
    0 采集 收起 来源:装箱和拆箱

    2019-05-03

  • 装箱图示

    堆和栈的处理区别:


    查看全部
    0 采集 收起 来源:装箱和拆箱

    2019-05-03

  • sealed相当于JAVA fianl修饰词  const?

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

    2019-04-25

  • 集合

    动态数组ArrayList:

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

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

    3、添加Add;

    4、删除Remove,RemoveAt;

    5、访问[index]。


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

    2019-04-17

  • 泛类型就是一个模子,装入类型的材料,可以塑造出想要的产品。


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


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


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

    泛型类优势:

    1、代码量小,无论多少种笼子,我们之需要一个实现;

    2、只有需要的类型才会被实例化;

    3、易于维护,修改模板,所有的实例都将改变。


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

    2019-04-17

  • 什么是重载运算符:利用现有的某种运算符(不能创造新的运算符),针对自定义(预定义类型和现有运算符的运算含义是确定的)类或者结构,定义某种运算操作(公狗狗+母狗狗=新生狗狗)。


    为什么需要重载运算符:利用现有运算符,简化自定义类型的操作。最好是,该运算符和该操作,具有一定亿相关性。


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



    哪些运算符可以重载:

    一元运算符:+,-,!,~,++,--,true,false;(操作数必须是类或结构)

    二元运算符:+,-,*,/,%,&,|!,^,<<,>>,==,!=,>,<,>=,<=(两个操作数至少有一个是类或结构)

    不能重载:=,&&,||,[],()等等


    重载运算符不能做什么:

    1、创造新运算符;

    2、改变运算符语法;

    3、重定义运算符如何处理预定义类型(int a+int b等于a-b);

    4、改变运算符的优先级和结合性。

    查看全部
    0 采集 收起 来源:重载运算符

    2019-04-17

  • 自定义转换是为自己的结构或类定义显示和隐式转换。


    为什么要自定义转换:为了让我们自己的结构或者类可以变成一个预期相关的类型,并且是这种转换更加的简单。


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


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



    查看全部
    0 采集 收起 来源:自定义转换

    2019-04-17

  • 装箱:根据值类型的值,在堆上创建一个完整的引用类型对象,并放回对象的引用,是一种隐式转换(语言自动完成)。


    为什么要装箱:有时候需要将值类型转化为引用类型(比如object)来进行统一的操作(作为函数的参数)和统一的存储(object[])。


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


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



    装箱的本质就是在堆上创建了引用类型副本,新创建的引用类型和原来的值类型相互独立。(就像电影《致命魔术》,不是人瞬间转移,而是有两个人)


    拆箱就是将装箱后的对象转换回值类型的过程,是一种显示转换(需要手动完成)。


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



    查看全部
    0 采集 收起 来源:装箱和拆箱

    2019-04-17

  • 静态类:

    1、如果类只包含了静态的方法和属性,并且标识为static;

    2、静态类不能创建实例,不能被继承;;

    3、可以为静态类定义一个静态构造函数。


    静态类主要用于基础类库(如数学库(Math类))和扩展方法。


    如何扩展方法:

    1、如果有源代码,直接添加一个新方法;

    2、如果不能修改但也不是密闭类,可以派生子类扩展;

    3、如果以上条件都不满足,可以使用静态类扩展方法。



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


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


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



    总结扩展要求:

    1、扩展方法所属的类,必须是static类;

    2、扩展方法本身必须是static方法;

    3、扩展方法的第一个参数类型,必须是this+类名。

    查看全部
    0 采集 收起 来源:静态类

    2019-04-17

举报

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

微信扫码,参与3人拼团

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

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