• C#类中的成员


    @

    字段

    字段的声明与声明变量类似,可以添加访问修饰符,通常情况下字段设置为私有的,然后定义属性对字段的读写进行限制

    一般的命名规范约定,私有字段使用下划线前缀、小驼峰命名

    private int _age    //定义一个私有字段_age
    

    属性

    属性拥有两个访问器(get和set),用于控制读取和写入,通常和字段配套使用,用来对字段进行读写限制

    //定义一个Age属性,限制赋值给_age字段的值为18到60岁之间
    //get和set类似于不能接受参数的方法,value是赋给Age属性的值
    public int Age      
    {
        get { return _age; }
        set {
            if(value >= 18 && value<=60)
                _age = value;
        }
    }
    

    方法

    正式的C#术语中区分函数和方法,但是在初期,我们也可以把方法当成函数来理解

    //定义一个SayAge方法,传递一个int类型的变量给SayAge方法,输出“我的年龄是~”
    public void SayAge(int age)
    {
        Console.WriteLine($"我的年龄是{age}")
    }
    

    构造函数

    构造函数是在创建对象的时候调用的方法,主要作用是初始化字段(为字段赋值),构造函数支持重载,即根据不同的参数签名(参数列表和参数类型共同组成),调用不同的构造函数

    //定义Pen类,并创建构造方法
    class Pen
    {
        private int _price;
        //无参构造方法,将_price字段初始化为0
        public Pen()
        {
            this._price = 0;
        }
        //接收一个int类型的构造方法,将_price字段初始化为传递进来的price变量
        public Pen(int price)
        {
            this._age = price;
        }
    }
    //注意事项:在如果没有定义构造函数,编译器会自动添加一个无参构造函数
    //注意事项:如果自行定义了构造函数,无论带几个参数,编译器就不会再自动添加无参构造函数,如有需要,需要手动声明
    //注意事项:如果构造函数没有为字段赋值,编译器会将值类型初始化为0,引用类型初始化为NULL
    
    
    类和对象的简单解释

    类是类别,是一个虚指;对象是具体的,是一个实指。如钢笔是一个类,我的价值15块的钢笔就是一个对象。

    创建类和对象
    //借用上方的Pen类,创建一个对象
    Pen myPen = new Pen(15);
    //此条语句创建了一个myPen对象,并调用Pen(int price)构造函数将myPen对象的_price字段赋值为15
    

    类中成员的归属问题

    类中的成员有静态和非静态的区别,非静态成员每个对象都有一份,静态成员类有一份

    Pen myPen = new Pen(15);
    Pen hePen = new Pen(150);
    //上方Pen类中price字段定义为非静态成员
    //在定义myPen和hePen两个对象中,每个对象都有自己的_price字段
    

    静态成员属于类,对象是没有的,且一个类的每个静态成员只有一份

    //静态成员使用static修饰
    //在Pen中定义一个Write静态方法,这个方法属于类,使用类名.方法名调用,例如这里需要调用此静态方法的语句是Pen.Write()
    class Pen
    {
        public static void Write()
        {
            Console.WriteLine("笔可以写字");
        }
    }
    //注意事项:类的静态成员与对象无关,即实例化的Pen的对象myPen,是没有Write()方法的
    //注意事项:每个类的每个静态成员只有一份,即Pen.Wirte()指向的方法和使用Pen实例化若干个对象后调用的Pen.Write()是同一个
    

    类也可以定义为静态,静态类不能再实例化对象,定义静态类的主要作用是提供一些常用方法

    如C#中的Console.WriteLine()就是一个静态类中的静态方法

  • 相关阅读:
    AspNet Core 核心 通过依赖注入(注入服务)
    AspNetCore 中使用 InentityServer4(2)
    AspNetCore中使用Ocelot之 IdentityServer4(1)
    AspNetCore+Swagger 生成Model 描述
    scp带密码拷贝文件
    redis集群之节点少于六个错误-解决
    [AWS DA Guru] Serverless compute Exam Tips
    [AWS] Lambda Invocation types
    [AWS Developer Guru] CI/CD
    [AWS] Lab: CloudFormation nested stack
  • 原文地址:https://www.cnblogs.com/wujuncheng/p/12586652.html
Copyright © 2020-2023  润新知