目录
1. 方法引入
开发中,存在功能代码多次使用情况,如果使用 CV 大法解决问题,会导致
1. 代码冗余
2. 代码阅读性极差
3. 代码维护性极差
可以使用方法解决以上问题
2. 格式
public static void main(String[] args) {
}
/*
public static:
固定格式
void:
方法的返回值,void 表示当前方法没有返回值。方法的返回值可以根据方法的分析过程来确定得到。
main:
方法名,见名知意,动宾结构,小驼峰命名法。好的方法,可以通过方法名告知用户当前方法做什么。
(形式参数列表):
当前方法运行所需的外来数据。
类似于
菜谱对应的原料 --> 形式参数
按照菜谱原料准备的实际内容 --> 实际参数
{}:
方法体,封装的功能代码。
总结方法格式:
public static 返回值类型 方法名(形式参数列表) {
方法体;
}
public static returnType methodName(Parameters) {
Method Body;
}
*/
3. 无参数无返回值方法
3.1 需求
展示一个
年夜饭(清蒸鲈鱼, 酱焖牛肉, 烤羊排, 土豆排骨, 白灼菜心,八宝饭,大拌菜)
3.2 方法分析
public static:
固定格式
返回值类型:
当前方法没有返回值,为 void。
void 表示无返回值状态。
当前方法的功能是展示数据,无数据返回。【一定要分清楚数据展示和数据返回的情况。】
【数据展示】厨师做了宫保鸡丁,自己吃了
【数据返回】厨师做了宫保鸡丁,给你吃了
方法名:
方法功能展示年夜饭 见名知意,动宾结构,小驼峰命名法
showDinner
形式参数列表:
当前方法没有外来数据需求,无需参数,但是参数对应格式,必须要有 ()
3.3 方法声明
public static void showDinner();
3.4 方法实现和调用演示
/* 无参数无返回值方法定义操作 */
class Demo2 {
public static void main(String[] args) {
/*
【注意3】调用方法
方法是条狗,哪里需要哪里吼,吼[名称]
【注意4】
调用方法和使用变量最大的区别就是 小括号,调用方法
必须有小括号
*/
showDinner();
showDinner();
showDinner();
showDinner();
showDinner();
}
/*
【注意1】
自定义方法在 main 方法之外,class 大括号以内,和 main 方法同级
【注意2】
一定完成文档注释
*/
/**
* 展示今年的年夜饭
*/
public static void showDinner() {
System.out.println("年夜饭(清蒸鲈鱼, 酱焖牛肉, 烤羊排, 土豆排骨, 白灼菜心,八宝饭,大拌菜,饺子)");
}
}
3.5 注意事项
3.6 方法执行流程示意图
4. 有参数无返回值方法
4.1 需求
展示用户提供的 int 类型数据
4.2 方法分析
public static:
固定格式
返回值类型:
当前方法没有返回值,直接展示用户输入的数据 void
方法名:
见名知意,动宾结构,小驼峰命名法。
展示 int 类型数据
showIntValue
show 展示 int 标准整型类型 value 值 数据
展示 int类型 数据
形式参数列表:
当前方法有外来数据需求,提供对应数据类型的参数列表
(int num)
int 是当前参数的数据类型
num 是参数对应名称,可以认为是参数名,同时也可以在方法内部直接使用的一个变量名称
可以接受用户在调用过程中,传入的参数数据。并且存储数据,在方法运行过程中使用。
当前方法对外提供了一个接口,可以让用户传入一个 int 类型的数据
4.3 方法声明
public static void showIntValue(int num);
4.4 方法实现和调用演示
/* 有参数无返回值方法演示 */
class Demo3 {
public static void main(String[] args) {
/*
调用方法
当前方法有对应的参数需求,需要在调用过程中给予对应类型的实际数据。
实际数据的数据类型必须和参数要求的类型一致
*/
showIntValue(15);
showIntValue(100);
showIntValue(20);
// showIntValue();
/*
Demo3.java:13: 错误: 无法将类 Demo3中的方法 showIntValue应用到给定类型;
showIntValue(); 要参数没给,不行
^
需要: int
找到: 没有参数
原因: 实际参数列表和形式参数列表长度不同
1 个错误
*/
// showIntValue(10, 5, 20, 30, 50, 60);
/*
Demo3.java:24: 错误: 无法将类 Demo3中的方法 showIntValue应用到给定类型;
showIntValue(10, 5, 20, 30, 50, 60); 要参数给多了,不行
^
需要: int
找到: int,int,int,int,int,int
原因: 实际参数列表和形式参数列表长度不同
1 个错误
*/
// showIntValue(50.5);
/*
Demo3.java:35: 错误: 无法将类 Demo3中的方法 showIntValue应用到给定类型;
showIntValue(50.5); 要参数类型给错了,不行
^
需要: int
找到: double
原因: 参数不匹配; 从double转换到int可能会有损失
1 个错误
*/
}
/**
* 展示当前用户提供的 int 类型数据
*
* @param num 需要用户提供的 int 类型数据,用于方法执行展示
*/
public static void showIntValue(int num) {
// 展示用户提供的数据
System.out.println(num);
}
}
4.5 注意事项
调用带有参数的方法,要求实际参数在传入方法的过程中,和方法声明的参数类型,个数,顺序,必须一致。
4.6 方法执行流程示意图
5. 无参数有返回值方法
5.1 需求
调用方法,返回一个整数 5
5.2 方法分析
public static
固定格式
返回值类型:
当前方法返回一个整数 5 ,为 int 类型
方法返回值为 int 类型。
方法名
见名知意,动宾结构,小驼峰命名法
giveMeFive
形式参数列表
当前方法无参数需求,哪怕是无参数方法,必须有 ()
5.3 方法声明
public static int giveMeFive();
5.4 方法实现和调用演示
/* 无参数有返回值方法演示 */
class Demo4 {
public static void main(String[] args) {
int num = 0;
// 在调用方法之前,展示 num 存储的数据
System.out.println("方法调用之前:" + num);
/*
giveMeFive() 有返回值,可以直接放到 赋值号的右侧,利用方法返回数据
给一个变量进行赋值操作
*/
num = giveMeFive();
// 调用方法之后,展示 num 存储的数据
System.out.println("方法调用之后:" + num);
}
/**
* 当前方法返回一个 int 类型数据 5
*
* @return 当前方法返回值为 int 类型,具体数据为整数 5
*/
public static int giveMeFive() {
/*
return 关键字:
1. 返回 return 之后的数据到方法之外
2. 一个方法运行到 return 之后终止。
return 之后的数据必须和方法声明的返回值类型完全一致。保证【数据类型一致化】
*/
return 5;
}
}
5.5 注意事项
1. 方法所需返回值需要通过 return 返回,要求方法声明的返回值类型,return必须按照要求提供对应的数据,不可以缺少,不可以类型错误。必须严格按照【数据类型一致化】完成代码。
2. 和 return 平级的代码,在return之后无法运行。为无效代码。Unreachable Code 无法触及的代码
5.6 方法执行流程示意图
6. 有参数有返回值方法
6.1 需求
计算用户提供的 两个 int 类型数据之和,通过返回值返回结果
6.2 方法分析
public static
固定格式
返回值类型:
两个 int 类型数据相加,不考虑太麻烦的情况,返回值就是int 类型
方法名:
见名知意,动宾结构,小驼峰命名法
getSum
get 获取 Sum 和
形式参数列表:
需要用户提供两个 int 类型参数
(int num1, int num2);
一个方法多参数的情况下,形式参数列表格式
(数据类型1 参数变量1, 数据类型2 参数变量2, 数据类型3 参数变量3)
一个数据类型对应一个参数,不同的参数使用 , 逗号隔开
6.3 方法声明
public static int getSum(int num1, int num2);
6.4 方法实现和调用演示
/* 有参数有返回值方法演示 */
class Demo5 {
public static void main(String[] args) {
// 定义一个 int 类型变量,用于存储方法的返回值数据
int sum = 0;
// 方法调用之前展示数据存储情况
System.out.println("调用方法之前:" + sum);
/*
调用方法,调用方法传入的参数为整数 10 和 20
并且将当前方法的返回值赋值给变量 sum
*/
sum = getSum(10, 20);
// 方法调用之后展示数据存储情况
System.out.println("调用方法之后:" + sum);
}
/**
* 用户提供两个 int 类型数据,返回两个 int 类型数据之和
*
* @param num1 用户提供的第一个 int 类型数据
* @param num2 用户提供的第二个 int 类型数据
* @return int类型数据,两个整数之和
*/
public static int getSum(int num1, int num2) {
return num1 + num2;
}
}
6.5 注意事项
1. 调用方法时,要求提供的实际参数必须和方法声明的参数类型,个数,顺序完全一致。
2. 有参数,有返回值对应的方法,文档注释需要解释方法功能,参数信息,和返回值情况
6.6 方法执行流程示意图
【补充:文档注释模板】
文档注释[重点]:
作用: 解释代码中,类,变量,方法的使用要求和细节,【说明书】
在Java方法文档注释要求
/**
* 当前方法操作的简要概述和功能概述,可以在描述过程中加入案例和注意事项。
*
* @param 参数名1 针对于当前参数的解释和需求分析,功能概述
* @param 参数名2 针对于当前参数的解释和需求分析,功能概述
* @return 返回值数据信息描述和特殊情况说明
* 其他内容
* @throws 异常抛出
* @Exception 异常声明
* @since 最低版本要求
* @author 作者
* @date 日期
*/