方法
1.方法的概念
方法是一系列代码指令的集合,用于实现特定的功能,可以重复使用,减少代码的冗余。
2.方法的定义
位置:和main方法并列存在。即在class类中,main方法之外。
格式:
无返回值:public static void 方法名称(形参列表)
有返回值:public static 返回值类型 方法名称(形参列表)
3.方法的调用
在main方法中直接书写方法名称,并且传入对应的实际参数调用。
package com.qfedu.test3;
public class Test3 {
// 并列
public static void main(String[] args) {
System.out.println("窗前明月光");
printSign('&'); // '&' 表示实参 实际传入的参数
System.out.println("疑是地上霜");
char sign = '#';
printSign(sign);
System.out.println("举头望明月");
printSign('@');
System.out.println("低头思故乡");
printSign('~');
}
/**
* sign 形参 形式参数,定义方法声明的参数 调用者必须传入对应的参数
* @param sign
*/
public static void printSign(char sign) {
for (int i = 1; i <= 10; i++) {
System.out.print(sign);
}
System.out.println();
}
}
4.形参和实参
形参:
1.形式参数,表示定义方法是书写的参数,只是定义没有赋值,相当于局部变量
2.形参约束:规定了参数的个数、类型、顺序
实参:实际参数,表示调用方法是传入的参数,必须遵循形参的约束。
package com.qfedu.test3;
public class Test4 {
public static void main(String[] args) {
System.out.println("窗前明月光");
printSign('$', 15); // '$' 和 15 都是实参
System.out.println("疑是地上霜");
printSign('#' , 22);
System.out.println("举头望明月");
printSign('%',21);
System.out.println("低头思故乡");
char sign = '&';
int count = 25;
printSign(sign,count);
}
/**
* sing 和 count都是形参
* @param sign
* @param count
*/
public static void printSign(char sign , int count) {
for (int i = 0; i <= count; i++) {
System.out.print(sign);
}
System.out.println();
}
}
5.返回值和返回值类型
方法执行时,有些情况下我们需要从中获取到一些内容,此时可以使用有返回值的方法。
返回值类型:可以是8种基本数据类型和引用数据类型(String、数组、对象等)
return关键字:
1.return关键字表示结束方法并且返回内容。
2.返回的内容必须和定义方法的返回值类型匹配。
3.return语句必须在方法的最后一句。
4.分支结构情况下必须保证每一种分支情况都有返回值
5.没有返回值的方法也可以使用return,但是不能在return后加内容,此时只表示结束方法。
package com.qfedu.test4;
public class Test2 {
public static void main(String[] args) {
m1();
String str = checkNum(23);
System.out.println(str);
System.out.println(checkNum(26));
}
// 分支结构返回值
public static String checkNum(int num) {
if(num % 2 == 0) {
return "偶数";
}
return "奇数";
}
// 没有返回值的方法使用return 只结束方法 不能加内容
public static void m1() {
for (int i = 1; i < 100; i++) {
System.out.println(i);
if(i == 50) {
System.out.println("方法退出");
return;
}
}
}
}
6.方法的重载
概念:
同一个类中,方法名称相同,参数列表不同
*参数列表不同为:个数、类型、顺序不同。指的是变量类型
与返回值无关(返回值是否想相同不作为重载的条件)以上三个满足任意一个就可称之为方法重载(overload);
方法重载的好处:
简化程序的结构,方便代码的维护,同时又扩展了程序的功能。
package com.qfedu.test4;
public class Test4 {
public static void main(String[] args) {
// 通过编写方法 实现 加法计算
System.out.println(add(20, 30));
System.out.println(add(10, 20, 30, 40));
m1(20, "赵四");
}
/**
* 同一个类中 方法名称相同 参数的个数 类型 顺序 有一个不相同 即可称之为重载
* @param a
* @param b
* @return
*/
public static int add(int a, int b) {
System.out.println("这里是2个参数的加法");
return a + b;
}
// 这个方法 不能编译通过 也不是重载 因为参数的个数 和类型 顺序都与 上面的方法相同
// public static int add(int numa , int numb) {
// return numa + numb;
// }
public static int add(int a, int b , int c) {
System.out.println("这里是3个参数的加法");
return a + b + c;
}
public static int add(int a , int b , int c ,int d) {
System.out.println("这里是4个参数的加法");
return a + b + c + d;
}
public static int add(int a ,int b ,int c , int d, int e) {
System.out.println("这里是5个参数的加法");
return a + b + c + d + e;
}
public static int add(int a , int b , int c , int d , int e , int f) {
System.out.println("这里是6个参数的加法");
return a + b + c + d + e + f ;
}
// 一下三个方法 也是重载
public static void m1(String name , int age) {
System.out.println("你的名字是" + name);
System.out.println("你的年龄是" + age);
}
public static void m1(int age , String name) {
System.out.println("你的年龄是" + age);
System.out.println("你是名字是" + name);
}
public static void m1(String name) {
System.out.println("你的名字是" + name);
}
}
每日问题
1.如何定义方法,定义在哪里?
2.如何调用方法?
3.形参和实参的区别?
4.return关键字的用法和含义
5.return关键字和返回值有什么关系
6.方法重载的概念
7.双重循环外层循环变量与内层循环变量的关系
8.打印图案时,外层循环控制什么?内层循环控制什么?
9.第一行需要打印5个内容,后续将依次递减,变量的初始从几开始
10.当循环的变量变化为–时,那么条件一定是?
11.当循环的变量变化为++时,那么条件一定是?
解答
1.如何定义方法,定义在哪里?
public static 返回值类型 方法名称(形参列表){}
与main方法并列
2.如何调用方法?
在main方法中直接书写方法名称
3.形参和实参的区别?
形参:只是定义,相当于局部变量,规定 参数的个数,类型,顺序
实参:有具体的值,遵循形参的约定
4.return关键字的用法和含义
return关键字用在方法的最后一句,用于返回值
在分支结构中必须保证每一个分支都有返回值
返回值类型为void的情况,也可以使用return,但是之后不能加内容,表示结束方法
5.return关键字和返回值有什么关系
return关键字返回的内容必须和返回值类型相同
6.方法重载的概念
同一个类中
方法名相同
参数列表不同(个数,类型,顺序)
跟返回值无关(返回值是否想相同不作为重载的条件)
7.双重循环外层循环变量与内层循环变量的关系
外层循环变量变化一次,内层循环变量变化一遍
8.打印图案时,外层循环控制什么?内层循环控制什么?
外层控制行数,内层控制列数
9.第一行需要打印5个内容,后续将依次递减,变量的初始从几开始
从5开始
10.当循环的变量变化为–时,那么条件一定是?
大于或者大于等于某个值
11.当循环的变量变化为++时,那么条件一定是?
小于或者小于等于某个值