>[success] # java 方法
1. 方法(method)是程序中最小的执行单元
* 方法必须先创建才可以使用,该过程成为**方法定义**
* 方法创建后并**不是直接可以运行**的,需要**手动使用后,才执行,该过程成为方法调用**
2. 方法作用,**将重复的代码、具有独立性的功能抽取到方法中,这样可以提高代码复用性,让代码逻辑更加清晰**
3. `java `中方法格式定义
* **方法名称**:自己取名,有意义,英文小写,驼峰模式。(有意义的名字即可)
* **方法体代码**:完成自己需要写的功能代码即可。(具体需求具体实现),需要关注的就两点:**1、分析方法是否需要申明返回值类型;2、分析方法是否需要接收参数。**
~~~
修饰符 返回值类型 方法名( 形参列表 ){
方法体代码(需要执行的功能代码)
return 返回值;
}
~~~
* 效果
![](https://img.kancloud.cn/a5/2c/a52cb018bd0ccd1957271ba94d1f5171_499x145.png)
* 整体案例调用时候只需要直接调用`方法名();`
~~~
public class Test {
public static void main(String[] args) {
// 直接方法名调用
System.out.print(add(5, 6));
}
public static int add(int a, int b) {
int c = a + b;
return c;
}
}
~~~
**方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据** ,形参列表可以有多个,甚至可以没有; 如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值
*****
**注 : 案例暂时都使用`public static` 修饰。这样可以直接调用方法**
>[danger] ##### 关于返回值
* 返回值主要指从`方法体内`返回到`方法体外的数据` 内容
* 在方法体中使用`return`关键字可以返回具体的数据内容
* 返回值类型可以是`基本数据类型`,也可以是`引用数据类型`
* 当该方法`不需要返回任何数据内容`时,返回值类型必须申明成**void(无返回值)**, 此时方法内部**不可以使用return返回数据。** 返回值类型申明为`void`可以称为无返回值的方法
~~~
public class Person {
// 声明方法 无返回值
public void sleep() {
System.out.println("睡觉");
}
// 执行方法的入口文件
public static void main(String[] args) {
sleep()
}
}
~~~
>[danger] ##### 形参列表
* `形式参数`列表主要指多个形式参数组成的列表,语法格式如下:`数据类型 形参变量名1, 数据类型 形参变量名2`
* 调用时候 `实际参数`列表主要用于对形式参数列表进行初始化操作,因此参数的个数、类型以及顺序都要完全一致
* 总结:`定义方法`时的`参数叫形参`,`调用方法时`传递的参数叫`实参`
~~~
public class Test {
// 声明方法 无返回值 传入参数
public static void sleep(String name, int age) {
System.out.print(name + age);
}
// 执行方法的入口文件
public static void main(String[] args) {
sleep("w", 18);
}
}
~~~
>[danger] ##### 可变长参数
* `参数的类型... 参数名`,方法参数部分指定类型的参数个数是可以改变的,也就是0~n个
* 一个方法的形参列表中最多只能声明`一个可变长形参`,并且需要放到参数列表的`末尾`
* Java的可变参数,会被编译器转型为一个数组
~~~
import java.util.Arrays;
public class Test {
public static void printParams(String... n) {
System.out.print(Arrays.toString(n)); // [w, z, b]
}
// 执行方法的入口文件
public static void main(String[] args) {
printParams("w", "z", "b");
}
}
~~~
>[info] ## 案例
~~~
public class Test {
public static void main(String[] args) {
// 目标:掌握带返回值方法的定义和调用格式
// 直接调用
// getSum(10,20,30);
// 赋值调用
// int sum = getSum(10,20,30);
// System.out.println(sum);
// 输出调用
// System.out.println(getSum(10,20,30));
// 先计算第一个季度的营业额
int sum1 = getSum(10, 20, 30);
// 再来计算第二个季度的营业额
int sum2 = getSum(20, 30, 40);
// 计算第三个季度的营业额
int sum3 = getSum(20, 30, 40);
// 计算第四个季度的营业额
int sum4 = getSum(20, 30, 40);
// 求全年的总营业额
int sum = sum1 + sum2 + sum3 + sum4;
System.out.println(sum);
}
public static int getSum(int num1, int num2, int num3) {
int result = num1 + num2 + num3;
return result;// 返回给方法的调用处
}
}
~~~
>[info] ## 总结
* 方法的编写顺序无所谓。
* 方法与方法之间是平级关系,不能嵌套定义。
![](https://img.kancloud.cn/d4/24/d424fb14351a748b76c72b4bbcf7de83_893x234.png)
* 方法的返回值类型为**void(无返回值),方法内则不能使用return返回数据**,如果方法的**返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据**。
* `return`语句下面,不能编写代码,因为永远执行不到,属于无效的代码。
* 方法不调用就不执行, 调用时必须严格匹配方法的参数情况。**有返回值的方法调用时可以选择定义变量接收结果**,或者直接输出调用,甚至直接调用;**无返回值方法的调用只能直接调用**。
- windows -- 环境变量
- Vscode -- 编写java
- 初始java
- java -- 关键字
- 编写第一个java程序
- java -- 注释
- 计算机存储 -- 进制
- java -- 类型
- java -- 变量
- 数字类型
- 布尔类型
- 字符类型
- 类型转换
- 双等比较是什么
- java -- 运算符
- 算数运算符
- 字符串拼接
- 关系/比较运算符
- 自增减运算符
- 逻辑运算符
- 三目运算
- 赋值运算符
- 移位运算符
- 位运算符
- 运算符优先级
- java -- 流程控制语句
- if /else if /if -- 判断
- switch case分支结构
- for -- 循环
- 用双重for循环
- while -- 循环
- do while -- 循环
- 案例练习
- java -- 数组
- 数组的存储
- 数组的增删改查
- 数组的特点
- 数组案例
- 二维数组
- 数组的工具方法
- java -- 方法
- java -- 方法的重载
- java -- 方法的调用流程
- java -- 类方法传参注意事项
- java -- 方法练习案例
- 对比 return break continue
- for each循环
- java -- 基础练习
- java -- 面向对象
- java -- 创建类和对象
- java -- 访问控制符
- java -- 类成员方法
- java -- 构造方法
- java -- this
- java -- 封装
- java -- 对象内存图
- java -- 创建对象案例
- java -- static
- java -- 继承
- super -- 关键字
- java -- 构造块和静态代码块
- java -- 重写
- java -- final
- java -- 多态
- java -- 抽象类
- java -- 接口
- 引用类型数据转换
- 综合案例
- java -- 内部类
- java -- 回调模式
- java -- 枚举类型
- java -- switch 使用枚举
- java -- 枚举方法使用
- java -- 枚举类实现接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 递归练习
- java -- 设计模式
- 单例模式
- java -- 注解
- java -- 元注解
- Java -- 核心类库
- java -- 处理字符串
- Java -- String
- String -- 常用方法
- String -- 正则
- Java -- StringBuilder 和 StringBuffer
- 知识点
- Java -- StringJoiner 字符串拼接
- 练习题
- 字符串的总结
- Java -- 包装类
- Integer
- Double
- Boolean
- Character
- java -- 集合类
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 获取当前时间戳
- Java -- 异常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法