什么是方法?
方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
方法的使用
需求:打印扑克牌,如下形式:
首先需要定义两个数字组,一个用来存字母和数字,一个用来存花色和大小王。
String[] number = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] colors = {"黑桃","红桃","方块","梅花","大王","小王"};
再定义两个循环,外循环来控制花色,内循环来控制字母和数字
for (int i = 0; i < colors.length; i++) {
for (int i1 = 0; i1 < number.length; i1++) {
还得在外循环下做一个判断,不会大王和小王会像上面的一样输出
判断外层循环到大王或者小王直接输出大王和小王,内循环不在循环
if (colors[i]=="大王" || colors[i]=="小王"){
System.out.print(colors[i] + " ");
}
这样就完成了输出要求,完整代码如下:
String[] number = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] colors = {"黑桃","红桃","方块","梅花","大王","小王"};
for (int i = 0; i < colors.length; i++) {
if (colors[i]=="大王" || colors[i]=="小王"){
System.out.print(colors[i] + " ");
}else {
for (int i1 = 0; i1 < number.length; i1++) {
System.out.print(colors[i] + number[i1] + " ");
}
}
System.out.println();
}
为了让让代码得到复用,下面的循环我们可以写成方法的形式,这样看起来会更加简洁。
/**
* @Describe
* @Author Double LiFly
* @date 2021/4/7 14:27
*/
public class TestMethod0503 {
public static void main(String[] args) {
String[] number = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] colors = {"黑桃","红桃","方块","梅花","大王","小王"};
print(number,colors);
}
/**
* 打印扑克牌
* @param number 数字和字母数组
* @param colors 花色和大小王数组
*/
public static void print(String[]number,String[] colors){
for (int i = 0; i < colors.length; i++) {
if (colors[i]=="大王" || colors[i]=="小王"){
System.out.print(colors[i] + " ");
}else {
for (int i1 = 0; i1 < number.length; i1++) {
System.out.print(colors[i] + number[i1] + " ");
}
}
System.out.println();
}
}
}
方法的定义格式
方法的定义我们可以参照main方法来写:
public static void main (String[] args){}
修饰符 返回值类型 方法名(参数列表){
//代码省略...
return 结果;
}
修饰符:public static固定写法
返回值类型:表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
参数列表:方法在运算过程中的未知数据,调用者调用方法时传递
return:将方法执行后的结果带给调用者,方法执行到return,整体方法运行结束
定义方法的两个明确:
明确参数列表:该方法在完成一个功能时,需要的参数有几个,参数的类型是什么,需要我们 明确给出
明确返回值类型:方法的功能完成之后,是否有返回值,如果有,使用return将结果返回给调用者。
无参数类型,无返回值
/**
* @Describe 打印十次HelloWorld
* @Author Double LiFly
* @date 2021/4/7 13:57
*/
public class MethodCase01 {
public static void main(String[] args) {
printHelloWorld();
}
/**
* 参数类型:无
* 返回值类型:直接打印输出,无需返回值
*/
public static void printHelloWorld(){
for (int i = 0; i < 10; i++) {
System.out.println("HelloWorld");
}
}
}
无参数类型,有返回值
/**
* @Describe
* @Author Double LiFly
* @date 2021/4/7 14:05
*/
public class MethodCase05 {
public static void main(String[] args) {
System.out.println(getSum());
}
/**
* 计算1-100之和
* @return 结果返回给调用者
*/
public static int getSum(){
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum+=i;
}
return sum;
}
}
有参数类型,无返回值
/**
* @Describe
* @Author Double LiFly
* @date 2021/4/7 13:59
*/
public class MethodCase02 {
public static void main(String[] args) {
printHelloWorld(20);
}
/**
* 无返回值类型,有参数类型
* @param i
*/
public static void printHelloWorld(int i) {
for (int j = 0; j < i; j++) {
System.out.println("HelloWorld");
}
}
}
有参数类型,有返回值类型
/**
* @Describe
* @Author Double LiFly
* @date 2021/4/7 13:57
*/
public class MethodCase03 {
public static void main(String[] args) {
getSum(10,20);
System.out.println(getSum(20,23));
}
/**
* 返回值类型为int 返回两数之和
* @param i 第一个数
* @param i1 第二个数
* @return 返回两数之和
*/
public static int getSum(int i, int i1) {
int sum = i+i1;
return sum;
}
}
定义方法注意事项
定义位置:类中方法外,不能嵌套定义(例如main方法中不能定义方法,可以调用方法)
方法必须先定义,再使用
void表示无返回值,可以省略return,也可以单独书写 return;
不能在return后面写代码,return意味着方法结束,所有后面的代码永远都不会执行,属于无效代码
定义方法时()中的参数,我们称之为:形式参数,在调用方法时传递的参数,成为:实际参数
调用方法的三种形式
1. 直接调用:直接写方法名调用
2.赋值调用:调用方法,在方法前面定义变量,接收方法返回值