C#语言————第三章 使用属性升级MyBank

********常见的访问修饰符*********

       public :公共的,可以在其他类中访问

       private:私有的,只有在本类里可以使用,其他的类无权访问

       类的默认访问修饰符 internal同一程序集中的文件内才是可访问的,后期讲

       字段和方法的默认访问修饰符是:private

**************值传递和引用传递*************

       ①:值传递:把参数的值传到方法里面,如果在被调用的方法中对参数的值进行了修改,在方法调用之后,不保留对参数的修改。

       ②:引用传递:引用传递的方式,如果在被调用的方法中对参数的值进行了修改,在方法调用之后,仍然保留对参数的修改。

          按引用传递:ref

          形参与实参同时加ref

          定义方法

 Swap(ref int num1,ref int num2);

          调用方法

    Swap(ref num1,ref num2);

*********this用法*************

      this:表示当前对象,通过this可以访问当前类中的成员

      作用:当前变量与局部变量同名的情况下,用于区分变量的(this访问的是成员变量)

*******c#中的属性*************

      1:用方法保证数据的安全    

      Private  int  _age;    //年龄

      //通过方法访问年龄的值          

        public int GetAge()

        {

            return this._age;

        }

      //对年龄的输入加以限制

        public void SetAge(int age)

        {

            if (age < 0 || age > 100)

            {

                this._age = 19;

            }

            else

            {

                this._age = age;

            }

        }

  

 

      2:用属性实现字段的 (封装隐藏内部细节避免不合理赋值)

       ①:属性:如果要访问类中的私有字段,需要通过getset访问器实现,这种结合了字段和方法的实现方式,称之为属性

 

       ②:属性的语法:

           

         

  private int _age;

        

           public int Age

           {

             get{ return _age;}

             set{ _age=value; }  

           }

       对

            public int Age

           {

              get

             {

                return _age;

              }

              set

              {

                if (value < 0 || value > 100)

                {

                    _age = 19;

                }

                else

               {

                    _age = value;

                }

             }

          }

  

       ③:属性的数据类型

          定义类中的一个属性时,属性的数据类型(int Age)必须与他所访问的字段类型(int _age)一致。

 

       ④:属性的访问类型

             get访问器(只读):访问get访问器

             set访问器(只写):执行set访问器

 

       ⑤:在编码中快速的创建属性

           选中私有字段  重构  封装字段(光标放在所封装的字段上,ctrl+R+E 生成属性)

       ⑥:对象初始化器

           Student student = new Student(){name="Tom",Age=20};

 

***********面向对象的封装***************

        封装是将数据和操作方法保存在一起的技术(安全)

        实现:将成员变量、方法和属性以类的方式进行封装,在类或对象之间通过消息传递进行相互交流,而传递的信息是通过调用类公开的方法完成的

        特点:隐藏内部实现,对外只暴露对类的基本操作,不影响其他对象对类的实现

字段:类中的成员变量

属性:封装字段,本质是方法

     语法:

     public 数据类型 属性名

     {

  get{return 字段;}

  set{字段 = value;}

     }

     属性的数据类型与所封装字段的数据类型一致

     属性名与字段名相同,但使用帕斯卡命名法

posted @ 2018-11-12 18:13  九之者  阅读(871)  评论(0编辑  收藏  举报