Java学习--方法的详细讲解

1,什么是方法?

封装在一起来执行操作语句的集合,用来完成某个功能操作在某些语言中称为函数或者过程

2.定义方法

修饰符\] 方法返回值类型 方法名(形参列表) { 方法体 return 返回值; } 例如:public static int add(int a, int b, int c) { int k=a+ b+c; return k; } 修饰符:之后会在封装的文章讲解,喜爱你在需要先记着这种结构 返回值:必选,如果没有返回值,需要写void,方法只能返回一个值 方法名:最好起一个能直接知晓这个方法是干啥的名字 参数列表:可以0个,1个,2个等等,需要同时说明参数类型,称为形式参数 发现以前我们程序的入口其实就是一个方法,方法的名字是main,叫main方法。 PS: 那么我们要是定义方法的话,就是跟main方法平级的概念。 3.方法定义好之后,是需要在别处调用的。 4.详细说一下定义的格式都是什么意思:--》暂时不做讲解,留到面向对象一章学习,暂时会用即可(1)修饰符:public static (2)返回值类型:你调用这个方法,会给你返回一个结果,这个结果对应的类型可能是什么类型: a.基本数据类型(byte,short,int,long,float,double,char,boolean) b.引用数据类型 (3)方法名:见名之意 ,首字母小写其余遵循驼峰命名:addNum,add, (4)形式参数(形参):方法定义的时候,用来接收你传过来的参数---》num1,num2 实际参数:方法调用的时候,具体传过去的参数-----\>10,20 PS:形参个数不固定,类型不固定,顺序不固定方法体:业务逻辑代码 (5)方法体:业务逻辑代码执行你这个功能的具体的代码 (6)return+方法的返回值;有没有一种可能,这个方法没有返回值? 可能当方法没有返回值的时候,return; 可以省略不写,并且对应的返回值类型为:void (7)什么时候有返回值,什么时候没有返回值啊?看心情。自己考虑,当这个返回值在接下来的代码中有用的时候,就带返回值。假如这个方法的返回值以后也没啥用了,就不用写了。 (8)方法定义的时候,明确两件事: a.这个方法中的不确定因素要作为形参 b.明确这个方法时候有返回值方法调用的时候,负责两件事: (9)a.负责把形参具体的数据传过去---》传入实参 b.负责考虑是否接收返回值 5.定义方法的好处:增加代码的复用性增加代码的可读性 **最简单的就是下面这样写的** **eg.** ```java public static void eat(){ System.out.println("啥都吃"); } ``` **方法的调用** ```java public class helloworld {//这个类的名字必须是和 public static void main(String[] args) { eat(); } public static void eat(){ System.out.println("啥都吃"); } } ``` Java里都是类,方法要定义在类里,同时不能定义在其他方法里 **有参方法举例:** ```java public class helloworld { public static void main(String[] args) { eat("zyf",10); } public static void eat(String name,int day){ System.out.println(name+"吃了"+day+"天"); } } //输出 zyf吃了10天 ``` **有返回值方法举例:** ```java public class helloworld { public static void main(String[] args) { System.out.println("zyf吃了 "+eat()+" 天"); } public static int eat(){ return 10; } } //输出 zyf吃了 10 天 ``` *** ** * ** *** #### 方法重载 先看下面正常的函数调用 ```java public class helloworld { public static void main(String[] args) { //调用方法 //10+20 System.out.println(add1(10,20)); //10+20+30 System.out.println(add2(10,20,30)); //20+40+60+80 System.out.println(add3(10,20,30)); } public static int add1(int a,int b){ return a+b; } public static int add2(int a,int b,int c){ return a+b+c; } public static double add3(double a,double b,double c){ return a+b+c; } } //输出 //30 //60 //60.0 ``` 下面是利用重载 ```java public class helloworld { public static void main(String[] args) { //调用方法 //10+20 System.out.println(add(10,20)); //10+20+30 System.out.println(add(10,20,30)); //20+40+60+80 System.out.println(add(10.0,20.0,30.0)); } public static int add(int a,int b){ return a+b; } public static int add(int a,int b,int c){ return a+b+c; } public static double add(double a,double b,double c){ return a+b+c; } } //输出 //30 //60 //60.0 ``` 我们可以观察到 1.方法的重载:当不同的方法完成的功能相似,定义为方法名相同,形参列表不同,构成了方法的重载。 2.重载的条件: (0)在同一个类中 (1)方法名相同 (2)形参列表不同 (个数不同,类型不同,顺序不同)-----意味着方法的重载跟修饰符,返回值类型无关 拿道题来练练方法 [B4025 最大公约数 - 洛谷![](https://csdnimg.cn/release/blog_editor_html/release2.4.4/ckeditor/plugins/CsdnLink/icons/icon-default.png)https://www.luogu.com.cn/problem/B4025](https://www.luogu.com.cn/problem/B4025 "B4025 最大公约数 - 洛谷") > **题目描述** > > 定义两个正整数的最大公约数 gcd(a,b) 为最大的正整数 d,使得 d 可以同时整除 a 和 b。 > > 例如,gcd(9,12)=3,因为 9÷3 和 12÷3 的余数是 0,而无法找到一个比 3 更大的正整数满足要求。 > > 现在给定两个正整数 a,b,要求出 gcd(a,b)。 > > **输入格式** > > 输入两个正整数 a,b。 > > **输出格式** > > 输出 gcd(a,b)。 > > **输入输出样例** > > **输入 #1**复制 > > ``` > 9 12 > ``` > > **输出 #1**复制 > > ``` > 3 > ``` > > **输入 #2**复制 > > ``` > 100 1000 > ``` > > **输出 #2**复制 > > ``` > 100 > ``` > > **说明/提示** > > 对于 40% 的数据,1≤a,b≤1000。 > > 对于所有的数据,1≤a,b≤109。 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { int a,b; Scanner sc=new Scanner(System.in); a=sc.nextInt(); b=sc.nextInt(); System.out.println(gcd(a,b)); } public static int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b); } } ```

相关推荐
西岸行者6 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意6 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码6 天前
嵌入式学习路线
学习
毛小茛6 天前
计算机系统概论——校验码
学习
babe小鑫6 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms6 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下6 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。6 天前
2026.2.25监控学习
学习
im_AMBER6 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J6 天前
从“Hello World“ 开始 C++
c语言·c++·学习