方法的基本概念

方法的主要功能是封装可以执行的一段代码,这样不仅可以进行重复调用,更可以方便的实现代码的维护,而本次使用的方法定义语法如下所示。

public static 返回值类型 方法名称(参数类型 参数变量, ...) {方法体(本方法要执行的若干操作) ;[return [返回值] ;]
}

在本定义格式之中,发现方法有一个返回值类型,指的是这个方法返回结果,对于此类的类型可以有两种:
直接设置Java中的数据类型(基本数据类型、引用数据类型),

  • 如果方法设置了返回值,那么必须使用return语句返回与之数据类型对应的数据;
  • 方法没有返回值:void,可以不使用return返回内容,但是可以使用return结束方法调用。
定义一个没有参数没有返回值的方法
public class TestDemo {public static void main(String args[]) {printInfo();        // 直接调用方法printInfo();        // 直接调用方法}/*** 信息输出操作*/public static void printInfo() {    // 定义没有参数,没有返回值的方法System.out.println("*********************");System.out.println("*   www.yootk.com   *");System.out.println("*********************");}
}程序执行结果:
*********************
*   www.yootk.com   *
*********************
*********************
*   www.yootk.com   *
*********************
定义一个有参数无返回值的方法

public class TestDemo {public static void main(String args[]) {pay(10.0);          // 调用方法pay(-10.0);         // 调用方法}/*** 定义一个支付的操作方法,如果支付金额大于0则正常支付,否则会输出错误提示信息* @param money 要支付的金额*/public static void pay(double money) {  // 购买支付操作if (money > 0.0) {  // 现在已经给钱System.out.println("可以进行支付!");} else {        // 不能够支付System.out.println("你穷疯了,没钱还买东西!");}}
}
程序执行结果: 可以进行支付!(“pay(10.0)”调用执行)
你穷疯了,没钱还买东西!(“pay(-10.0)”调用执行)
定义有返回值有参数的方法
public class TestDemo {public static void main(String args[]) {int result = add(10, 20);       // 方法的返回值可以进行接收System.out.println("计算结果:" + result);System.out.println("计算结果:" + add(50, 60));  // 也可以直接将方法返回值进行输出}/*** 实现数据的加法操作* @param x 操作数字一* @param y 操作数字二* @return 返回两个数字的加法计算结果*/public static int add(int x, int y) {   // 有参数有返回值的方法return x + y;       // 返回加法计算结果}
}程序执行结果:
计算结果:30
计算结果:110
利用return结束方法调用

如果在方法中执行return语句,那么就表示其之后的代码不再执行而直接结束方法调用,如果此时方法有返回值声明,那么必须返回相应类型的数据,如果没有返回值声明,则可以直接编写return。而此类操作一般都会结合分支判断一起使用。

public class TestDemo {public static void main(String args[]) {set(100);           // 正常执行输出set(3);         // 满足方法判断条件,会中断输出操作set(10);            // 正常执行输出}/*** 定义一个设置数据的操作方法,如果该数据为3将无法设置* @param x 要设置的数据内容*/public static void set(int x) { // 方法声明为voidif (x == 3) {   // 判断语句return;     // 方法后面的内容不执行了}System.out.println("x = " + x);}
}
程序执行结果:
x = 100
x = 10

方法的重载

方法重载指的是方法名称相同,参数的类型或个数不同,调用的时候将会按照传递的参数类型和个数完成不同的方法体的执行。
如果说现在有一个方法名称,有可能要执行多项操作,例如:一个add()方法,它可能执行两个整数的相加,也可能执行三个整数的相加,或者可能执行两个小数的相加,那么在这样的情况,很明显,一个方法体肯定无法满足于要求,需要为add()方法定义多个不同的功能实现,所以此时就需要方法重载概念的支持。

观察方法重载
public class TestDemo {public static void main(String args[]) {// 方法重载之后执行时会根据传入参数的类型或个数的不同调用不同的方法体System.out.println("两个整型参数:" + add(10, 20)); System.out.println("三个整型参数:" + add(10, 20, 30)); System.out.println("两个浮点型参数:" + add(10.2, 20.3)); }public static int add(int x, int y) {   // add()方法一共被重载三次return x + y;}public static int add(int x, int y, int z) {    // 与之前的add()方法的参数个数不一样return x + y + z;}public static double add(double x, double y) {  // 与之前的add()方法的参数类型不一样return x + y;}
}

方法的递归调用

递归调用是一种特殊的调用形式,指的是方法自己调用自己的形式,但是在进行递归操作的时候必须满足如下的几个条件:

  • 必须有结束条件;
  • 每次调用的时候都需要改变传递的参数。
public class TestDemo {public static void main(String args[]) {System.out.println(sum(100));   // 1 - 100累加}/*** 数据的累加操作,传入一个数据累加操作的最大值,而后每次进行数据的递减,将一直累加到计算数据为1* @param num 要进行累加的操作* @return 数据的累加结果*/public static int sum(int num) {    // 最大的内容if (num == 1) {         // 递归的结束调用return 1;       // 最终的结果返回了一个1}return num + sum(num - 1);  // 递归调用}
}
程序执行结果:
5050

转载于:https://www.cnblogs.com/xuwei1/p/8338349.html

Java基础_0206:方法的定义与使用相关推荐

  1. Java基础学习——方法

    Java基础学习--方法 前言 本文将介绍有关Java面向对象编程的知识之一:方法:其中包括方法的概念,三类方法的格式.方法的重载以及方法的内存 方法的概念 方法是程序中最小的执行单元 方法定义:将一 ...

  2. Java基础02 方法与数据成员

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...

  3. Java基础 Day07(方法)

    方法Function 一.方法的介绍: 1>方法不允许嵌套定义 2>具有特定功能的代码段称之为方法 3>极大程度的简化了我们的代码 二.方法的使用: 方法的定义: 1.语法格式 访问 ...

  4. Java基础 五 方法

    方法 1.1      方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢 ...

  5. java 在主方法中定义两个变量 调用方法进行加10_计算机考试二级考试Java模拟试题附答案...

    全国计算机等级考试二级考试,需要考生在考前做好足够的复习准备,下面小编为大家带来计算机考试二级考试Java模拟试题,供各位考生练习! 计算机考试二级考试Java模拟试题一 1.类Test1定义如下:p ...

  6. JAVA基础——toString()方法,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  7. Java基础语法——方法

    每日正能量 人生如逆旅,我亦是行人,乱花渐欲迷人眼,沉醉不知归路.既然无法留住身边的美好,那就一直往前,看到更多. 方法 方法是完成特定功能的.相对独立的程序段,与其它编程语言中的子程序.函数等概念相 ...

  8. [Java基础] sort方法--------排序的那些事

    引言 在学习Java过程中,排序sort是我们常用的功能:在Java里,数组有Arrays.sort()可以排序,集合则是Collections.sort()方法排序:默认情况下是升序排列,但是降序又 ...

  9. Java基础知识学习04-自定义类、ArrayList集合

    类与对象 类是一个模子,确定对象将会拥有的特征(属性)和行为(方法). 类的特征:类是对象的类型 具有相同属性和方法的一组对象的集合 类的组成:属性和方法 定义一个类:public class  类名 ...

最新文章

  1. mysql平均锁_MySQL锁情况分析
  2. Cocos2d-x 处理双击事件的两种方法
  3. Struts2升级注意事项
  4. P4009 汽车加油行驶问题
  5. Linux 常用命令
  6. ubuntu16.04下安装codeblocks(2分钟安装)
  7. 怎样快速学会python_python入门如何更快的学习
  8. Spring配置redis(自定义方法)
  9. 高等数学问题的符号解
  10. 英克软件结合oracle,英克医药第三方物流管理软件
  11. SVN和Git的使用
  12. css黄金色渐变值,ps金色(ps金色渐变数值)
  13. Golang FORM相关字段理解
  14. Android 读取外接储存设备的数据(如挂载的U盘,SD卡等)
  15. STM32上电启动代码详解(转自安富莱电子)
  16. Exception和继承自Exception的RuntimeException区别
  17. vulnhub matrix
  18. 使用Fastdfs上传文件时出现中文乱码。工具类中的this.getClass().getResource(“/“).getPath()获取配置文件的路径时中文乱码。
  19. pip install安装软件包报错:Requirement already satisfied
  20. opencv+海康摄像头,实现每秒获取摄像头拍摄视频的一帧图片

热门文章

  1. vue项目发布时去除console语句
  2. java圆形进度条_可拖拽圆形进度条组件(支持移动端)
  3. 2019.7.29学习整理python
  4. 二项分布 , 多项分布, 以及与之对应的beta分布和狄利克雷分布
  5. [No0000D7]img生成器.bat合并所有图片到html网页中
  6. WebAPi返回类型到底应该是什么才合适,这是个问题?
  7. HDU 1394 线段树or 树状数组~
  8. hdoj 2041 超级阶梯
  9. 面试官:说一下List排序方法
  10. Cannot resolve symbol 'R',Failed to resolve: constraint-layout