zoukankan      html  css  js  c++  java
  • 面向对象之构造函数(可让程序运行前初始化一些东西)、函数(方法)重载

    1构造函数

      构造函数特点:
      1.写法特殊:没有返回类型,函数名必须和类名一样。
      2.执行时机特殊:在类实例化的时候执行,是最先执行的函数,可以用来初始化数据。

        所有的对象都有一个默认的构造成数(不写也有),该函数没有参数,与类本身有相同的名称(名称必须相同)。一个类定义可以包含几个构造函数,它们有不同的签名,代码可以使用这些签名实例化对象。带有参数的构造函数通常用于给存储在对象中的数据提供初始值。

        

    构造方法用来创建对象,并且初始化对象(对每个属性依次赋值)。

    定义构造方法时构造方法的名称必须和类名相同, 没有返回值 void也不用写。

    可以有参数,可以重载(多个参数不同的构造函数)。

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

    定义构造函数

    class person{ 
    public string name;
    public person(string name){
    this.Name = name;
    }
    }

    通过构造函数初始化属性

    person hei = new person("小黑"); //此时p.name = "小黑";

    2.方法(函数)重载

        方法重载是实现多态的另一个方法。通过方法重载,一个类中可以有多个具有相同名字的方法,由传递给它们的不同个数的参数来决定使用哪种方法。例如,对于一个作图的类,它有一个draw()方法用来画图或输出文字,我们可以传递给它一个字符串、一个矩形、一个圆形,甚至还可以再制定作图的初始位置、图形的颜色等。对于每一种实现,只需实现一个新的draw()方法即可,而不需要新起一个名字,这样大大简化了方法的实现和调用,程序员和用户不需要记住很多的方法名,只需要传入相应的参数即可。

      因为类可以包含运算符如何运算的指令,所以可以把运算符用于从类实例化而来的对象。   

      我们为重载运算符编写代码,把它们用作类定义的一部分,而该运算符作用于这个类。也可以重载运算符,以相同的方式处理不同的类,其中一个(或两个)类定义包含达到这一目的的代码。

        注意:只能用这种方式重载现有的C#运算符,不能创建新的运算符。 

        函数重载的条件;
    1.函数名必须相同
    2.函数需要的参数数量不同
    3.函数需要的参数数量相同的情况下,类型不同

      

  • 相关阅读:
    LeetCode153 Find Minimum in Rotated Sorted Array. LeetCode162 Find Peak Element
    LeetCode208 Implement Trie (Prefix Tree). LeetCode211 Add and Search Word
    LeetCode172 Factorial Trailing Zeroes. LeetCode258 Add Digits. LeetCode268 Missing Number
    LeetCode191 Number of 1 Bits. LeetCode231 Power of Two. LeetCode342 Power of Four
    LeetCode225 Implement Stack using Queues
    LeetCode150 Evaluate Reverse Polish Notation
    LeetCode125 Valid Palindrome
    LeetCode128 Longest Consecutive Sequence
    LeetCode124 Binary Tree Maximum Path Sum
    LeetCode123 Best Time to Buy and Sell Stock III
  • 原文地址:https://www.cnblogs.com/franky2015/p/4757330.html
Copyright © 2011-2022 走看看