• c#面向对象


    成员访问级别
    字段、方法、属性都可以叫做类的成员,他们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中"封装"的目的
    几个访问级别:public(任何地方都可以访问);privae(默认级别。只能由本类中的成员访问)。还有internal/protected两个级别,以后会讲。
    class Person{
     
    private string Name;
     
    public void GiveName(string name){
    Name=name;//拒绝不好听的名字
    }
     
    public void SayHello(){
    Console.WriteLine("你好,我是{0}",Name);
    }
     
    }
     
    Person tom=new Pewson();
    tom.GiveName("tom");
    //tom.Name="tom";
    tom.SayHello();
     
    永远不要把字段public
     
    属性
    惯用法:属性开头字母大写,字段开头字母小写
    class Person
    {
    private int age;
     
    public int Age
    {
    get{return age;}
    set{age=value;}
    }
     
    public void SayHello()
    {
    Console.WriteLine("我的年龄是{0}",Age);
    }
    }
    只用set或者只用get就可以定义只读或者只写属性(只写的不常见)
    可以为set、get设置访问级别
    例子,限制非法值的设置
    字段和属性的区别是什么?属性看似字段、不是字段,可以进行非法值控制,可以设置只读。
    set/get块内部其实就是get_***/set_***方法。
     
    面向对象04
    面向对象版聊天机器人
    机器人呢有不同的名字、维护自己的FullLevel,可以SayHello(我叫***),可以喂食(Eat(int foodCount)),可以对它说话(Speak),对异常情况(错误的喂饭数字,喂得太多会撑死了)进行处理,有两个机器人供选择,一开始通过1、2数字选择聊天机器人。
     
    Reflector 反编译器在vs的什么地方,怎么找不到呀?
     
    面向对象编程基础8 构造函数
    构造函数用来创建对象,并且可以在构造函数中对对象进行初始化
    构造函数式用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。
    构造函数可以有参数,new对象的时候传递函数参数即可
    构造函数可以重载,也就是有多个参数不同的构造函数。
    如果不指定构造函数,则类有一个默认的无参构造函数。
    如果指定了构造函数,则不在有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
     
     
    面向对象编程基础10 继承
     
    public class Chinese Person
    {
    public string HuKou{get;set;}
    public void KongFu(){......}
    }
    Chinese p1=new Chinese();
    p1.Name="李雷";
    p1.HuKou="北京朝阳区";
    p1.SayHello();
    p1.KongFu();
    定义类的时候不指定父类,则父类是Object类,Object类是任何类
    的直接或者间接父类。
     
     
    异常与异常处理
    传统的错误表示方式:错误码。举例。需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预知的错误。
    错误码的缺点::不处理则很难发现,每次处理则很麻烦;
    难以看出错误的原因;容易使得程序进入不确定状态。
    try catch.Exception ex异常也是对象。
    Exception 类主要属性:Message/StackTrace
    发生异常后程序默认就退出了,后续代码不会执行。
    catch以后的代码则会继续执行。
    不要吃掉异常
    扔出自己的异常
     
     
    常量与静态成员
    Const常量。常量名要大写。一定不会变的声明成常量。
    全局变量。static类变量。
    不用new就能用的方法:static方法,static方法其实就是普通函数。
    在static 方法中可以调用其他static方法、字段、属性。在非static方法中可以调用static的方法、字段。
    静态类,不能被new的类就是静态类。静态类一般用来实现一些
    函数库。***Helper,SqlHelper,PageHelper
     
    命名空间
    namespace(命名空间),用于解决类重名问题,可以看做"类的文件夹"
    在代码中使用其他类的时候需要using类所在的namespace.
    System.Collections.ArrayList,快速引入的方法,右键--->解析
    为什么使用Convert/Console等类不需要自己写using?
    如果代码和被使用的类在一个namespace则不需要using.
    可以修改默认的namespace,因此不要认为在相同文件夹下就不用using,不在相同文件夹下就需要using.
     
     
    索引器
    C#中提供了按照索引器进行访问的方法
    定义索引器的方式:string this[int index]{get{return "";}
    set {}},string为索引器的类型,[]中是参数列表。进行索引器写操作就是调用set代码块,在set内部使用Value得到用户设置的值;进行读操作就执行get代码块。
    索引器参数可以不止一个,类型也不限于int,几乎可以是任意类型
  • 相关阅读:
    不要在该约炮的年纪谈佛系
    第三周文件处理和函数------上
    mysql的binlog和slow_log慢日志
    扩展中国剩余定理【模板】
    CF277B Set of Points——构造题
    ZOJ-3774 Power of Fibonacci——等比数列求和&&等价替换
    2019牛客暑期多校训练营(第九场)The power of Fibonacci——循环节&&CRT
    2019牛客暑期多校训练营(第九场)Quadratic equation——二次剩余(模奇素数)&&Cipolla算法
    2019牛客暑期多校训练营(第九场)All men are brothers——并查集&&组合数
    2019牛客暑期多校训练营(第九场)Knapsack Cryptosystem——哈希表&&二进制枚举
  • 原文地址:https://www.cnblogs.com/fanhongshuo/p/3812366.html
Copyright © 2020-2023  润新知