C#基础----方法与构造函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#基础----方法与构造函数相关的知识,希望对你有一定的参考价值。

我有个问题!   如果我有一段相同的代码   需要在三个不同的地方去执行, 你会怎么做?

   答案一: 复制成三份,粘贴到这三个需要执行的地方?

   答案二:  把这一部分公共的代码提取出来    在这三个地方直接调用?

如果是我   那我肯定选择第二种 !!!   那你呢 

 

定义的方法的好处      

                        a. 减少代码的冗余. 只需要些1次, 随处调用.
                        b. 修改维护方便, 方法中的代码只要1改,所有调用这个方法的地方都会改.
                        c. 隐蔽代码的实现.
                          对于调用者而言. 无需关心方法的内部如何实现. 只需要关心这个方法我调用了以后可以实现什么功能

 

方法的定义:

   访问修饰符  (static)   方法返回值   方法名称(参数)

   {

     //方法返回值是void   那么表示不用返回数据   否则  需要使用return关键字返回数据

   }

 

 public class Person
    {
      
        /// <summary>
        /// 访问修饰符:public 
        /// void:表示没有返回值
        /// 同时该方法也没有参数
        /// </summary>
        public void SayHi()
        {
            Console.WriteLine("Hi,大家好!");
        }



        /// <summary>
        /// 访问修饰符:public 
        /// 返回值数据类型:int
        /// 参数两枚    one 和two 
        /// </summary>
        /// <param name="one"></param>
        /// <param name="two"></param>
        /// <returns></returns>

        public int  Sum(int one, int two)
        {
            int sum = 0;
            sum = one + two;
            return sum;
        }


    }

 

 

下面  咱再看看方法的调用 

 class Program
    {
        


        static void Main(string[] args)
        {
            Person person = new Person();


            //调用无参数的方法
            person.SayHi();

            //调用有参数的方法 首先方法需要两个参数   那么10就会赋值给one, 12就会赋值给two   最后方法有一个返回值 我们定义了一个变量result来接受

            int result = person.Sum(10, 12);

            //输出result的值
            Console.WriteLine("计算的结果是="+result);

            Console.ReadKey();
        }


       

    }

 

最后 我们看看执行的结果

技术分享

哈哈  以上就是方法的简单使用啦   

 

 

 

2.0构造函数

说到构造函数, 这货其实也是一个特殊的方法而已     方法需要我们来调用!  但是这货却不需要程序员手动来调用   构造函数在创建对象的时候会自动被调用的

public class Person
    {
        public int Age { get; set; }

        public string Name { get; set; }
        public bool Gender { get; set; }



        /// <summary>
        /// 默认的无参(无参数)的构造函数
        /// </summary>
        public Person() { }


        /// <summary>
        /// 有参的构造函数
        /// </summary>
        /// <param name="name"></param>
        /// <param name="age"></param>
        /// <param name="sex"></param>
        public Person(string name, int age, bool sex)
        {
            this.Age = age;
            this.Name=name;
            this.Gender=sex;
        }
    }
  1. 构造函数是1个特殊的方法.
             a. 语法特殊
                访问修饰符绝大多数情况下直接是pubic.
                构造函数没有返回值. void都不要写.
                构造函数的名称必须与所在的类名相同.
             b. 执行时机
                1).  构造方法不能被程序员手动的调用.
                Person d = new Person();
                创建对象的小括弧.有什么作用.
                调用对象的构造方法.
                2). 构造函数的执行时机
                在创建对象的时候,自动的被new关键字调用.
                只有当new关键字的四件事情都做完了的情况下 才算创建对象成功.
             c. 在创建对象的时候,必须要调用对象的构造函数.
           
    2. 构造函数可以带参数.   
             如果构造函数带了参数,那么在创建对象的时候 必须要给构造函数的参数传值.
             把实参的值直接的写在创建对象的小括弧之中.
             
          
    3. 构造函数也是可以重载的.
             也就是说可以有多个构造函数, 那么在创建对象的时候,可以调用任意的1个构造函数来完成对象的创建.
             如何确定调用那1个构造函数呢?
             在创建对象的小括弧后面,通过实参的个数和类型自动匹配,匹配到那1个构造函数就调用那1个,匹配不到就报错.
          
          
     4. 构造函数的作用
             a. 构造函数的最大的特点: 在创建对象的同时自动执行.
             b. 什么时候使用构造函数: 
                如果有段代码,我们希望在创建对象的同时就自动执行, 那么我们就可以把这段代码放在构造函数中.
                虽然这样,但是我们建议: 不要在构造函数写1些特别耗性能和时间的代码.
                因为构造函数中的代码执行完毕之后.才算对象创建完毕. 如果构造函数的执行要花很多时间,就会影响创建对象的效率.
                
                大多数程序员使用构造函数来初始化对象的属性的值.
                构造函数的参数写上对象的属性的类型
                然后在方法中将传入的参数赋值给对应的属性.
                这就可以达到强制的效果.让用户在创建对象的时候 必须为属性赋值.
                
          
     5. 当我们没有为类写任意的构造函数的时候. 编译器在编译的时刻会自动的为这个类
             生成1个无参数的空方法体的构造函数.我们就把编译器自动生产的这个构造函数叫做 隐式构造函数 
             所以,当我们没有为类写任意的构造函数的时候,我们仍然可以调用无参数的构造函数来创建对象.
             
             如果我们为类写了任意的1个构造函数,那么编译器在编译的时候 就不会再为我们生成那个无参数的构造函数了.
             如果我们就是要调用无参数的构造函数 那么就写1个就可以了.
             
                 
          
     6. 构造函数不能被程序员手动的调用:
             a. 在普通的方法当中,不能调用构造函数.  但是在构造函数中可以调用普通的方法.
             b. 构造函数之间能否相互调用.
                构造函数之间是可以相互调用的.
                语法:
                在构造函数的小括弧的后面 写1个冒号, 再写1个this,再写1对小括弧. 小括弧中根据实参匹配目标构造函数.
                public Person(string name,int age)
                  :this()
                {
                }
                public Person()
                {
                }
                执行顺序: 如果A构造函数调用了B构造函数. 如果在创建对象的时候调用的是A构造函数.
                先调用A构造函数.
                再调用B构造函数
                再执行B构造函数
               再执行A构造函数.
              
            c. 之所以要调用构造函数,是因为我们想重用构造函数中的代码.
               在调用另外的1个构造函数并给其串参数的的时候,参数我们可以直接给1数据.
               在传递参数的时候,可以使用本构造函数的参数.
               
               构造函数不可以同时调用多个构造函数,但是可以1个调1个.
              
              
         
        

 

以上是关于C#基础----方法与构造函数的主要内容,如果未能解决你的问题,请参考以下文章

C#基础构造函数:最熟悉的陌生人

C#基础 可选参数调用params无参静态构造函数

编写高质量代码改善C#程序的157个建议——建议106:为静态类添加静态构造函数

《C#零基础入门之百识百例》(四十三)类的构造和析构函数 -- 模拟用户注册

C#常用代码片段备忘

c#基础知识 构造方法