【Java编程进阶之路--方法】

活动地址:CSDN21天学习挑战赛

1、方法是什么?

方法是一种语法结构,可以把一段代码封装成一个功能,以方便重复调用。java方法是语法的集合,实现某个功能的语句块的集合。

使用方法的好处

  • 提高代码的复用性
  • 使代码更有逻辑
  • 有利于程序维护

2、方法的定义

Java的方法类似语言的函数,是一种用来完成特定功能的代码片段,一般情况下,定义一个方法包括以下语法:

修饰符 返回值类型 方法名(参数类型 参数名){
    
    
	···
	方法体
	···
	return 返回值;
}

例如 :使用方法对2个整数求和
public static int add(int a,int b){
    
    
	int c=a+b;
	return c;
}

方法包括一个方法头和方法体,下面是对每部分的介绍:

  • 修饰符 :可选,编译器如何调用该方法,定义了该方法的方法类型。(public static)暂时固定
  • 返回值类型:方法可能会返回值。
  • 形参列表可以有多个,甚至可以没有; 如果有多个形参(int a,int b),多个形参必须用“,”隔开,且不能给初始化值
  • 方法体:方法体包含具体的语句,定义该方法的功能。

3、方法的调用

当方法返回一个值的时候,方法调用通常被当做一个值。例如
int larger = max(30, 40);

public static void main(String[] args) {
    
     
int i = 5; i
nt j = 2; 
int k = max(i, j); 
System.out.println( i + " 和 " + j + " 比较,最大值是:" + k);
 }
 /** 返回两个整数变量较大的值 */
 public static int max(int num1, int num2) {
    
    
  int result;
   if (num1 > num2)
    result = num1; 
    else
    result = num2;
    return result; 
   }

4、方法的重载

同一个类中,出现多个方法名称相同,但是形参列表是不同的。例如: 如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用;如果传递的是double型参数,则double类型的max方法体会被调用,这叫做方法重载;
一个类的两个方法拥有相同的名字,但是有不同的参数列表,重载的方法必须拥有不同的参数列表。

public static double max(double num1, double num2) {
    
     
	if (num1 > num2)
	 return num1; 
	else
	 return num2;
  }
 public static int max(int num1, int num2) {
    
     
	 int result; 
	 if (num1 > num2) 
	  result = num1; 
	 else
	  result = num2; 
	 return result; 
 }

命令行传参

 javac CommandLine.java 
 java CommandLine this is a command line 200 


public class CommandLine {
    
     
public static void main(String args[]){
    
    
 for(int i=0; i<args.length; i++){
    
     
 System.out.println("args[" + i + "]: " + args[i]); }
  } 
}
args[0]: this 
args[1]: is 
args[2]: a 
args[3]: command
args[4]: line 
args[5]: 200

5.递归

利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

扫描二维码关注公众号,回复: 14534763 查看本文章

递归是用栈机制实现的,每深入一层,都要占去一块栈数据区域,对嵌套层数深的一些算法,递归会力不从心,空间上会以内存崩溃而告终,而且递归也带来了大量的函数调用,这也有许多额外的时间开销。
(会占用大量的内存空间)
能不用递归就不用递归,递归都可以用迭代来代替。

//5*4*3*2*1 
public static void main(String[] args) {
    
    
 System.out.println(f(5));
}
  public static int f(int n) {
    
     
   if (1 == n) return 1;
   else return n*f(n-1); 
 }

在这里插入图片描述
此题中,按照递归的三个条件来分析:
(1)边界条件:阶乘,乘到最后一个数,即1的时候,返回1,程序执行到底;
(2)递归前进段:当前的参数不等于1的时候,继续调用自身;
(3)递归返回段:从最大的数开始乘,如果当前参数是5,那么就是5 4,即5 (5-1),即n * (n-1)

6.return

  • return —> 可以立即跳出并结束当前方法的执行; return关键字单独使用可以放在任何方法中。
public class Test {
    
    
public static void main(String[] args) {
    
    
System.out.println("开始");
	chu(10 , 0);
	System.out.println("结束");
}
public static void chu(int a , int b){
    
    
	if(b == 0){
    
    
	   System.err.println("您的数据有误!!不执行!!");
	return; // 直接结束当前方法chu
}
	int c = a / b;
	System.out.println("除法结果是:"+c);
	}
 }
  • return; 跳出并立即结束所在方法的执行。
  • break; 跳出并结束当前所在循环的执行。
  • continue; 结束当前所在循环的当次继续,进入下一次执行

总结

接下来更新面向对象!!!

猜你喜欢

转载自blog.csdn.net/m0_53142039/article/details/126225307