Java零基础精通方法篇
一、前言
- 学习概述:学习四种不同类型的方法应用、方法被调用时的内存图、重载
- 学习目标:熟练掌握方法的应用以及重载
二、定义与调用
1.概述
- 定义:方法是一种语法结构,把一段代码封装成一个功能,方便重复调用
- 分类:一般分为参数(带/不带)、返回值(有/无)
- 好处:提高代码复用性、逻辑更加清晰
2.格式
修饰符 返回值类型 方法名( 形参列表 )
{
//方法体
return 返回值;
}
范例:
3.调用
方法必须通过程序调用 才能运行,调用格式如下:
方法名(…);
范例:
int sum = add(10, 20); System.out.println(sum);
4.注意
- 修饰符:目前暂时使用public static 修饰
- 形参:可以没有,但有多个需要逗号分隔,调用时需要传入对应类型的变量值
- 返回值:如果方法定义了返回类型,方法内部的代码段一定要体现。如果方法不需要返回结果,返回值类型必须申明成void(无返回值)
三、范例
1. 例题 1
设计一个方法(无参、无返回值)用于打印两个数字的大小关系
编码实现:
public static void main(String[] args) { getRelation();//调用方法 } public static void getRelation() { int a=10; int b=20; if(a>b) { System.out.println("a大于b"); } else if(a<b) { System.out.println("a小于b"); } else { System.out.println("a等于b"); } }
输出结果:
a小于b
2. 例题 2
设计一个方法(有参、无返回值)用于打印两个数字的最大值
编码实现:
public static void main(String[] args) { getMax(10,20);//调用方法 } public static void getMax(int a,int b)//带参无返回值 { if(a>b) { System.out.println(a); } else { System.out.println(b); } }
输出结果:
20
3. 例题 3
设计一个方法(有参、有返回值 int 型)用于打印两个数字的最大值
编码实现:
public static void main(String[] args) { System.out.println(getMax(10,20));//调用方法 } public static int getMax(int a,int b)//带参无返回值 { if(a>b) { return a; } else { return b; } }
输出结果:
20
四、方法调用的内存图
- 方法未被调用,在方法区中的字节码文件中存放
- 方法调用,进入到栈内存中运行
- java程序编译生成class字节码文件,方法区存入main方法、eat、study、eat方法。进入主函数调用,在栈内存运行输出结果。
五、重载
1.概述
定义:同一个类中,出现多个方法名称相同,但是形参列表不同(类型不同或数量不同),与返回值无关
例如下面几个例子,判断是否为方法重载?
- 第一个不是,与返回值无关
- 第二个是,形参数量不同
- 第三个是,形参定义类型不同
- 第四个不是,不在同一个类中
2.例题
构造三个重载的方法,分别实现两个int型整数相加的和、两个double类型数据相加的和、三个int类型数据相加的和
编码实现:
public static void main(String[] args) { int result=sum(10,20); System.out.println(result); double result1=sum(10.0, 20.0); System.out.println(result1); int result2=sum(10, 20,30); System.out.println(result2); } public static int sum(int a,int b) { return a+b; } public static double sum (double a,double b) { return a+b; } public static int sum(int a,int b,int c) { return a+b+c; }
输出结果:
30
30.0
60
3.总结
- 重载可读性好,方法名称相同是同一类型的功能,但通过形参不同实现功能差异化的选择
- 形参列表不同:形参的个数、类型、顺序不同,不关心形参的名称
到此这篇关于Java零基础精通方法篇的文章就介绍到这了,更多相关Java方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java与Node.js利用AES加密解密出相同结果的方法示例
这篇文章主要介绍了Java与Node.js利用AES加密解密出相同结果的方法,文中给出了详细的示例代码,相信对大家的学习或者工作能带来一定的帮助,需要的朋友们下面来一起看看吧。2017-02-02解决jackson反序列化失败InvalidFormatException:Can not dese
这篇文章主要介绍了解决jackson反序列化失败InvalidFormatException:Can not deserialize value of type java.util.Date问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12SpringBoot+MyBatis+Redis实现分布式缓存
本文主要介绍了SpringBoot+MyBatis+Redis实现分布式缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-01-01
最新评论