栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

文章目录
  • 1、方法是什么?
  • 2、方法的定义
  • 3、方法的调用
  • 4、方法的重载
  • 5.递归
  • 6.return
  • 总结

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 
 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.递归

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

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

//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; 结束当前所在循环的当次继续,进入下一次执行
总结

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038063.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号