当前位置:首页 > Windows程序 > 正文

方法与构造函数

2021-03-18 Windows程序

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

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

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

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

定义的方法的好处      

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></param> /// <param></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></param> /// <param></param> /// <param></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个.

标签:

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/63200.html