方法
方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。
方法的语法
方法的格式:
1 修饰符 返回值类型 方法名 (参数列表){ 2 代码... (方法体) 3 return ; 4 }
注意:
修饰符:目前就记为 public static
返回值类型:就是基本数据类型
方法名:要符合小驼峰命名法
参数列表:格式:数据类型 变量名
return:return后面返回的类型要和返回值类型相同
方法的调用格式:
1 方法一:方法名 (实参); 2 3 方法二:System.out.println(方法名 (实参)); 4 5 方法三:数据类型 变量名 = 方法名 (实参);
方法的示例代码:
1 public static int method1() { 2 return 10; 3 } 4 5 public static void method2() { 6 // return 10; // 错误的写法!方法没有返回值,return后面就不能写返回值。 7 return; // 没有返回值,只是结束方法的执行而已。 8 } 9 10 public static void method3() { 11 System.out.println("AAA"); 12 System.out.println("BBB"); 13 // return; // 最后一行的return可以省略不写。 14 } 15 16 public static int getMax(int a, int b) { 17 /* 18 int max; 19 if (a > b) { 20 max = a; 21 } else { 22 max = b; 23 } 24 return max; 25 */ 26 27 // 简化为 28 if (a > b) { 29 return a; 30 } else { 31 return b; 32 } 33 }
方法的注意事项:
1.定义位置,必须在类中而且必须在其它方法外面。
2.返回值类型,必须要和 return 语句返回的类型相同,否则编译失败 。
3. 方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。
4. 如果方法有返回值,那么必须写上“return 返回值;”,不能没有。
5. return后面的返回值数据,必须和方法的返回值类型,对应起来。
6. 对于一个void没有返回值的方法,不能写return后面的返回值,只能写 return ; 或者不写 return。
7. 一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。
方法的重载
方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返 回值类型无关。
参数列表不同:
1,个数不同
2,数据类型不同
3,顺序不同。
重载方法调用:JVM通过方法的参数列表,调用不同的方法。
重载代码示例:
1 // 比较两个数据是否相等。 2 // 参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型 3 public static void main(String[] args) { 4 byte a = 10; 5 byte b = 20; 6 System.out.println(isSame(a, b)); 7 8 System.out.println(isSame((short) 20, (short) 20)); 9 10 System.out.println(isSame(11, 12)); 11 12 System.out.println(isSame(10L, 10L)); 13 } 14 15 public static boolean isSame(byte a, byte b) { 16 System.out.println("两个byte参数的方法执行!"); 17 boolean same; 18 if (a == b) { 19 same = true; 20 } else { 21 same = false; 22 } 23 return same; 24 } 25 26 public static boolean isSame(short a, short b) { 27 System.out.println("两个short参数的方法执行!"); 28 boolean same = a == b ? true : false; 29 return same; 30 } 31 32 public static boolean isSame(int a, int b) { 33 System.out.println("两个int参数的方法执行!"); 34 return a == b; 35 } 36 37 public static boolean isSame(long a, long b) { 38 System.out.println("两个long参数的方法执行!"); 39 if (a == b) { 40 return true; 41 } else { 42 return false; 43 } 44 }
重载的多种形式
1 public static void open(){} // 正确重载 2 public static void open(int a){} // 正确重载 3 static void open(int a,int b){} // 代码错误:和第8行冲突 4 public static void open(double a,int b){} // 正确重载 5 public static void open(int a,double b){} // 代码错误:和第6行冲突 6 public void open(int i,double d){} // 代码错误:和第5行冲突 7 public static void OPEN(){} // 代码正确不会报错,但是并不是有效重载 8 public static void open(int i,int j){} // 代码错误:和第3行冲突
重载在源码中的使用
在调用输出语句的时候,println方法其实就是进行了多种数据类型的重载形式。
1 public static void main(String[] args) { 2 myPrint(100); // int 3 myPrint("Hello"); // String 4 } 5 6 public static void myPrint(byte num) { 7 System.out.println(num); 8 } 9 10 public static void myPrint(short num) { 11 System.out.println(num); 12 } 13 14 public static void myPrint(int num) { 15 System.out.println(num); 16 } 17 18 public static void myPrint(long num) { 19 System.out.println(num); 20 } 21 22 public static void myPrint(float num) { 23 System.out.println(num); 24 } 25 26 public static void myPrint(double num) { 27 System.out.println(num); 28 } 29 30 public static void myPrint(char zifu) { 31 System.out.println(zifu); 32 } 33 34 public static void myPrint(boolean is) { 35 System.out.println(is); 36 } 37 38 public static void myPrint(String str) { 39 System.out.println(str); 40 }
数组
--------