目录
何为方法
方法定义和调用
方法重载
命令行传参
可变参数
递归
什么是方法?
方法是解决一类问题的步骤的有序组合
方法包含于类或者对象中
方法在程序中被创建,在其他地方被引用
用一段用来完成特定功能的代码片段
实例
package com.ckw.blog.mathod;public class demo01 {//main方法是程序自有执行方法//public是标示符意思:公用的 static也是标示符意思:静态 void意思是空间//加static变成类变量,可以直接调用public static void main(String[] args) {int i =add(8,9);System.out.println(i);dda();}//写一个加法运算的方法//标示符 标示符 返回值类型 方法名(变量){}public static int add(int a ,int b){return a+b;}//写一个三角形的方法public static void dda() {for (int j = 0; j <=5; j++) {for (int i = 5; i >=j; i--) {System.out.print(" ");}for (int i = 0; i <=j; i++) {System.out.print("*");}for (int i = j; i >0; i--) {System.out.print("*");}System.out.println("");}}}
1. 加static(静止) 变为类变量
2. 不加static为实例变量。需要用new引用
类 变量 = new 类();
变量.方法
设计方法的原则
方法的原子性,就是一个方法只完成一个功能,便于后期扩展
main方法尽量保持简洁干净
方法的命名规则
方法命名规则,首字母小写,驼峰原则
方法的组成
方法包含一个方法头和一个方法体
修饰符 返回值类型 方法名(参数类型 变量){方法体}
return 返回值
修饰符(可选)告诉编译器如何调用该方法,定义了该方法的访问类型
返回值类型:方法可能会返回值,return value是方法返回值的数据类型。有些方法执行所需操作,但没有返回值。这种情况下,return value type的类型为void(空)。就是有数字返回就为数字类型。没有就为void
方法名:方法的实际名称。方法名跟参数表共同构成方法签名
参数(可选):参数像占位符。当方法被调用时,传递值给参数。这个值称为实参或者变量。参数列表值得是方法的参数类型,顺序和参数的个数。需不需要参数都是可选的。方法可以不包含任何参数。
形式参数跟实际参数的解释
package com.ckw.blog.mathod;public class demo01test {//形式参数:a b就像是占位符。用来定义作用public static int add(int a ,int b){return a+b;}public static void main(String[] args) {//实际参数:就是实际传递给他的参数。System.out.println(add(2,3));}}
方法体:包含具体语句,定义该方法的功能。
注意点:
如果有return value 返回值的情况下就要写返回值类型。
如果没有返回值,返回值类型就是void
如果ruturn=0,方法终止不再运行。
比大小
package com.ckw.blog.mathod;public class demo02_big {public static int dda(int a ,int b){int c = 0 ;if(a==b){System.out.println("结果相同不能比较");return 0;}//return=0方法终止不再运行if (a>b){c=a;}else if(a<b){c=b;}return c;}public static void main(String[] args) {int dd =dda(90 ,90);System.out.println(dd);}}
方法重载
在同一个类中,有相同的函数名称,但是形参不同的函数。
方法名称相同参数列表不同(个数不同,类型不同,参数排列不同,顺序不同)方法返回类型不想干返回类型不同,不足以成为方法的重载
实现理论
方法名字相同的时候,编译器会根据调用该方法的参数个数,参数类型去逐个匹配,以选择对应的方法,如果匹配失败,编译器报错。
(编译器会自己选择适合自己的尺寸类型的方法跑)真智能化。
(根据参数类型或者数量自动匹配形参选择方法进行)
package com.ckw.blog.mathod;public class demo03_idea {public static int max(int a ,int b){int c = 0 ;if(a==b){System.out.println("结果相同不能比较");return 0;}if (a>b){c=a;}else if(a<b){c=b;}return c;}public static double max(double a ,double b){double c = 0 ;if(a==b){System.out.println("结果相同不能比较");return 0;}if (a>b){c=a;}else if(a<b){c=b;}return c;}public static double max(double a ,double b,double d){double c = 0 ;if(a==b){System.out.println("结果相同不能比较");return 0;}if (a>b){c=a;}else if(a<b){c=b;}return c+d;}public static void main(String[] args) {double dd =max(92 ,90,91);System.out.println(dd);}}