目录

方法的定义

方法的格式

定义新方法的明确点

方法的重载

方法的形参与实参

方法的注意事项

方法调用四步骤

方法形参是基本和引用数据类型例子

基本数据类型

引用数据类型

方法的递归调用


方法的定义

简单的说:方法就是完成特定功能的代码块

方法的格式

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

方法体;

return 返回值;

}

return的两个作用:

  1. 停止当前方法
  2. 将后面的返回值还给调用处,返回值跟返回值类型对应

定义新方法的明确点

写一个方法首先有两点需要明确

返回值类型 明确功能结果的数据类型,如果没有返回值,则写void

参数列表 明确有几个参数,以及参数的类型

有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数。

例如两个数字相加,必须知道两个数字是各自多少,才能相加。

无参数:小括号当中留空。一个方法不需要任何数据条件,自己就能独立完成任务,就是无参数。

例如定义一个方法,打印固定10次HelloWorld。

方法的重载

比如说,但我们去定义两个数的和,三个数的和,四个数的和,这三个方法分别叫做sumTwo,sumThree,sumFor,对于这些功能类似的方法来说,因为参数列表不同,却需要记住那么多不同的方法名称,显得很麻烦,我们可以定义一个统一的名称getSum,所以出现了方法的重载。

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。这就是方法的重载

方法重载特点:

  1. 参数个数不同
  2. 参数类型不同
  3. 参数的多类型顺序不同
  4. 与返回值类型无关,只看方法名(相同)和参数列表(不同)

总体原则:在调用方法时,在编译阶段,虚拟机通过实参列表来调用最匹配的那个方法

好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能

方法的形参与实参

形式参数:用于接收实际数据的变量

实际参数:实际参与运算的变量

方法的注意事项

1.方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。

例如定义了一个两个int类型数字相加的方法:

public static int sum(int a, int b) {

int result = a + b;

return result;

}

单独调用:方法名称(参数);  sum(10, 20);

打印调用:System.out.println(方法名称(参数));  System.out.println(sum(10, 20));

赋值调用:数据类型 变量名称 = 方法名称(参数);  int number = sum(15, 25);

如果返回值类型是void的方法,这种方法只能够单独调用,不能进行打印调用或者赋值调用

2.如果方法有返回值,那么必须写上“return 返回值;”,不能没有。

3.return后面的返回值数据,必须和方法的返回值类型,对应起来。

4.对于一个void没有返回值的方法,不能写return后面的返回值,只能写return,相当于

结束方法。

5.对于void方法当中最后一行的return可以省略不写

6一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。例如if和else里面都有一个return,但是只会有一个return会被执行到

方法调用四步骤

第一步:找到方法

第二步:参数传递

第三步:执行方法体

第四步:带着返回值回到方法的调用处

有返回值和无返回值的对比:

方法形参是基本和引用数据类型例子

基本数据类型

遇到此类型可以画图解释,由上图可知,代码片段都先被加载进方法区,首先调用main方法,main方法进栈,此时输出a=10,b=20,之后调用change方法,change方法进栈,a和b分别被当做实际参数传进change方法的形参中,在change方法中,a=20,b=40,change方法结束后直接从内存消失,弹栈,此时访问a,b变量会直接从main方法中取,所以是10,20

结论:如果方法的参数是基本数据类型,形式参数的改变不影响实际参数

引用数据类型

结论:如果参数是引用数据类型,形式参数的改变直接影响实际参数,因为传递是实参的地址

方法的递归调用

方法递归调用就是在方法体中又调用了它自身.

方法递归调用主要确定两点:

1.找到规律

2.确定结束条件

例如求n的阶乘

/*

定义方法,返回n的阶乘, 通过参数来接收一个整数n,返回它的阶乘

6! = 1*2*3*4*5*6

5! = 1*2*3*4*5

4! = 1*2*3*4

3! = 1*2*3

2! = 1*2

1! = 1

规律:

n! = (n-1)! * n

结束条件:

1! = 1

*/

public static long factor( int n ){if ( n == 1 ){return 1;}return  factor(n-1) * n;     //返回n-1的阶乘 * n,  调用它自身返回n-1的阶乘}

java基础知识——JAVA中的函数(方法)相关推荐

  1. Java基础看jvm,JAVA基础知识|java虚拟机(JVM)

    一.JVM简介 java语言是跨平台的,兼容各种操作系统.实现跨平台的基石就是虚拟机(JVM),虚拟机不是跨平台的,所以不同的操作系统需要安装不同的jdk版本(jre=jvm+类库:jdk=jre+开 ...

  2. java定义一个eat方法_小黄鸭系列java基础知识 | java中的方法

    前言 今天我们要探讨的问题,是java基础语法的最后一个问题,也就是java中的方法,今天主要从以下几个方面来介绍: 方法是什么(定义) 方法的分类 方法的调用 应该说,学完今天的知识,你至少应该看懂 ...

  3. java基础知识(java基础知识刷题软件)

    自学Java 怎么入门 在学习Java前,你有必要思考一下: 你对学习Java是否有兴趣2.您是否能静下心学习Java 大家都知道兴趣很重要,如果您对Java没有兴趣,相信你没法能静下心学习Java ...

  4. Java基础知识——Java语言基础

    ---------------------- ASP.Net+Android+IO开发S. .Net培训.期待与您交流! ---------------------- 2.Java语言基础 Java语 ...

  5. java中 hashmap中小数,java基础知识--HashMap中对 h(length-1)的理解

    1.HashMap 数组下标计算方式: (h 是k的hashcode值:length是数组长度,HashMap数组默认长度是16) 2.&是什么意思? &在 java 中做与运算,&a ...

  6. Java基础知识——Java常用类的使用

    目录 内容小结 String类 String对象的创建 字符串的特性判断 拼接 String类的常用方法 String和char[]的相互转换 实现代码 StringBuffer StringBuff ...

  7. java初级能干什么_小黄鸭系列java基础知识 | java能干什么?

    java能干什么? 前言 java本身只是一种编程语言,一种工具,我们在使用任何工具之前,应该要充分了解这个工具能干什么,只有搞清楚了这问题,你才能清楚你要不要使用它.所以今天我们要探讨的问题就是-- ...

  8. Java基础知识——Java数组详解

    数组是一种数据结构,用来存储同一类型值的集合,可以存储基本数据类型和类. 数组的大小是固定的,通过一个整型下标(从0开始)可以访问数组中的每个值.此外,Java会对数组进行边界检查,如果发现有越界现象 ...

  9. Java基础知识——Java集合详解

    数组是Java很常见的一种数据结构,能够快速地进行存取.但是当遇到下面几种情况: ①我们需要存储的数据集数目是不定的 ②我们希望数据集能够自动排序 ③我们需要以键值对的方式存储数据 - 数组就不能满足 ...

  10. php 类名 属性6,php基础知识(类中属性和方法练习)--2018年9月6日14:01:15

    实例 echo " 类的申明与实例化 "; class test1 { public function hello(){ return "我是一个类"; } } ...

最新文章

  1. 用 PHP 和 MySQL 保存和输出图片
  2. HtmlString类创建HTML Hepler 扩展MVC TextBox组件
  3. diy手工制作泡沫小球_废物利用手工DIY教程。一次性筷子变废为宝,手工制作木屋模型...
  4. centos 安装指定版本gc_番外篇 (1) Docker 安装
  5. reactjs路由router的基本使用
  6. 运维前线:一线运维专家的运维方法、技巧与实践导读
  7. 博客侧栏添加恋爱计时框
  8. python 灰色系统预测GM
  9. AOP下的权限控制实现
  10. 思科路由器Ez×××解决地址重叠测试
  11. 编写可靠shell脚本的8个建议
  12. 深度学习资料整理(深度神经网络理解)
  13. mysql宾馆客房管理系统视频_java swing mysql实现的酒店宾馆管理系统项目源码附带视频指导运行教程...
  14. 利用SPSS做数据分析①(了解SPSS)
  15. 【电脑自检后无法进入电脑系统的搞定妙方】
  16. Java微信授权登陆
  17. onenote使用python开发_我应该用onenote还是印象笔记?
  18. UE4学习之VR(三)
  19. QIP.ru即时通讯服务3300万明文密码被泄
  20. ORACLE等待事件相关

热门文章

  1. cad怎么转换成dwf格式?学会这招,解决98%工作烦恼
  2. Funcode学习笔记:完成Run、Jump、Idle等动作【后续更新Roll、Attack动作的实现】【By Myself】
  3. iOS开发:Pokemon Go试玩,未越狱的iPhone伪造GPS定位信息
  4. SQL语言学习随手记——二进制与十六进制之间的转换
  5. Eclipse 安装教程附免费安装包资源
  6. 如何下载谷歌浏览器官方最新离线安装包
  7. 转换BIM IFC数据为CityGML
  8. 繁体中文游戏乱码解决工具
  9. 机械设计基础复习重点
  10. Apache SOLR and Carrot2集成