示例:
package com.wmwx.method; public class Demo02 { public static void main(String[] args) { int maxNum = max(10, 20); //调用有返回值的max方法,作为赋给变量maxNum的值 System.out.println(maxNum); } //定义有返回值的max方法 public static int max(int num1, int num2){ int result = 0; if (num1==num2){ System.out.println("两数相等!"); return num1; } if (num1>num2){ result = num1; }else{ result = num2; } return result; } } 方法的重载重载:如果一个类的多个方法拥有相同的方法名,但是有不同的参数列表,那么Java编译器会根据方法签名判断哪个方法应该被调用。
方法重载的规则:
方法名称必须相同。
参数列表必须不同(如:个数不同、参数不同、参数排列顺序不同等)。
方法的返回类型可以相同,也可以不同
仅仅返回类型不同不足以成为方法的重载
示例:
package com.wmwx.method; public class Demo03 { public static void main(String[] args) { int maxNum1 = max(10, 20); //调用有整数类型参数的max方法 System.out.println(maxNum1); double maxNum2 = max(10.0, 20.0); //调用有浮点类型参数的max方法 System.out.println(maxNum2); } //定义有整数类型参数的max方法 public static int max(int num1, int num2){ int result = 0; if (num1==num2){ System.out.println("两数相等!"); return num1; } if (num1>num2){ result = num1; }else{ result = num2; } return result; } //重载: //定义有浮点类型参数的max方法 public static double max(double num1, double num2){ double result = 0; if (num1==num2){ System.out.println("两数相等!"); return num1; } if (num1>num2){ result = num1; }else{ result = num2; } return result; } } 命令行传参有的时候,希望一个程序在运行时再给它传递消息,这时就需要传递命令行参数给main方法进行实现。
示例:
package com.wmwx.method; public class Demo04 { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { System.out.println("args["+i+"]: "+args[i]); } } } 可变参数/不定项参数从Java5 开始,Java支持传递同类型的可变参数(又叫不定项参数)给一个方法。
方法的可变参数的声明如下所示:
typeName... parameterName //即:在方法声明中,在指定参数类型后加一个省略号(...)注意:
一个方法中只能指定一个可变参数。
可变参数必须是方法的最后一个参数。
任何普通的参数必须在可变参数之前声明。
示例:
package com.wmwx.method; public class Demo05 { public static void main(String[] args) { //调用可变参数的方法 printMax(); printMax(12, 13.6, 22.5, 18.7, 16.0); printMax(new double[]{12, 13.6, 22.5, 18.7, 16.0}); } public static void printMax(double...numbers){ if (numbers.length == 0){ System.out.println("没有传入数据!"); return; } double result = numbers[0]; //找出最大值 for (int i=1;i<numbers.length;i++){ if (numbers[i]>result){ result = numbers[i]; } } System.out.println("最大的数是"+result+"!"); } } 递归定义:程序调用自身的编程方式称为递归。
利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
递归结构包括两部分:
递归头:什么时候不调用自身方法。如果没有递归头,将造成死循环。
递归体:什么时候调用自身方法。
示例:
package com.wmwx.method; public class Demo06 { public static void main(String[] args) { System.out.println(factorial(5)); } //求阶乘 public static int factorial(int n){ if (n==1){ return 1; }else{ return n*factorial(n-1); //递归调用 } } } Java数组详解 数组的定义数组是相同数据类型的有序集合。
数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成。
其中,每一个数据称作一个数组元素,每一个数组元素可以通过下标来访问它们。
数组的声明和创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的两种语法:
dataType[] arrayRefVar; // 首选的方法,推荐使用 或 dataType arrayRefVar[]; // 为C/C++程序员保留的方式,不推荐Java语言使用new操作符来创建数组,语法如下:
arrayRefVar = new dataType[arraySize];