方法

本文深入探讨了方法的定义、特点、作用、声明格式及分类,详细解释了有无参数和返回值的方法,并通过实例展示了如何调用这些方法。同时,文章介绍了return关键字的用途,方法重载的概念和规则,以及递归的基本思想和结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、方法

1)定义

方法是 给能够解决问题的多行代码取了一个名字的功能块 ,方便我们多次使用。是具有特定功能 的代码块。

2)特点

  1. 方法不调用不执行
  2. 类中方法外,方法不能嵌套

3)作用

  • main 方法过于臃肿
  • 重复执行的代码块 命名,方便重复使用
  • 方便自上而下分解问题
  • 方便维护代码

4)声明格式

访问修饰符   返回值类型   方法名(形参列表){}

 (1)、访问修饰符:方法允许被访问的权限范围;

 (2)、返回值类型:如果方法不返回任何值,则指定为 void; 如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值;

 (3)、方法名:定义方法的名字,必须使用合法的标识符,见名知意。

 (4)、形参列表:参数可以有多个,多个参数间以逗号隔开, 每个参数由参数类型和参数名组成,以空格隔开。

 (5)、{}是具有特定功能的代码块

5)分类

 (1)、无参无返回值方法

 (2)、无参有返回值方法

 (3)、有参无返回值方法

 (4)、有参有返回值方法

有返回值类型实例:

	//定义PI  
	//返回值:需要  double     参数:不需要
	public static double getPI(){
		System.out.println("这是一个有返回值没有参数的方法");
		return 3.1415926;
	}
	
	//求2个整数的和
	//返回值: 需要  int    参数:int x, int y 
	public static int getSum(int x, int y){
		System.out.println("这是一个有返回值有参数的方法");
		return x+y;
	}

无返回值类型实例:

//打印5行5列的星星
	//返回值:不需要  参数:不需要
	public static void print(){
		for(int i=1;i<=5;i++){
			for(int j=1;j<=5;j++){
				System.out.print("* ");
			}
			System.out.println();
		}
	}
	
	//计算某个区间范围内所有整数的和,第一个参数不能大于第二个参数
	//返回值: 不需要   参数:int min,int max
	public static void getSum(int min,int max){
		if(min>max){
			System.out.println("第一个参数不能大于第二个参数");
			return;
		}
		int sum=0;
		for(int i=min;i<=max;i++){
			sum+=i;
		}
		System.out.println(sum);
	}

二、调用

格式:    方法名(参数);

1)有返回值类型的方法

  1. 直接调用   方法名(参数);
  2. 赋值调用   数据类型  变量名 = 方法名(参数);
  3. 输出调用   System.out.println(方法名(参数));
public class Method02{

	public static void main(String[] args){
		//直接调用
		getPI();
		double d = getPI();
		//赋值调用
		System.out.println(d);
		//输出调用
		System.out.println(getPI());
	}
	//方法
	......
}

2)无返回值类型的方法

  1. 直接调用   方法名(参数);
public class Method03{

	public static void main(String[] args){
		
		print();		
		getSum(6,5);
		MultiPrint(7);
		Alph();
		Reverse();
	}

三、return关键字

1)有返回值的方法的作用

  1. 提前结束方法
  2. 带出返回值

2)没有返回值的方法的作用

  • 提前结束方法

3)不可达语句

  • return的后面出现的语句
  • break后
  • 死循环后的代码
  • continue
  • while(false)

4)兼容类型

  1. 实参的数据类型<=型参的数据类型
  2. 接收返回值的类型>=方法的返回值类型>=return后数据的类型

注:在一个作用域内 return 之后不能再存在代码

public class ReturnDemo04{

	public static void main(String[] args){
		byte b=3;
		long result=test(b,4);   //
	}
	
	public static int test(int a,int b){  //int a =3;
		if(a==b){
			return 0;
		}else{
			return 10000000000L;
		}
	}
}

四、方法的重载

一般来说,功能点相同的方法才适合使用重载,重载必须满足如下要求:

  1. 同一个类中
  2. 方法名必须相同
  3. 参数列表不同 (方法签名不同)
    • 参数的个数不同
    • 参数的数据类型不同
    • 不同类型的参数顺序不同

注:方法重载与返回值无关。

方法签名:方法名+参数列表 (区分一个方法的唯一)

public class Overload06{

	public static void main(String[] args){
		getSum(1,2);
		
		
	}
	
	//求2个整数的和
	public static int getSum(int a,int b){
		System.out.println("int  int");
		System.out.println(a+b);
		return 1+2;
	}

	private static String getSum(int a,int b){
		System.out.println("int  int");
		System.out.println(a+b);
		return "";
	}
	
	//求三个整数的和
	public static void getSum(int a,int b,int c){
		System.out.println("int  int int");
		System.out.println(a+b+c);
	}
	
	//求两个小数的和
	public static void getSum(double d1,double d2){
		System.out.println("double double");
		System.out.println(d1+d2);
	}
	//求三个小数的和
	public static void getSum(double d1,double d2,double d3){
		System.out.println("double double double");
		System.out.println(d1+d2+d3);
	}
	
}

五、递归

基本思想:自己调用自己。不推荐使用,容易内存溢出

递归结构包括两个部分:

  1. 递归头:  停止自己调用自己的条件
  2. 递归体:  自己调用自己

临界条件: 停止自己调用自己的条件

递归前进段:到达临界条件之前一致自己调用自己

递归后推段:从临界条件开始,把结果返回给调用的上一层

public class Recursion07{
	public static void main (String[] args){
	//	System.out.println(test(5));
		Multiple(1);
	}
	
	//阶乘  求某个数的阶乘  5*4!
/*	public static int test(int i){
		if(i==1){
			return 1;
		}
		return i*test(i-1);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值