0809 方法的定义、调用与调试(上、下)

1 方法的由来

        (1)方法的前身是C/C++语言的函数(function)

                ·方法是面向对象范畴的概念,在非面向对象语言中仍然称为函数

                ·方法实际上就是函数,方法是只存在于面向对象范畴里的概念

                ·当一个函数以类的成员的身份出现的时候,称为方法

        (2)方法都是类(或结构体)的成员

                ·C#语言去掉了非面向对象的成分,所以C#语言中的函数不可能独立于类(或结构体)之外,只有作为类(或结构体)的成员时才被称为方法(但是在C++中是可以的,称之为全局函数)

        (3)是类(或结构体最基本的成员之一)

                ·最基本的成员只有两个——字段和方法(成员变量和成员函数),本质还是数据+算法

                ·方法表示类(或结构体)“能做什么事情”

        (4)为什么需要方法和函数

                目的1:隐藏复杂的逻辑

                目的2:把大算法分解为小算法

                目的3:复用(reuse,重用)

                        例如,我们将计算圆柱、圆锥截面积的方法写成一个小的算法,将这个小算法拿出来,封装成一个单独的函数,在很多其他的算法中可以重用这个算法。

                        示例:计算圆面积、圆柱体积、圆锥体积

                                没有复用的情况:

                                有复用的情况:

2 方法的声明与调用

        (1)方法的声明:

                ·声明/定义不分家(不同于C++)

                ·函数头中的方法名:大小写规范使用帕斯卡法,以动词或动词短语作为名字

        (2)方法的调用:

                ·C#是强类型语言,argument(实参)是值、parameter(形参)是变量,值与变量一定要匹配,不然编译器会报错

3 构造器(一种特殊的方法)

        (1)构造器(constructor)是类型成员之一

                ·构造函数译为“构造器”,成员函数译为“方法”,本质上都是函数

                ·类型成员包含:字段、方法、属性、事件等等

        (2)狭义的构造器指的是“实例构造器”(instance constructor)

                ·作用:构建实例在内存中的内部结构

                ·利用例子展示什么是实例构造器?

                        这个例子表示使用了默认构造器:

                        这个例子自定义了没有参数的构造器:

                        这个例子分别定义了一个有参数的构造器和一个没有参数的构造器,这样在构造实例的时候就都可以找到相应的构造函数:

                        (快捷键ctor)

        (3)构造器的内存原理

                将内存进行切割和初始化

4 方法的重载(Overload)

        (1)调用重载方法的示例

        (2)声明带有重载的方法

                ·重载的定义:在定义方法时,方法的名字可以完全一样,但是方法的签名不可以一样

                ·方法签名(method signsture)由方法的名称、类型参数的个数和它的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成,方法签名不包含返回值

        ·实例构造函数签名由它的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成

        ·重载决策(到底调用哪一个重载):用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用

5 如何对方法进行debug(调试)

        ·设置断点(breakpoint)

        ·观察方法调用时的call stack

        ·Step-into,Step-over,Step-out

        ·观察局部变量的值与变化

6 方法的调用与栈

        ·重点:方法调用时栈内存的分配(Stack Frame)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值