• C# 类基础知识


    变量作用域

    变量名:变量名就像实验室中容器的编号。{} 相当于实验室。

               变量的定义:

                               有嵌套关系的{}语句块中只允许定义唯一的变量。

                               没有嵌套关系的{}语句块可以定义同名变量。

            变量的有效范围:

                                 变量在其声明的{}和它的嵌套子块{}有效;

            变量的使用技巧:

                            变量尽量在用之前最近的位置声明。尽量减少有效范围。

                        从逻辑上讲   for (int i = 0; i < 5; i++) { }     if(){}else {}     while(){ }  是一个整体

                             相当于 {for (int i = 0; i < 5; i++) { }}   { if(){}else {} }  {while(){ }}

    基本概念

                  类是:具有相同属性和行为对象的抽象

               属性值:在面向对象编程里,字段作为保存属性值的变量。字段声明时可以不赋值,会有默认的值。   

                  属性:使用特殊的“行为”来表现,一对get/set行为用来展现对象的属性。get/set称为属性的“访问器”,

                  方法:方法就是类能够执行的动作。函数中定义的成员使用前必须赋值。

                            面向对象的三个特性:封装、继承、多态。

                           类中只能定义字段、方法等不能包含其他代码。

           this:表示“当前实例/当前对象”,即哪一个对象正在操作属性访问器,this就表示哪个对象。

    访问权限/访问权限  

                    控制类或类成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的。

                类成员默认为private

    public    公开      对访问成员没有级别限制

    private   私有      只能在类的内部访问

    protected 受保护的   只能由该类和该类的派生类访问,不管该派生类和基类是否在同一程序集中

    internal   内部的    访问仅限于程序集中

    类默认是internal

    public    公开      对访问成员没有级别限制

    internal   内部的    访问仅限于程序集中

     

     

                Person p1 = new Person();

                p1.Age =20;//p1所指向对象的Age字段值

     

                Person p2 = p1;//p2指向p1当前指向的对象

                p2.Age = 99;

     

    属性    习惯用法:属性开头字母大写,字段开头字母小写

              字段设为private的原因。防止直接对字段非法进行读取或修改操作。

            private int age;

            //当进行读取或修改操作时,确定不需要对操作进行限制时可以简写

            public int Age {  get;  set;  }

            //当进行读取或修改操作时,需要对读取或修改操作进行限制时

            public int Age{  get { return age; }  set { age = value; }   }

           反编译:

            public void set_Age(int value) {

                this.age = value;

            }

            public int get_Age() {

                return this.age;

            }

                    备注:非简写的情况下:可以只用set或者只用get就可以定义只读或者只写属性。

      简写情况下:setget必须同时存在。

    构造函数:

    构造函数中对对象进行初始化。是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。

    构造函数可以有参数,new对象的时候传递函数参数即可。可以重载,也就是有多个参数不同的构造函数。

    如果不指定构造函数,则类有一个默认的无参构造函数。如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。

    构造函数的调用顺序(父子)

    常量

            在类中定义的常量,对于类的任何实例都不变。没有必要通过类的实例去调用。

             class Program {  public const double PI = 3.15;  }

             引用:在类外部,Program.PI;   类名.常量名  的形式引用  

            const常量。常量名所有字母全大写。一定不会变化的值才能声明为常量。

    静态成员

            也可以理解为全局成员。如:中国人类 有成员 name,language name会因为不同的人而有不同的值。而language仅与中国人类有关。因为所有人都是汉语。

        在类外部引用:类名.变量名  类名.方法名()

                int a = Person.age; Person.SetName();

        class Person{

            //静态成员不与类的任何实例相关联。对于类只有这一份。起到全局的作用。

            public string name = "王菲";

            public static int age = 15;

            //在类内部的静态方法中,不能调用非静态变量和方法。

            public static void SetName() {

                //string s = name;

                //SetAge();

            }

            //在类内部的非静态方法中,可以调用静态变量和方法。

            public void SetAge() {

                int i = age;

                SetName();

            }

        }

     

     

  • 相关阅读:
    python-列表生成式
    python-迭代
    python接口自动化测试-requests下载图片
    python接口自动化测试-requests请求异常处理
    python接口自动化测试-requests.get()
    什么是单元测试?如何做好单元测试?
    Elasticsearch 6 Mapping设置
    git pull报“unable to update local ref”解决方式
    Artifactory 简介
    maven项目版本管理
  • 原文地址:https://www.cnblogs.com/sdpdf/p/3960404.html
Copyright © 2020-2023  润新知