C#笔记——【面向对象基础】(二)方法与方法重载

(一)方法的定义和使用

1)方法的定义

对象的动态特征就是方法,表示这个对象能做什么;
类型:实例方法、静态方法、(构造方法、抽象方法 、虚方法);

方法定义要求:

在这里插入图片描述

注意:
  • 访问修饰符:默认是private,根据需要定义为public;
  • 方法的命名:一般是“动词”或者“动宾短语”,Pascal命名法,不能以数字开头;
  • 参数列表:根据需要添加;也可以无参数(省略 );参数列表要求:<类型> <参数名 >, 使用逗号分割;
  • 需要返回值的时候,使用return返回;return语句后面不能有其他的语句 ;不需要返回值的时候,使用void;

2)方法的调用

在这里插入图片描述

注意:方法的调用时,参数的顺序一般情况下是要 与方法定义的时候顺序一致 ,但是也可以不一致 ,要求在调用方法的时候显式地写出参数名;

(二)方法定义的常见错误

1)忘记返回值

return的作用:
  1. 无条件跳出,立即跳出当前执行的方法;
  2. 返回方法的结果;

2)返回值定义类型与返回数据类型不一致

解决办法:
  1. 修稿方法定义的返回值类型 ;
  2. 修改实际返回的实际类型 ;

3)变量在使用中超出作用域范围

  1. 局部变量的作用域:一对花括号之间;
  2. 局部变量的优先级高于全局变量(就近原则);
变量的分类及其作用域:
  • 在方法内部的变量称为局部变量,这样的变量只能在该方法内部使用 ;
  • 在方法外部,类的内部定义的变量,称之为“成员变量”(也叫做字段);作用范围可以再类的内部或者外部使用,但是一般很少在类的外部使用【在外部使用属性】

(三)类与对象知识总结

1)面向对象特性

1、封装:
  • 概念:封装指的是将一个或者若干个小对象包装在一起,然后以一个新的完整对象呈现;
  • 作用:封装使得一个对象的内部特征变得隐蔽,从而更加安全;隐藏内部实现细节;
软件中的封装:
  • 类封装:类是最小的程序单元;是对属性、方法的封装;public 类型的成员都是对外提供的数据访问的接口 ;
  • 模块封装:多个类可以被封装成模块,组成更大的程序组件;
从OOP理解:

外界调用的时候,可以不用关心内部实现细节,充分体现面向对象中的的“高内聚, 低耦合”;

从对象的重用行理解:

一次封装,处处使用;

2)关于变量

变量的作用:指代内存地址,便于记忆
变量的作用范围:
  1. 局部变量:一个方法内部交换数据,方法执行完毕,如果没有作为返回值,则很快被清理;作用范围只在这个方法内部;
  2. 成员变量:定义在类和方法之间,多个方法内部交换数据;通过多想的属性对外(类的外部)提供数据,变量的清理不确定;

(四)方法的重载

实际上类似于语言中的一次多意;定义一组方法,对外只显示一个方法,实际上是编译器根据传入参数的类型和个数自动选择所加载的方法;
在这里插入图片描述

1)方法重载的优点

  • 减少类的对外接口(只显示一个方法),降低类的复杂度
  • 便于用户使用(相同功能的方法名称一样)和识别

2)方法重载的条件

  1. 方法的名称必须一样;
  2. 方法的参数个数或者参数类型不一样;

3)方法重载的无关性

  • 方法重载与返回值无关;

(五)静态方法及其重载

1)static关键字的作用

可以修饰类、方法、成员变量,修饰之后的称之为:静态类、静态方法、静态字段;

静态方法的调用:类名.方法名;区别于非静态的:对象名.方法名
在这里插入图片描述

注意:静态成员不随着对象的创建而创建;而是在程序启动的时候载入内存;所以静态成员对内存的占用非常大 ;
静态方法同样适用于重载方法;
静态成员使用经验:
  • 静态成员在程序运行时被调入内存之中,并且在系统未关闭之前不会被GC回收;
  • 类的成员使用非常频繁时,可以考虑使用static修饰,但是不要使用过多;
  • 静态成员不能直接调用实例成员(静态方法不能直接调用实例方法);实例成员只有在对象创建的时候才存在;
  • 实例成员可以直接调用静态成员,因为已经加载到内存;
  • 静态方法也可以重载;
发布了34 篇原创文章 · 获赞 0 · 访问量 997

猜你喜欢

转载自blog.csdn.net/forever_008/article/details/104076713