方法初识
1. 方法概述
针对于代码中的重复功能,进行封装,用于后期更为方便调用或使用。
2. 比模画样
我们最熟悉的一个方法:
public static void main(String[] args) {
// 功能代码
}
依据这个方法我们展开讨论和塑造方法定义标准格式
public static
属于:固定格式,不要问为什么!!!
void
返回值类型,void 表示当前方法没有返回值
但是:通常情况下方法是有对应的返回值数据。
main
方法名
方法是条狗,哪里需要哪里吼!!!
方法名要求符合 见名知意,动宾结构,小驼峰命名
(String[] args)
// 方法的参数 方法执行所需的外来数据
// 餐厅吃饭付钱,菜品标价(形式参数),扫码付款(实际参数)
// 格式 (参数数据类型1 参数名1, 参数数据类型2 参数名2)
{/* 方法体,核心代码,功能代码,功能模块 */}
// 目标封装的核心代码,方便后期的复用
总结现阶段方法的定义格式
public static 返回值类型 方法名(形式参数列表) {
核心代码/功能代码/方法体;
}
3. 方法分类
根据方法的参数和返回值情况,对方法进行分类( 后期学习Lambda)
3.1 无参数无返回值
3.1.1 功能需求
展示一个字符串 “我爱学Java!!!”
3.1.2 方法分析
public static
// 固定格式,不要问!!!
返回值类型:
当前目标功能需求方法,没有返回值,仅需 void 表示方法没有返回值
方法名:
符合规定
1. 见名知意,动宾结构
2. 小驼峰命名法
studyJava
形式参数列表:
当前方法功能模块执行,不需要任何的外来数据,没有任何数据缺失,方法没有参数
但是【重点】,方法和变量之间的区别就是小括号,所以如果一个方法没有参数,也必须有 ()
() 当前方法没有参数
3.1.3 方法声明
告知编译器,当前方法属于那种形式以及数据情况
public static void studyJava();
()表示当前方法没有参数 void 表示当前方法没有返回值
3.1.4 方法实现
/**
* 在控制台展示我爱学Java!!! 注解需要大家都要学会的
*/
public static void studyJava() {
System.out.println("我爱学Java!!!");
}
3.1.5 代码实现
public class Demo1 {
public static void main(String[] args) {
/*
调用方法
方法是狗,哪里需要哪里吼,吼什么???
方法名
方法和变量的最大区别,小括号Java 中的方法 必须有小括号。
*/
printQF();
printQF();
printQF();
}
/*
【重点】
1. Java中方法都在 Class 大括号或者 interface 大括号中
2. 方法与方法之间平级,不存在包含关系,方法的缩进情况和 main 方法一致
同时不在 main 方法体中定义。(在main方法外 在class内)
*/
/**
* 在控制台展示我爱学Java!!!
*/
public static void printQF() {
System.out.println("我爱学Java!!!");
}
}
3.2 有参数无返回值
3.2.1 功能需求
在控制台展示一个 int 类型数据
3.2.2 方法分析
public static
固定格式,不要问
返回值类型:
当前方法是直接将数据展示在【控制台】,没有数据返回,对应方法实现没有返回值 用 void 表示
方法名:
printIntValue 见名知意 动宾结构 符合小驼峰命名规则
形式参数列表:
需要在控制台展示:用户提供的 int 类型数据,参数类型为 int 类型
打个比方 你去买饭 你自己支付给老板10元钱 此时在收款页面展示10元
【强调】数据类型一致化要求。
(int num)
int 表示数据类型,当前所需数据类型为 int 类型。需要遵守数据类型一致化原则
num 参数名/参数变量名,有且只能在方法内部使用/方法体使用。
3.2.3 方法声明
告知编译器,当前方法属于那种形式以及数据情况
public static void printIntValue(int num);
void 表示当前没有返回值
3.2.4 方法实现
文档注释和方法实现
【重点】方法如果有参数,需要对方法参数进行解释,而且解释的越详细越好。
@param num int 数据类型,由用户提供对应的具体数值
@param 固定格式,告知工具,当前对应的解释内容为参数信息
提高代码阅读性
num 参数名称 需要针对于参数进行解释
/**
* 在控制台展示用户提供的 int 类型数据内容
*
* @param num int 数据类型,由用户提供对应的具体数值
*/
public static void printIntValue(int num) {
System.out.println("用户提供数据: " + num);
}
3.2.5 代码实现
/*
有参数无返回值方法
*/
public class Demo2 {
public static void main(String[] args) {
/*
带有参数的方法
方法所需实际参数数据类型为 int 类型,需要提供
对应的数据内容,可以是变量,可以是常量,也可以
是其他方法的运行结果
*/
printIntValue(100);
printIntValue(200);
}
/**
* 在控制台展示用户提供的 int 类型数据内容
*
* @param num int 数据类型,由用户提供对应的具体数值
*/
public static void printIntValue(int num) {
System.out.println("用户提供数据: " + num);
}
}
3.2.6 图文分析
3.3 无参数有返回值
3.3.1 功能需求
在控制台 返回一个 int 类型数据 5
3.3.2 方法分析
public static
固定格式,不要问
返回值类型:
int 功能需求已经明确告知,当方法的返回值为 int 类型,并且数据固定为 5
方法名:
giveMeFive
形式参数列表:
方法返回 int 类型数据 5 没有任何的外来数据需求
() 没有参数
3.3.3 方法声明
public static int giveMeFive();
3.3.4 方法实现
【重点】方法有返回值情况,需要明确告知返回值含义和对应的作用。
@return 返回值数据类型为 int 类型,返回值内容为 5
@return 告知当前解释的内容为:方法的类型 返回值内容
/**
* 当前方法返回一个整数 5
*
* @return 返回值数据类型为 int 类型,返回值内容为 5
*/
public static int giveMeFive() {
/*
【核心关键字】 return
作用两个:
1. 返回 return 之后的数据内容 必须和方法声明 的返回值数据类型一致。
2. 一旦方法执行到 return 关键字 终止当前方法的运行 方法运行结束。
*/
return 5;
}
3.3.5 代码实现
/*
无参数有返回方法演示
*/
public class Demo3 {
public static void main(String[] args) {
int num = 0;
System.out.println("方法调用之前: " + num);
/*
利用方法的返回值,给予 int 类型变量 num 赋值操作。
*/
num = giveMeFive();
System.out.println("方法调用之后: " + num);
}
/**
* 当前方法返回一个整数 5
*
* @return 返回值数据类型为 int 类型,返回值内容为 5
*/
public static int giveMeFive() {
/*
【核心关键字】 return
作用两个:
1. 返回 return 之后的数据内容,必须和方法声明的返回值数据类型一致。
2. 终止当前方法的运行,一旦方法执行到 return 关键字,方法运行结束。
*/
return 5;
}
}
3.3.6 图文分析
3.4 有参数有返回值
3.4.1 功能需求
计算两个用户提供的 int 类型数据之和,通过返回值返回。
3.4.2 方法分析
public static
固定格式,不要问
返回值类型:
返回值类型是两个 int 类型数据之和,可以考虑为 int 类型,同样可以考虑 long 类型
关注数据在运行过程中的延展性和变化特征。阈值
方法名:
getSum
形式参数列表:
这里需要用户提供两个 int 类型数据,参数形式有对应的变化过程
(int num1, int num2)【正确格式】
注意事项:
1. 参数名称不能重复。
2. 参数的数据类型不得省略。
3. 参数数据类型有严格的顺序。
3.4.3 方法声明
public static int getSum(int num1, int num2);
3.4.4 方法实现
文档注释和方法实现
/**
* 计算用户提供的两个 int 类型数据变量,并且计算两数之和,通过返回值返回
*
* @param num1 用户提供的第一个 int 类型数据
* @param num2 用户提供的第二个 int 类型数据
* @return 返回两个 int 类型数据相加之和
*/
public static int getSum(int num1, int num2) {
return num1 + num2;
}
3.4.5 代码实现
/*
有参数有返回值方法
*/
public class Demo4 {
public static void main(String[] args) {
int sum = 0;
System.out.println("方法调用之前: " + sum);
/*
方法所需两个参数,不同的参数之间使用 , 号隔开
【问题1】
参数可以少吗???
不可以!!!
【问题2】
参数可以多吗???
也不行!!!
【问题3】
类型不一样可以吗???
不行!!!
*/
sum = getSum(30, 20);
System.out.println("方法调用之后: " + sum);
}
/**
* 计算用户提供的两个 int 类型数据变量,并且计算两数之和,通过返回值返回
*
* @param num1 用户提供的第一个 int 类型数据
* @param num2 用户提供的第二个 int 类型数据
* @return 返回两个 int 类型数据相加之和
*/
public static int getSum(int num1, int num2) {
return num1 + num2;
}
}
3.4.6 图文分析
【重要】