Java方法是语句的集合,它们在一起执行一个功能。
示例:
package com.wmwx.method;
public class Demo01 {
//main方法
public static void main(String[] args) {
int sum = add(1, 2); //调用add方法
System.out.println(sum);
}
//add方法 实现加法功能
public static int add(int a, int b){
return a+b;
}
}
Java中的方法有以下几个优点:
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。
其基本语法为:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
Java的方法包含一个方法头和一个方法体,类似于其他语言中的函数,是一段用来完成特定功能的代码片段。以下是一个方法的所有组成部分:
Java 支持两种调用方法的方式,根据方法是否返回值来选择。
示例:
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); //递归调用
}
}
}
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。