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://www.luogu.com.cn/problem/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);
    }
}
相关推荐
熊猫钓鱼>_>38 分钟前
越顺,越空:当 AI 把学习 “优化“ 到消失
人工智能·学习·ai·llm·agent·ai编程·metaai
一条破秋裤1 小时前
02_注册设备号_从主次设备号到成对注销
学习
@codercjw1 小时前
企业实战电机和传感器选型
学习
zhangrelay2 小时前
用ROS2Lyrical实验报告册思路重做蓝桥云课ROS1实验并改进
linux·笔记·学习·ubuntu·机器人
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(91):THEANINE——不删除过时记忆,让 Agent 记住事情是如何变化的
论文阅读·人工智能·学习·开源·github
我命由我123453 小时前
Photoshop - Photoshop 面板和菜单
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·photoshop
一木 之林3 小时前
RAG开发学习总结:从 LangChain 入门到检索增强生成链路的全栈实战-4/6
人工智能·学习·计算机视觉·langchain
LHR_friendship3 小时前
HCIP课程全部内容
网络·笔记·学习·hcip·华为ensp
海绵宝宝转agent4 小时前
Pico 学习笔记 Harness 设计、历史压缩、三类目录与缓存复用
笔记·学习·缓存
我命由我123454 小时前
Photoshop - Photoshop 使用仿制图章工具移除对象
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法