当前位置: 首页 > news >正文

JAVA-->方法的使用详解

JAVA–>方法的使用详解

1.方法的概念及使用

1.1 什么是方法 : 方法就是一个代码片段. 类似于 C 语言中的 “函数”。

1.2 方法定义

/ 方法定义
修饰符 返回值类型 方法名称([参数类型 形参 ...]){方法体代码;[return 返回值];
}

判断是否为闰年

public class Method{
// 方法定义public static boolean isLeapYear(int year){if((0 == year % 4 && 0 != year % 100) || 0 == year % 400){return true;}else{return false;}}
}

注:1.当前修饰符先默认为public static

2.方法必须写返回值,如果没有返回值,必须写为void

3.方法命名规则 ->小驼峰

4.必须写明参数类型 形参变量名,参数允许为空

5.在java中,方法必须定义在类内

6.在java中,没有方法声明的说法,所以可以在调用方法之前定义,也可以在之后定义

7.方法不能嵌套定义

1.3方法执行过程:

调用方法—>传递参数—>找到方法地址—>执行被调方法的方法体—>被调方法结束返回—>回到主调方法继续往下执行

注:1.方法没有被调用就不会执行

2.一个方法可以被多次调用.

public class Method {public static void main(String[] args) {int a = 10;int b = 20;System.out.println("第一次调用方法之前");int ret = add(a, b);//30System.out.println("第一次调用方法之后");System.out.println("ret = " + ret);System.out.println("第二次调用方法之前");ret = add(30, 50);//80System.out.println("第二次调用方法之后");System.out.println("ret = " + ret);}public static int add(int x, int y) {System.out.println("调用方法中 x = " + x + " y = " + y);return x + y;}
}

1.4实参和形参的关系

关系:形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递过来的值。

简单理解就是 形参是实参的一份拷贝

//伪代码
public static int getSum(int N){ // N是形参return (1+N)*N / 2;
}
getSum(10); // 10是实参,在方法调用时,形参N用来保存10
getSum(100); // 100是实参,在方法调用时,形参N用来保存100

注:在Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体

//交换两个数的值
public class TestMethod {public static void main(String[] args) {int a = 10;int b = 20;swap(a, b);System.out.println("main: a = " + a + " b = " + b);}public static void swap(int x, int y) {int tmp = x;x = y;y = tmp;System.out.println("swap: x = " + x + " y = " + y);}
}
//结果,无法进行交换,因为形参和实参没有关系.改变了xy,也不会改变ab

解决办法: 传引用类型参数(使用数组,数组文章详解)

public class TestMethod {public static void main(String[] args) {int[] arr = {10, 20};swap(arr);System.out.println("arr[0] = " + arr[0] + " arr[1] = " + arr[1]);}public static void swap(int[] arr) {int tmp = arr[0];arr[0] = arr[1];arr[1] = tmp;}
}

1.5 没有返回值

方法的返回值是可选的. 有些时候可以没有的,没有时返回值类型必须写成void

class Test {public static void main(String[] args) {int a = 10;int b = 20;print(a, b);}public static void print(int x, int y) {System.out.println("x = " + x + " y = " + y);}
}

2.方法重载

2.1方法重载概念:简单理解,一个名字具有不同意义

女神:你是个好人,扶老人过马路,老人:你是个好人

在这里插入图片描述

要进行方法重载注意点:

1. 方法名必须相同

2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)

3. 与返回值类型是否相同无关

2.2方法签名:方法签名即:经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。(知道重载本质是方法签名即可)

3.递归

3.1递归的概念:一个方法在执行过程中调用自身, 就称为 “递归”

递归的必要条件

1. 将原问题划分成其子问题(大事化小 小事化了),注意:子问题必须要与原问题的解法相同

2. 需要有结束条件,并不断接近结束条件

public static void main(String[] args) {int n = 5;int ret = factor(n);System.out.println("ret = " + ret);}
public static int factor(int n) {if (n == 1) {return 1;}return n * factor(n - 1); // factor 调用函数自身
}

3.2递归的执行过程:画图理解,什么时候递,什么时候归.

3.3递归练习

写一个递归方法,输入一个非负整数,返回组成它的数字之和. 例如,输入 1729, 则应该返回1+7+2+9,它的和是19

public static int sum(int num) {if (num < 10) {return num;}return num % 10 + sum(num / 10);
}
http://www.lryc.cn/news/358328.html

相关文章:

  • 基于 vLLM 搭建 DeepSeek-V2 Chat 服务
  • Kafka 安装教程和基本操作
  • Java 五种内部类演示及底层原理详解
  • 【UnityShader入门精要学习笔记】第十五章 使用噪声
  • C++ ─── string的完整模拟实现
  • 安卓中的图片压缩
  • centOS7.9 DNS配置
  • 设计模式20——职责链模式
  • android13 差分包制作命令
  • Flink-cdc更好的流式数据集成工具
  • C++|设计模式(三)|抽象工厂模式
  • AVB协议分析(一) FQTSS协议介绍
  • 一个程序员的牢狱生涯(44)询问
  • 刷爆leetcode第六期
  • 汇舟问卷:国外问卷调一天900
  • openresty完美替代nginx
  • 深入解析:Element Plus 与 Vite、Nuxt、Laravel 的结合使用
  • 使ssh连接Linux服务器一直不掉线
  • 2024-05-29 blue-VH-driver-对外接口的并行调用-设计与思考
  • ubuntu安装
  • Rosetta PyRosetta 源码包 安装包 下载
  • C++ 进阶(3)虚函数表解析
  • 2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测
  • kafka-主题创建(主题操作的命令)
  • [日常开发] 数据库主从延迟问题
  • Python高层解雇和客户活跃度量化不确定性模型
  • 【IOT】OrangePi+HomeAssistant+Yolov5智能家居融合
  • Python 点云裁剪
  • Presto 从提交SQL到获取结果 源码详解(2)
  • Python的类全面系统学习