深入类的方法

一  构造函数

1.构造函数

类的构造函数是类中的一种特殊方法,它具有以下特点.

 方法名与类名相同.

  没有返回值类型.

 主要完成对象的初始化工作.

   2.无参构造函数

      在默认的情况下,系统将会给类分配一个无参构造函数,并且没有方法体.我们也可以自定义一个无参构造函数,在无参构造函数的方法体中对类的属性进行赋值.

   语法

          访问修饰符    类名()

         {

                        / /方法体

           }

   示例1:

   

        public  class  SE

       {

                   //无参构造函数:设置属性初始值

                      public  SE()

                   {

                       this.ID="000";

                         this.Age = 20;

                        this.Name="无名氏";

                      this.Gender = Gender.male;

                        this.Popularity=0;

                   }

                          //.....

                           }

                           //测试类Main()方法

                          static     void   Main(string[]   args)

                         {

                           SE   engineer   = new  SE();

                            Console . WriteLine(engineer.SayHi());

                                Console.ReadLine();

                           }

                     通过示例1 我们可以发现, 在无参构造函数中给属性赋予默认值有一个明显的特点,就是对象实例化后的属性值是固定的.

                         

             3.带参构造函数

             语法

                    访问修饰符     类名(参数列表)

                   {

                          // 方法体

                      }

                         带参构造函数的灵活性更好,它通过参数来动态控制对象的特征.

                   4.隐式构造函数

                             当不给类编写构造函数时,系统将自动给类分配一个无参构造函数,称为隐式构造函数

                   方法重载

                           1构造函数的重载

                      方法重载的特点:

                 方法名相同

                  方法参数类型不同或者参数个数不同.

                    在同一个类中

              示例2

                 public  static   void Main(string  []args)

                      { 

                           Console.WriteLine(8);

                             Console.WriteLine(10.48);

                                  

                             Console.WriteLine("hello");

                                string  name= "tom";

                                 Console.WriteLine("Hello,{0}",name)

                             }      

              在示例2中,第一个WriteLine()方法接收一个int类型的参数,第二个WriteLine()方法接收一个double类型的参数.第四个WriteLine()方法接收两个srting类型的参数

             

 

 

             对象交互

              1.概述

       在面向对象的世界里,一切皆为对象,对象与对象相互独立的,互不干涉,但在一定外力的作用下,对象开始共同努力

 

               每个类都有自己的特性和功能,我们把它们封装为属性和方法.

                对象之间通过属性和方法进行交交互.我们可以认为方法的参数及方法的返回值都是对象间相互传递的消息.

      

 

        2.对象交互实例

             示例3

       // 遥控类

 public   class RemoteControl

 {

         //开机

      public     void    (Television   tv)

       {

                tv.Open();    //调用电视机对象的开机方法

     }

          //关机

           public  void  TurnOff(Television   tv)

                                  {

                                            tv.TurnOff();  //调用电视机对象的关机方法

                                      }

                                            //换台

                                     public    void   ChangeChannel    (Television  tv)

                                   {

                                             Console.Write("请输入频道号:");

                                                               string    channelNo    = Console.ReadLine();

                                                        tv.Change(channelNo);

                                        }

                           }

                             //电视机类

                                     public          class   Television

                          {

                                            private          Boolean    isOn = false;  // 是否开机

                                            // 打开电视

                                                 public  void   Open()

                                              {

                                                      if(isOn)

                                            {

                                                     Console .WriteLine("电视机已打开!");

                                                      }

                                                        else

                                                        { 

                                                              Console . WriteLine("成功打开电视机!");

                                                               isOn = true;

                                                                  }

                                                    } 

                                                                        public    void    TurnOff()

                                                                {

                                                                                    if(isOn)

                                                                          {

                                                                            Console.Write.Line(""正在关机....);

                                                                                  isOn = false;

                                                                            }

                                                                                     else

                                                                                  {

                                                                                       Console.WriteLine("电视机以关闭!");

                                                                                       }

                                                                                 }

                                                                          ///换台

                                                                  public  void  Change(String channelNo)

                                                        {

                                                                        if (isOn)

                                                                       {

                                                                         Console.WriteLine("正在切换到{0}台",channelNo);

                                                                   }

                                                      }

                                     }

                                               //测试类Main()方法

                                        static   void   Main(string []   args)

                                             {

                                                     RemoteControl    controler  =  new    RemoteControl();

                                                   Television   tv     = new  Television();

                                                     // 开机

                                                    controler.TurnOn(tv);

                                                      //切换频道

                                                               controler . ChangeChannel(tv);

                                                        //关机

                                                               controler.TurnOff(tv);

                                                                Console.ReadLine();

                   }

                     示例3给我们演示了遥控器对象和电视机对象交互的过程

                  (1)首先实例化遥控器对象和电视机对象

                    (2)电视机对象tv作为参数传递给遥控器类对象controler的公开方法TurnOn(),遥控器告诉电视机打开电视机

                     (3)在TurnOn()方法中,电视机对象调用方法Open()播放电视节目.具体电视节目是如何播放的,遥控器不必关系

                                  示例3可以看出  对象间交互主要通过参数传递 方法调用及属性操作等来实现.  

posted @ 2018-01-08 10:33  阿辉啊  阅读(208)  评论(0)    收藏  举报