• C# 面向对象基础&封装&继承&多态&加深一下冒泡排序写法


    (一)面向对象是什么?

    面向对象是一种编程思想

    (二)为什么要用面向对象?

    1、结构清晰

    2、易于维护

    3、方便扩展

    (三)new一个对象是什么过程?

    实例化
    构造函数

    创建对象的过程就是将类实例化的过程
    实例化的过程就是执行构造函数的过程
    构造函数的执行一定是在创建类的第一步完成

    (四)访问修饰符有哪些?

    pubilc        公共的,可以在任何位置使用

    private      私有的,只有内部才可以使用

    internal     默认的,同一个命名空间可以使用

    protected  被保护的,同一个继承关系下才可以使用

    (五)命名空间  程序集

    namespace   加名字(如果继承必须起同一个名或者在上面调用using+空间名字)

    (六)封装

    类与Main函数

    在同一个命名空间下,新建一个类

    可以直接在新建类里面写入大框架,调用的时候直接在Main函数里面调用即可(除了private不能被调用以外其他的可以被调用)

    比如:

      class Student
        {
            private string _Name;//成员变量姓名
            public string Name//属性
            {
                get{ return _Name; }//获取
                set { _Name = value; }//接收
            }
            private bool _Sex;
            public bool Sex
            {
                get { return _Sex; }
                set { _Sex = value; }
            }
    
            public string Sexs
            {
                get { return _Sex ? "" : ""; }
                set
                {
                    if (value == "")
                        _Sex = true;
                    else
                        _Sex = false;
                }
            }
            private int _Chengji;
            public int Chengji
            {
                get { return _Chengji; }
                set { _Chengji = value; }
            }
        }

    调用方法

    class Program
        {
            static void Main(string[] args)
            {
                Student s = new Student();
                s.Name = "张三";
                s.Sexs = "";
                s.Chengji = 97;
                Console.WriteLine(s.Name+s.Sexs+s.Chengji);
                Console.ReadKey();
            }
        }

    (七)继承

    类名:父类名

    子类可以继承父类所有的公共方法和属性

    一个子类只能有一个亲父类

    一个父类可以有无数个后辈类

    有多种叫法

    父类、基类

    子类、派生类、超类

    基本格式

    父类

      class Student
        {
            private string _Name;//成员变量姓名
            public string Name//属性
            {
                get{ return _Name; }//获取
                set { _Name = value; }//接收
            }
            private bool _Sex;
            public bool Sex
            {
                get { return _Sex; }
                set { _Sex = value; }
            }
    
            public string Sexs
            {
                get { return _Sex ? "" : ""; }
                set
                {
                    if (value == "")
                        _Sex = true;
                    else
                        _Sex = false;
                }
            }
            private int _Chengji;
            public int Chengji
            {
                get { return _Chengji; }
                set { _Chengji = value; }
            }
        }

    那么子类就可以

     class Fly:Student
        {
        }

    (八)多态

    比如父类里面有

     public class Fly
        {
            public  virtual string Flying()//virtual为虚方法
            {
                return "正在飞行";
            }
        }

    子类可以修改里面内容

     public class Bird : Fly
        {
            public override string Flying()//override为重写
            {
                return "我飞的很高!!";
            }
        }
    
    //一共有三种方法 , 父类里面virtual虚写后才可以用override重写
    //当然还有overload重写

    (九) 写一下冒泡排序加深一下印象

    int[] a = new int[5] { 5, 8, 6, 9, 4 };
                for (int i = 0; i < a.Length; i++)
                {
                    for (int j = 0; j < a.Length; j++)
                    {
                        if (a[i] > a[j])
                        {
                            int tamp = a[i];
                            a[i] = a[j];
                            a[j] = tamp;
                        }
                    }
                }
                foreach (int b in a)
                {
                    Console.WriteLine(b);
                }
                Console.Read();
  • 相关阅读:
    DOSD用scratch的方式训练通用目标检测,性能很高
    caffemodel模型
    NetScope脱机(localhost)使用[转】
    class前置声明
    const函数
    CUDA开发
    caffe2学习
    faster rcnn讲解很细
    控制台输出覆盖当前行显示
    UA池 代理IP池 scrapy的下载中间件
  • 原文地址:https://www.cnblogs.com/zJuevers/p/7816302.html
Copyright © 2020-2023  润新知