函数 为什么要有函数? 有组织:复杂的程序模块化,简单化,分而攻之。 可重用:不用复制粘贴。 易测试:减少代码量,更容易找出Bug。 可扩展:不动代码主体就可以增加新功能。 抽象化:比如标准库,把写好功能的代码封装成黑箱,使用者只需知道接口,无需知道原理。 函数与方法 python中类中的函数叫做方法,C/C++都称作函数,Java中都称作方法。 tips 每次调用函数,都会创建该函数的所有形参,形参的作用域是函数体。 1. 定义函数 修饰符 返回值类型 函数名(参数列表){ //代码省略... return 结果; } 修饰符:Java中修饰符,public static 固定写法 返回值类型:表示方法运行的结果的数据类型,方法执行后将结果返回到调用者 参数列表:方法在运算过程中的未知数据,调用者调用方法时传递 return:将方法执行后的结果带给调用者,方法执行到return ,整体方法运行结束 2. 函数重载 方法重载:比如在Java中叫做方法重载,指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。 参数列表:个数不同,数据类型不同,顺序不同。 重载方法调用:JVM通过方法的参数列表,调用不同的方法。 public class MethodOverload { public static void main(String[] args) { myPrint(100); myPrint("Hello"); } // 方法重载 // 模拟输出语句中的println 方法效果,传递什么类型的数据就输出什么类型的数据 public static void myPrint(byte num){System.out.println(num);} public static void myPrint(short num){System.out.println(num);} public static void myPrint(int num){System.out.println(num);} public static void myPrint(long num){System.out.println(num);} public static void myPrint(float num){System.out.println(num);} public static void myPrint(double num){System.out.println(num);} public static void myPrint(char c){System.out.println(c);} public static void myPrint(boolean is){System.out.println(is);} public static void myPrint(String str){System.out.println(str);} } 3. 传递实参 按值传递 函数实际接受的是实参的副本,最基本的传递方式 传递指针 这时候就可以在函数内部通过指针修改实参的值了。 int abs(int* pnum) { return (*pnum>0)?*pnum:-*pnum; } void main() { int num(3); int* pnum(&num); cout << abs(pnum) << endl; } 其他 const修饰符 避免意外修改函数参数\ `int func(const int& num)` 阅读全文
wangc
Oct 10, 2017