• 面向对象编程


    访问修饰符

    public                        无限制

    private                      类内部访问

    protected                  类和它的派生类可以访问

    internal                      位于同一个程序集内可以访问   

    对象构造器

           对象构造器又叫实例构造器或构造方法,对象构造器用来初始化对象的状态,如果类没有定义构造器,则编译器会自动生成一个无参的对象构造器,如果类已经定义了类型的对象构造器,则边一起不会自动为类生成一个无参的对象构造器。

    类的对象构造器中可以使用this关键字调用本类中定义的其他对象构造器。

    例如:

    class Car
        {
            public string carName;
            public  string carColor;
            public Car(string carname)
            {
                this.carName = carname;
     
            }
            public Car(string carname,string carcolor):this(carname)
            {
                this.carColor = carcolor;
            }
        }

    Car(string,string)对象构造器使用this关键字调用Car(string)构造器,在调用Car(string,string)对象构造器时,会先调用Car(string)构造器初始化对象状态,然后才会调用Car(String,string)

    对象的状态和行为:字段方法和属性

    方法重载:

           public void Run()
            {
                Console.WriteLine("汽车跑起来!");
            }
            public void Run(int i)
            {
                Console.WriteLine("{0}辆汽车跑起来",i);
            }
            public void Run(string name)
            {
                Console.WriteLine("{0}汽车跑起来!",name);
            }

    属性封装字段

    C#中的属性提供了对字段的封装,属性内部包含一个get访问器和一个set访问器。如果属性中只有get访问器,那么这个属性是只读的,如果属性中只有set访问器,那么字段是只写的,如果属性中既有set访问器又有get访问器,那么这个属性是可以可读可写的。set访问器中的Value是个关键字,代表当前要赋的值。

    class Program
        {
            static void Main(string[] args)
            {
                Student student = new Student();
                student.Age = 24;
                student.Name = "霸气";
                Console.WriteLine("学生的年龄是:{0},学生的姓名是:{1}",student.Age,student.Name);
                student.Age = -1;
                student.Name = string.Empty;
                Console.WriteLine("学生的年龄是:{0},学生的姓名是:{1}",student.Age,student.Name);
                Console.ReadLine();
            }
        }
        class Student
        {
            private string name;
            private int age;
            public string Name
            {
                get
                {
                    return name;
                }
                set
                {
                    name = value.Length > 0 ? value : name;
                }
            }
            public int Age
            {
                get { return age; }
    
                set
                {
                    age = value > 0 ? value : age;
                }
    
            }
        }
    View Code

    索引器

    class Test

    {

       private string[] Test=new string[5];

       public string this[int i]

    {

         get{return Test[i]};

        set{Test[i]=value};

    }

    }  

    用的时候this是类名 例如Test test=new Test();  test[0]

    属性是对字段的修改           

    继承:代码的重用

    类可以从另外一个类继承,这就是说,这个类,拥有它继承的类的所有成员(初构造方法外)。利用类的继承机制,程序开发人员在已有类的基础上构造新类。

    class Program
        {
            static void Main(string[] args)
            {
                Employee employee = new Employee();
                employee.name = "王小二";
                employee.timeCard();
                Manager manager = new Manager();
                manager.name = "王小三";
                manager.timeCard();
                manager.allot();
                Console.ReadLine();
            }
        }
        class Employee
        {
            public string name;
            public void timeCard()
            {
                Console.WriteLine("{0}已经考勤",name);
            }
        }
        class Manager : Employee
        {
            public void allot()
            {
                Console.WriteLine("{0}正在分配任务",name);
            }
        }
    View Code
  • 相关阅读:
    Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(一)
    Centos7网络配置——设置固定ip
    Fiddler扩展——自定义列数据&Tunnel to 443解决办法
    Jmeter二次开发——自定义函数
    net5学习笔记---依赖注入
    Spring Cloud Alibaba系列之分布式服务组件Dubbo
    Spring5.0源码学习系列之事务管理概述
    C# 无需管理员权限提示,操作C盘文件
    WPF 屏幕点击的设备类型
    WPF Button MouseDown事件
  • 原文地址:https://www.cnblogs.com/lovezhangyu/p/3372796.html
Copyright © 2020-2023  润新知