1、为什么要使用方法?
循环处理复用代码问题:
1. 代码冗余,需要多次复制完整的循环,完成代码功能所需;
2. 代码阅读性极差,代码重复性,代码功能的逻辑性,都需要再次分析才可以知道;
3. 代码维护性极差!!!
2、main 方法分析 Java 定义方法的格式和要求
public static void main(String[] args) {
// 方法体
}
public static 【固定格式】
void 【当前方法的返回值类型,void 表示当前方法没有返回值。】
main 【方法名】
(String[] args) 【小括号中是方法运行所需的外来数据,方法参数列表】
{} 【大括号中是方法体,方法的执行内容,目标执行的代码内容】
2.1 需求
方法执行,在命令行中展示
2.2 方法分析
方法分析:
public static 【固定格式】
返回值类型
Sout 打印展示 != 方法的返回值 【若当前方法没有返回值,用 void 表示】
形式参数列表:
【当前方法执行所需的内容,不受外来数据约束,当前方法没有参数;
() 方法哪怕没有参数,也需要当前小括号;
【注意】Java 中变量和方法的最大区别是小括号。】
方法声明:如:public static void showLunch();
2.3 方法实现
/**
* 展示中午吃红烧肉
*/
public static void showLunch() {
// 大括号中是方法体
System.out.println("中午吃红烧肉");
}
2.4 方法调用
// main 方法是目前阶段代码执行的入口
public static void main(String[] args) {
/*
【调用方法】方法就是宠物狗,哪里需要哪里吼
调用方法需要通过方法名调用。
并且 Java 调用执行方法,需要方法名之后加 ()
*/
showLunch();
}
3. 有参数无返回值方法
3.1 需求
展示用户提供给当前方法的 int 类型数据
方法功能:
展示,所需展示内容是通过该用户在调用方法过程中提供的,【当前方法需要外来数据】
3.2 方法分析
分析:
public static 【固定格式】
返回值类型:
当前方法执行目标是展示用户提供的数据,没有数据返回。
【注意】控制台打印展示 不等于 方法返回值
方法名:
[要求] 见名知意,动宾结构,小驼峰命名法
showIntData 展示 int 类型数据
形式参数列表:
【重点】:当前方法执行需要外来数据支持,要求用户提供 int 类型数据,在方法声明中,需要告知用户当前方法参数
类型需求,注意格式:
(int num)
int 是当前参数的数据类型;
num 是参数的名称,并且 num 参数变量;可以直接在方法体内使用参数名称推荐带有一定的语义性,提高代码的阅读性。
3.3 方法声明
public static void showIntData(int num);
3.4 方法实现
/*
@param 变量名 变量解释,使用概述,注意事项;
解释当前方法所需参数的使用方式,描述方法参数情况
*/
/**
* 该方法用于在控制台展示用户提供的 int 类型数据;
* @param num 要求用户提供的 int 类型数据内容
*/
public static void showIntData(int num) {
/*
"用户提供的数据为:" 终端直接可见内容 + 拼接使用的胶水,不是算术运算符,仅用于拼接后面的数据内容。要求 + 左侧必须是字符串;
num 是方法声明对应的参数变量,方法体可以直接使用
*/
System.out.println("用户提供的数据为:" + num);
}
3.5 方法调用
public static void main(String[] args) {
/*
【注意】
调用一个带有参数方法,必须按照方法声明要求,给予符合
数据类型的实际参数内容。
方法声明位置是【形式参数】,调用方法给予的数据内容是【实际参数】
// 10 就是符合当前方法所需数据类型的实际参数
showIntData(10);
/*
showIntData(10.5);
给予方法的实际参数数据类型, 必须符合方法声明要求,如果不符编译报错
*/
/*
showIntData();
没有给予当前方法所需参数,编译报错!!!
*/
/*
showIntData(10, 20, 30);
参数类型和参数个数,必须符合方法声明要求!!!不能多,不能少
*/
}
4. 无参数有返回值方法
完成目标方法:调用目标方法,可以获取一个整数10
4.2 方法分析
分析:
public static 【固定格式】
返回值类型:
当前方法返回整数 10,相当于当前方法返回值的数据类型为 int,调用当前方法可以得到一个整数数据。
返回值数据类型为 int
方法名:
[要求] 见名知意,动宾结构,小驼峰命名法例:getIntNumber;getIntData
形式参数列表:
当前方法执行,无需任何的外来数据,无参数!
()
4.3 方法声明
public static int getIntNumber();
4.4 方法实现
/*
@return 解释当前方法返回值类型,返回值含义和情况概述。
*/
/**
* 调用当前方法,可以得到一个 int 类型整数 10
*
* @return 返回值为 int 类型,返回的最终结果为 10
*/
public static int getIntNumber() {
/*
需要方法对外返回一个结果
关键字:
return 返回,主要有两个作用:
1. 终止方法运行,一旦方法运行到 return 关键字,方法执行结束。
2. 返回 return 关键字之后的数据内容,返回到方法调用位置。
【注意】
方法声明位置已告知当前方法返回值数据类型为 int 类型
所以要求 return 之后的数据内容必须为 int 类型数据。
*/
return 10;
}
4.5 方法调用
public static void main(String[] args) {
int num = 0;
System.out.println("方法调用之前:" + num);
/*
调用 getIntNumber 方法,使用当前方法的返回值
内容给予 num int 类型变量赋值操作。
*/
num = getIntNumber();
System.out.println("方法调用之后:" + num);
}
5. 有参数有返回值方法
5.1 需求
方法功能描述; 用户提供两个 int 类型数据,方法计算返回两个整数之和
5.2 方法分析
分析:
public static 【固定格式】
返回值类型:
两个 int 类型数据相加之和的结果有可能超出 int 数据类型对应的数据范围,可以考虑当前方法的返回值为 long ,或者说不考虑太多的情况下 int 也是可以的。
方法名:
见名知意,动宾结构,小驼峰命名法
getSum
形式参数列表:
用户提供两个 int 类型数据,参数类型为 int,int
格式:
(int num1, int num2)
5.3 方法声明
public static long getSum(int num1, int num2);
5.4 方法实现
/**
* 计算两个 int 类型之和,通过方法返回值返回
*
* @param num1 用户提供的 int 类型数据
* @param num2 用户提供的 int 类型数据
* @return 返回两个 int 类型数据之和,考虑到有可能两个 int 类型相加超出 int 类型数据范围,所有返回值类型为 long 类型
*/
public static long getSum(int num1, int num2) {
return num1 + num2;
}
5.5 方法调用
public static void main(String[] args) {
// L 告知编译器,当前常量为 long 类型
long sum = 0L;
System.out.println("方法调用之前:" + sum);
sum = getSum(20, 30);
System.out.println("方法调用之后:" + sum);
}
一起学习,争做第一;
稳定心态,激情澎湃!
博主会不定期更新 Java 开发学习内容,感觉有帮助的话给博主点个赞呗,共同激励!