java基础知识——JAVA中的函数(方法)
目录
方法的定义
方法的格式
定义新方法的明确点
方法的重载
方法的形参与实参
方法的注意事项
方法调用四步骤
方法形参是基本和引用数据类型例子
基本数据类型
引用数据类型
方法的递归调用
方法的定义
简单的说:方法就是完成特定功能的代码块
方法的格式
权限修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
}
return的两个作用:
- 停止当前方法
- 将后面的返回值还给调用处,返回值跟返回值类型对应
定义新方法的明确点
写一个方法首先有两点需要明确
返回值类型 明确功能结果的数据类型,如果没有返回值,则写void
参数列表 明确有几个参数,以及参数的类型
有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数。
例如两个数字相加,必须知道两个数字是各自多少,才能相加。
无参数:小括号当中留空。一个方法不需要任何数据条件,自己就能独立完成任务,就是无参数。
例如定义一个方法,打印固定10次HelloWorld。
方法的重载
比如说,但我们去定义两个数的和,三个数的和,四个数的和,这三个方法分别叫做sumTwo,sumThree,sumFor,对于这些功能类似的方法来说,因为参数列表不同,却需要记住那么多不同的方法名称,显得很麻烦,我们可以定义一个统一的名称getSum,所以出现了方法的重载。
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。这就是方法的重载
方法重载特点:
- 参数个数不同
- 参数类型不同
- 参数的多类型顺序不同
- 与返回值类型无关,只看方法名(相同)和参数列表(不同)
总体原则:在调用方法时,在编译阶段,虚拟机通过实参列表来调用最匹配的那个方法
好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能
方法的形参与实参
形式参数:用于接收实际数据的变量
实际参数:实际参与运算的变量
方法的注意事项
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中的函数(方法)相关推荐
- Java基础看jvm,JAVA基础知识|java虚拟机(JVM)
一.JVM简介 java语言是跨平台的,兼容各种操作系统.实现跨平台的基石就是虚拟机(JVM),虚拟机不是跨平台的,所以不同的操作系统需要安装不同的jdk版本(jre=jvm+类库:jdk=jre+开 ...
- java定义一个eat方法_小黄鸭系列java基础知识 | java中的方法
前言 今天我们要探讨的问题,是java基础语法的最后一个问题,也就是java中的方法,今天主要从以下几个方面来介绍: 方法是什么(定义) 方法的分类 方法的调用 应该说,学完今天的知识,你至少应该看懂 ...
- java基础知识(java基础知识刷题软件)
自学Java 怎么入门 在学习Java前,你有必要思考一下: 你对学习Java是否有兴趣2.您是否能静下心学习Java 大家都知道兴趣很重要,如果您对Java没有兴趣,相信你没法能静下心学习Java ...
- Java基础知识——Java语言基础
---------------------- ASP.Net+Android+IO开发S. .Net培训.期待与您交流! ---------------------- 2.Java语言基础 Java语 ...
- java中 hashmap中小数,java基础知识--HashMap中对 h(length-1)的理解
1.HashMap 数组下标计算方式: (h 是k的hashcode值:length是数组长度,HashMap数组默认长度是16) 2.&是什么意思? &在 java 中做与运算,&a ...
- Java基础知识——Java常用类的使用
目录 内容小结 String类 String对象的创建 字符串的特性判断 拼接 String类的常用方法 String和char[]的相互转换 实现代码 StringBuffer StringBuff ...
- java初级能干什么_小黄鸭系列java基础知识 | java能干什么?
java能干什么? 前言 java本身只是一种编程语言,一种工具,我们在使用任何工具之前,应该要充分了解这个工具能干什么,只有搞清楚了这问题,你才能清楚你要不要使用它.所以今天我们要探讨的问题就是-- ...
- Java基础知识——Java数组详解
数组是一种数据结构,用来存储同一类型值的集合,可以存储基本数据类型和类. 数组的大小是固定的,通过一个整型下标(从0开始)可以访问数组中的每个值.此外,Java会对数组进行边界检查,如果发现有越界现象 ...
- Java基础知识——Java集合详解
数组是Java很常见的一种数据结构,能够快速地进行存取.但是当遇到下面几种情况: ①我们需要存储的数据集数目是不定的 ②我们希望数据集能够自动排序 ③我们需要以键值对的方式存储数据 - 数组就不能满足 ...
- php 类名 属性6,php基础知识(类中属性和方法练习)--2018年9月6日14:01:15
实例 echo " 类的申明与实例化 "; class test1 { public function hello(){ return "我是一个类"; } } ...
最新文章
- 用 PHP 和 MySQL 保存和输出图片
- HtmlString类创建HTML Hepler 扩展MVC TextBox组件
- diy手工制作泡沫小球_废物利用手工DIY教程。一次性筷子变废为宝,手工制作木屋模型...
- centos 安装指定版本gc_番外篇 (1) Docker 安装
- reactjs路由router的基本使用
- 运维前线:一线运维专家的运维方法、技巧与实践导读
- 博客侧栏添加恋爱计时框
- python 灰色系统预测GM
- AOP下的权限控制实现
- 思科路由器Ez×××解决地址重叠测试
- 编写可靠shell脚本的8个建议
- 深度学习资料整理(深度神经网络理解)
- mysql宾馆客房管理系统视频_java swing mysql实现的酒店宾馆管理系统项目源码附带视频指导运行教程...
- 利用SPSS做数据分析①(了解SPSS)
- 【电脑自检后无法进入电脑系统的搞定妙方】
- Java微信授权登陆
- onenote使用python开发_我应该用onenote还是印象笔记?
- UE4学习之VR(三)
- QIP.ru即时通讯服务3300万明文密码被泄
- ORACLE等待事件相关