1、方法(函数)概要

(1)、含义:方法(函数)就是定义在类中的具有特定功能的一段独立小程序。

(2)、方法定义的语法格式:

       修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,..){

              执行语句

              ……

              return 返回值;

       }

格式说明:

修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等。

返回值类型:用于限定方法返回值的数据类型。

参数类型:用于限定调用方法时传入参数的数据类型。

参数名:是一个变量,用于接收调用方法时传入的数据。

return关键字:用于结束方法以及返回方法指定类型的值。

返回值:被return语句返回的值,该值会返回方法指定类型的值。

(3)、特别注意:

a)方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要接受的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。

b)方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。

c)方法只有被调用时才会执行。函数只能调用函数,不能在函数中定义函数。java最小功能单元就是函数。

(4)、定义方法的两个明确:

第一,  明确定义的功能最后的结果是什么?明确返回值类型。

第二,  明确在定义该功能过程中,是否有未知内容参与运算?明确参数列表。

简单代码示例演示:

  1. public class Demo {
  2. public static void main(String[] args) {
  3. int add = add(5, 12);// 调用add()方法,用一个int类型的变量add接收结果
  4. System.out.println(add);// 打印结果
  5. printInfo();// 调用printInfo()方法
  6. }
  7. public static int add(int i, int j) {// 带两个int类型参数,返回值为int的求两个整数的和的方法
  8. int sum = i + j;
  9. return sum;
  10. }
  11. public static void printInfo() {// 无返回值类型的方法
  12. System.out.println("Hello World!");
  13. // return;可以省略
  14. }
  15. }

2、方法重载

(1)、含义:Java允许在一个程序中定义多个名称相同的方法,但是参数列表不同,这就是方法的重载。

方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数列表不同。(注意与重写区别)

参数列表不同包括参数个数不同、参数类型不同和参数的顺序不同。重载方便阅读,优化了程序设计。

(2)、什么时候用重载?

当定义功能相同时,但参与运算未知内容不同。那么,这时就定义一个函数名称表示功能,方便阅读,而通过参数列表的不同来区分多个同名函数。

(3)、重载代码示例:

  1. public class Demo {
  2. public static void main(String[] args) {
  3. System.out.println("第一个:" + add(5, 2));
  4. System.out.println("第二个:" + add(5, 2, 12));
  5. System.out.println("第三个:" + add(5.8, 2.9));
  6. }
  7. public static int add(int x, int y) {// 求两个整数的和
  8. return x + y;
  9. }
  10. public static int add(int x, int y, int z) {// 求三个整数的和
  11. return x + y + z;
  12. }
  13. public static double add(double x, double y) {// 求两个double类型数值的和
  14. return x + y;
  15. }
  16. // 错误示例
  17. // public static int add(int a,int b){//和第一个方法相同,报错。
  18. // return a+b;
  19. // }
  20. }

3、方法递归

(1)、含义:

方法的递归是指在一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。

(2)、出口:在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。

代码示例演示:

  1. public class Demo {
  2. public static void main(String[] args) {
  3. System.out.println(recursion(5));
  4. }
  5. public static long recursion(int n) {// 求一个数的阶乘的递归调用
  6. if (n == 1) {//出口
  7. return 1;
  8. }
  9. return recursion(n - 1) * n;
  10. }
  11. }

简单分析:用递归的方法实现一个数的阶乘,非常重要的一点,明确递归结束的条件,即当该数为1的时候不再进行递归,返回递归最终的结果。即5*4*3*2*1=120

Java编程基础-方法的更多相关文章

  1. Java入门——(1)Java编程基础

    Java入门--(1)Java编程基础 第二章 Java编程基础   JAVA 代码的基本格式: 修饰符 class 类名{ 程序代码 }   2.1关键字:赋予了特殊含义的单词.   2.2标识符: ...

  2. Java开发知识之Java编程基础

    Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...

  3. Java编程基础-面向对象(中)

    本章承接Java编程基础-面向对象(上)一文. 一.static关键字 在java中,定义了一个static关键字,它用于修饰类的成员,如成员变量.成员方法以及代码块等,被static修饰的成员具备一 ...

  4. Java编程基础——流程控制

    Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...

  5. Java编程基础——常量变量和数据类型

    Java编程基础——常量变量和数据类型 摘要:本文介绍了Java编程语言的常量变量和数据类型. 常量变量 常量的定义 一块内存中的数据存储空间,里面的数据不可以更改. 变量的定义 一块内存中的数据存储 ...

  6. Java编程基础——标识符和关键字

    Java编程基础——标识符和关键字 摘要:本文主要介绍标识符和关键字. 标识符 是什么 Java语言中,为各种变量.方法.类和包等起的名字,统统称之为Java标识符. 命名规则 ◆ 应以字母.下划线. ...

  7. java编程基础二进制

    0.java编程基础 01.二进制(原码,反码,补码) 02.位运算 03.移位运算符 二进制 原码,反码,补码 1.基本概念 二进制是逢2进位的进位制,0,1是基本算符. 现在的电子计算机技术全部使 ...

  8. java发送邮件基础方法(另附部分主流邮箱服务器地址、端口及设置方法)

    java发送邮件基础方法,可通过重载简化参数 import java.io.File; import java.io.UnsupportedEncodingException; import java ...

  9. Java编程基础——数组和二维数组

    Java编程基础——数组和二维数组 摘要:本文主要对数组和二维数组进行简要介绍. 数组 定义 数组可以理解成保存一组数的容器,而变量可以理解为保存一个数的容器. 数组是一种引用类型,用于保存一组相同类 ...

随机推荐

  1. HDU5919 Sequence2

    传送门 这道题是主席树好题啊-- 题目大意:给定一个序列,每次给定一段区间,区间内所有不同的数第一次出现的位置排成一个序列,求这个序列的中位数. 其实求中位数并不是很难,只要我们能把这个序列中不同的数 ...

  2. 想要删除table的某一行的js写法

    <tr><td onclick="del_tr(this)" >删除</td></tr> // 删除一行 function del_ ...

  3. iOS 中这些是否熟练掌握——(2)

    接上一篇博文,本篇博文是作者原创,用于记录从网上查阅的一些资料,并对自己的知识体系进行一下总结,成文以供学习使用. 1.Cocoa Touch 包含了什么?不包含什么?与 Cocoa 有什么区别? 相 ...

  4. C#控件刷新

    ; ; foreach (string gen in fn_gen) { //MessageBox.Show(gen); Bitmap Bi = new Bitmap(gen); //使用打开的图片路 ...

  5. java定时器Timer的使用

    Time类主要负责完成定时计划任务的功能,就是在指定的时间的开始执行某个任务. Timer类的作用是设置计划任务,而封装任务内容的类是TimerTask类.此类是一个抽象类,继承需要实现一个run方法 ...

  6. 使用 Multipath TCP 为 iOS 创建备份连接(转)

    这篇文章的英文版如下: https://support.apple.com/en-us/HT201373 这里咱们采用苹果手机打开测试网站,发现没有检测到MPTCP,初步猜想可能需要打开什么设置,后续 ...

  7. UVa 1631 Locker (DP)

    题意:有一个 n 位密码锁,每位都是0-9,可以循环旋转.同时可以让1-3个相邻数字进行旋转一个,给定初始状态和目状态,问你最少要转多少次. 析:很明显的一个DP题.dp[i][j][k] 表示前 i ...

  8. windows ping得通,连接不上网

    这是被电脑安装的软件拦截的现象,我们只需要使用.   netsh winsock reset   重启电脑即可

  9. 洛谷 - P1829 - Crash的数字表格 - 莫比乌斯反演

    求: \(S(n,m)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)\) 显然: \(S(n,m)=\sum\limits_{i=1}^{n}\ ...

  10. Qt 生成word、pdf文档

    需求:将软件处理的结果保存为一个报告文档,文档中包含表格.图片.文字,格式为word的.doc和.pdf.生成word是为了便于用户编辑. 开发环境:qt4.8.4+vs2010 在qt的官网上对于p ...