zoukankan      html  css  js  c++  java
  • C#构造方法重载

    1、什么是构造方法?

    首先,它是一个方法,它是类中 众多方法中的一个。其次,它具有类中其他方法所不具备的一些特性。

    在类执行开始的时候,执行这个方法。

    2、构造方法相对其他方法有哪些不同?

    方法名:类中普通的方法可以根据代码书写者的个人喜好任意取名。但是,构造方法不可以。构造方法的名字必须与类名相同。换句话说,当类中的一个方法名与类名相同时,C#即认为此方法为类的构造方法。

    执行顺序:类中的普通方法是在类实例化之后被调用执行的,而构造方法则是在类实例化之前执行的。

    Circle圆类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace over
    {
        class Circle
        {
            public int r;
    
            public Circle()//不带参数的构造方法,为默认构造方法
            {
                Console.WriteLine("Circle类的构造方法被调用");
                r = 10;
            }
    
            public Circle(int rid)
            {
                Console.WriteLine("Circle类中重载了的构造方法被调用");
                r = rid;
            }
    
            public double s()
            {
                return Math.PI * r * r;
            }
        }
    }
    

      

      在没有添加构造方法的时候,默认类中会为我们添加一个不带参数,名字和类名相同的方法,这个方法被称为构造方法,构造方法无需添加void ,int等关键字,直接public+方法名()

      Program类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    
    namespace over
    {
    
        class Program
        {
            static void Main(string[] args)
            {
                Program p = new Program();
                p.run();
    
            }
    
            void run()
            {
                Circle c;
                c = new Circle();
       //       c = new Circle(20);// 传递参数20到circle类中,调用重载了的带int rid参数的构造方法
    
    
                double area = c.s();
                Console.WriteLine(area);
               
              
                Console.ReadKey();
    
            }
    
        }
    
    }
    

      

    实例化一个Circle属性的c,

     Circle c = new Circle();
    在不传值的情况下,默认掉用的是不带参数的构造方法,定义了r=10;

    在执行

    c = new Circle(20);
    传递参数20,调用的是重载的public Circle(int rid)构造方法,这是r=20;

    
    
  • 相关阅读:
    python中break、continue 、exit() 、pass终止循环的区别
    pandas 数据处理
    分布式爬虫
    crawlSpider全站数据爬取
    scrapy 中间件
    scrapy框架的日志等级和请求传参
    scrapy 递归解析和post请求
    scrapy管道持久化存储
    scrapy框架简介和基础应用
    高性能的异步爬虫
  • 原文地址:https://www.cnblogs.com/SeekHit/p/4321155.html
Copyright © 2011-2022 走看看