阿里云【名师课堂】Java零基础入门24 ~ 26:方法的定义与使用

  • 24:方法的基本定义
    • 无返回值无参数
    • 无返回值有参数
    • 有返回值有参数
  • 25:方法重载(重点)
  • 26:方法递归调用

24:方法的基本定义

使用方法的好处:可以进行重复调用
注意:这次课讲解的方法指的是在主类中定义,并且由主方法直接调用的方法形式。
简单来说。方法就是一段可以被重复调用的代码块。

public static 方法返回值 方法名称(参数类型 变量 ······){方法体代码;[return 返回值 ;]
}

在定义方法时对于方法的返回值有以下两类:

  • void:没有返回值;
  • 数据类型(基本数据类型、引用数据类型)。

无返回值无参数

  • 范例:定义一个没有返回值、没有参数的方法
public class TestDemo {    // 定义一个程序类public static void main(String args[]) {print();  // 在主方法里面可以直接调用方法print();  // 在主方法里面可以直接调用方法}public static void print() {  // 定义一个方法printSystem.out.println("****************") ;System.out.println("* Hello World! *") ;System.out.println("****************") ;}
}


一个没有返回值的方法(void)可以直接使用return来结束调用,一般而言这种操作需要结合if进行条件判断来实现。

  • 范例:观察return结束调用
public class TestDemo {    // 定义一个程序类public static void main(String args[]) {print(10);print(20);}public static void print(int x) {if (x > 10){  // 此语句是方法结束条件的判断return ;  // 此语句之后的代码不再执行}System.out.println(x) ;}
}

输出只有10

无返回值有参数

  • 范例:定义一个没有返回值、有参数的方法
public class TestDemo {    // 定义一个程序类public static void main(String args[]) {print("hello");  // 在主方法里面可以直接调用方法print("world");  // 在主方法里面可以直接调用方法}public static void print(String msg) {  // 定义一个有参数的方法printSystem.out.println(msg) ;}
}

有返回值有参数

  • 范例:定义一个有返回值、有参数的方法
public class TestDemo {    // 定义一个程序类public static void main(String args[]) {int result = add(10 , 20) ;System.out.println(result) ;// 既然方法有返回值,那么这些返回值也可以直接输出System.out.println(add(10 , 20)) ;}public static int add(int x , int y) {return x + y ;}
}

25:方法重载(重点)

方法名称相同,参数的类型或个数不同。
System.out.print就是一个被重载的方法。

  • 范例:实现方法重载
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.0 , 20.0)) ;}public static int add(int x , int y) {return x + y ;}// 此时参数类型相同,参数个数不同public static int add(int x , int y , int z) {return x + y + z;}// 此时参数个数相同,参数类型不同public static double add(double x , double y) {  // 定义一个有参数的方法printreturn x + y ;}
}


因此在进行方法重载时有一个重要原则:方法的返回值类型一定要相同

26:方法递归调用

一个方法自己调用自己。当需要进行方法的递归调用时往往具有以下特点:

  • 方法必须有一个递归的结束条件;
  • 方法在每次递归处理的时候一定要做出一些变更。
  • 范例:实现1~100的累加操作
public class TestDemo {    // 定义一个程序类public static void main(String args[]) {System.out.println(sum(100)) ;}public static int sum(int num) {if(num == 1) {return 1;}return num + sum(num - 1) ;  // 做出变更}
}

理解:

  • 第1次执行sum()方法:main()调用,return 100 + sum(99) ;
  • 第2次执行sum()方法:sum()调用,return 99 + sum(98) ;
  • 倒数第2次执行sum()方法:sum()调用,return 2 + sum(1) ;
  • 倒数第1次执行sum()方法:sum()调用,满足num == 1,return 1 。
  • 范例:实现10!
public class TestDemo {    // 定义一个程序类public static void main(String args[]) {System.out.println(mul(10)) ;}public static int mul(int num) {if(num == 1) {return 1;}return num * mul(num - 1) ;  // 做出变更}
}

使用while循环的操作都可以使用递归实现。之所以使用递归是因为方法可以执行的操作很多,且代码结构较好。

阿里云【名师课堂】Java零基础入门24 ~ 26:方法的定义与使用相关推荐

  1. 阿里云天池学习赛-零基础入门数据分析-学术前沿趋势分析(task1)

    阿里云天池学习赛零基础入门数据分析-学术前沿趋势分析 前言 一.赛题描述及数据说明 1:数据集的格式如下: 2:数据集格式举例: 二.task1论文数量统计(数据统计任务):统计2019年全年,计算机 ...

  2. python零基础入门视频免费-阿里云免费推出Python零基础入门在线教程视频

    最近阿里云大学将一大批热门培训教程免费开放学习了,这批免费课程从云服务器入门到大数据进阶;从Python,Linux入门到在线实战应有尽有.360云服务网(www.360yfw.com)将这批教程整理 ...

  3. 阿里巴巴python教程_阿里云免费推出Python零基础入门在线教程视频

    最近阿里云大学将一大批热门培训教程免费开放学习了,这批免费课程从云服务器入门到大数据进阶:从Python,Linux入门到在线实战应有尽有.360云服务网将这批教程整理成一个合集了. 对此感兴趣的请访 ...

  4. 阿里云MVP课堂:零基础建站,满足你拥有自己网站的心愿

    很多人都有一个建站的心,但是由于没有相关的技能,导致最后不了了之.云计算,让一切变得简单起来,零基础也能很快搭建出自己的网站,满足你的心愿. 建站总体来说分为如下几步: 1.开发网站程序 2.上传到云 ...

  5. 阿里云【名师课堂】Java零基础入门6:CLASSPATH环境属性

    阿里云[名师课堂]Java零基础入门6:CLASSPATH环境属性 一.具体内容 二.总结 一.具体内容 CLASSPATH指的是类的加载路径,是一个路径列表,用于搜索Java编译或者运行时所用到的类 ...

  6. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  7. 【JAVA零基础入门系列】Day14 Java对象的克隆

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  8. 一篇文章让你从JAVA零基础入门`OOP`编程12.19

    一篇文章让你从JAVA零基础入门OOP编程 前言: 此文为玄子,复习ACCP-S1课程后,整理的文章,文中对知识点的解释仅为个人理解. 配套PPT,站点源码,等学习资料 一.预科 1.1 JAVA 介 ...

  9. 视频教程-由浅入深Java零基础入门-Java

    由浅入深Java零基础入门 负责过多个软件项目的研发.设计和管理工作,拥有项目管理师认证.项目监理师中级认证.出版过的图书有<微信小程序开发图解案例教程><Axure RP8原型设计 ...

最新文章

  1. netstat -ano 查看机器端口占用情况
  2. LuoGuP4721:【模板】分治 FFT
  3. 杰尼亚签约第四范式 开启奢侈品行业智慧零售新思路
  4. draw python_科学网—Draw figures with Python - 高琳琳的博文
  5. Duplicate interface definition for class解决方法
  6. .NET Core应用程序的2种部署方式
  7. content='width=device-width, initial-scale=1.0'的解释
  8. pymongo 怎么判断数据有没有添加成功_Python爬虫入门教程 29-100 手机APP数据抓取 pyspider...
  9. 计算机视觉之YOLO算法
  10. 十大经典排序算法(C语言实现)
  11. Python数据结构与算法(17)---归并排序
  12. 微信小程序添加激励式广告
  13. git pull git push 报spawn ssh错误,vscode更换默认终端
  14. 聚焦扶贫,爱在瑶山,深圳市华南物流商会在行动
  15. Linux三大剑客之sed
  16. 软键盘实例 request参数修改
  17. 华为发生工商变更,瞄准5G车联网大蛋糕!(附产业重要数据下载)
  18. 项目启动初始化SQL脚本
  19. macos 切换账户_如何在macOS上设置访客用户帐户
  20. 240Hz超高刷新率加持,HKC疾风SG27C PLUS电竞显示器的使用新体验

热门文章

  1. java 枚举报错_java 枚举
  2. c++调用偏僻数据库db2
  3. Python的reduce
  4. android开花动画,放下手机,听花开的声音 -- 花儿 の Time #Android #iPhone
  5. Educational Codeforces Round 132 div.2 A-F题解
  6. android 百度地图 自定义地图标注,百度地图自定义标注
  7. 赛门铁克盘点近期勒索软件犯罪档案
  8. json解析_json解析
  9. 北京理工大学计算机学院乔磊,余月_北京理工大学计算机学院
  10. java面试题(一)Java面试问题集