Java笔记02-自定义方法
1.方法的概念
- 方法指的是一段可以反复调用的代码块。
- 有些独特的功能需要我们自己定义,我们把这些功能写到一个代码块中,变成一个方法,以便于之后使用方法名直接调用,不用再重写此功能的所有代码。
- 语法结构:
修饰符 方法返回值类型 方法名(参数类型 参数名,....){
执行的代码块;
}
例如:
public static void main(String[] args){
// 需要执行的代码块
}
- 使用举例
public static void main(String[] args) {
// 调用方法
// maxnum(1, 2, 3);
maxnum(56, 3, 3);
}
// 自定义方法求三个整数中的最大值
public static void maxnum(int x, int y, int z) {
// 先比较其中的两个值
if (x > y) {
// 若x>y,则比较x与z,其中较大的为三数最大值
if (x > z) {
System.out.println("最大值为:" + x);
} else {
System.out.println("最大值为:" + z);
}
} else {
// 若x<y,则比较y与z,其中较大的为三数最大值
if (y > z) {
System.out.println("最大值为:" + y);
} else {
System.out.println("最大值为:" + z);
}
}
}
2.方法的参数
- 方法的参数可以有无限个,需要根据情况来定。
- 注意点:
- 同一个类中方法名不允许一样,如果想要一样就需要符合方法重载的规则。
- 在调用方法传值时,参数的类型和位置要和方法中定义的参数类型和位置一样。
- 方法的参数分为形参和实参。
- 形参:形式参数,指的就是方法中定义的参数,没有实际意义,作用就是告诉使用者想要使用该功能需要给定参数的类型及数量。
- 实参:实际参数,指的就是调用方法时,使用者传递给方法的实际的数据值,实参必须符合形参定义的类型、位置及数量。
- 参数类型可以转换,小类型转大类型可以,但是大类型转小类型就需要强制类型转换,否则编译失败。
3.方法的返回值
- 返回值关键词:return(返回) void(无返回值类型)
- 需要返回值的原因:当需要对方法中的结果进行二次处理的时候就需要返回值。
- return作用:1、返回结果。2、结束方法(函数)。
- 当只写return,不写返回结果时,作用就是结束当前方法,之后的代码不再运行,且方法定义的返回值类型应该写void。
- 返回值类型应在定义方法时定义好,若定义有返回值类型,则必须有符合定义类型的返回值,否则编译会报错。
public static void main(String[] args) {
//调用方法并输出
//输出时可定义一个变量接收返回值
String result= grade(1);
System.out.println(result);
//也可直接写到输出函数中
System.out.println(grade(1));
}
/**
* 需求:输入数字,得出受教育程度 学历
* @param x
* 类型:int
* @return
* 类型:String
*/
public static String grade(int x) {
switch(x) {
case 1:
return "小学";
case 2:
return "初中";
case 3:
return "高中";
case 4:
return "高中";
case 5:
return "大学";
case 6:
return "硕士";
case 7:
return "博士";
case 8:
return "教授";
default:
return "无";
}
}
4.方法的重载
- 定义:同一个类中,方法名相同,参数列表不同(参数数量不同,参数位置不同,参数类型不同),且与返回值类型无关。
- 重载的方法可能有相同的功能特性,但是实现方法可能不同。
public static void main(String[] args) {
// 方法的重载
// 同一个类中,方法名相同,参数列表不同(参数数量不同,参数位置不同,参数类型不同),且与返回值类型无关。
intro();
intro("bob",23);
intro(23,"bob");
intro("bob",23,180);
intro("bob",23,180L);
}
/**
* 测试方法重载
*/
public static void intro() {
System.out.println("请输入信息。");
}
public static void intro(String name,int age) {
System.out.println("姓名:"+name+" 年龄:"+age);
}
public static void intro(int age,String name) {
System.out.println("姓名:"+name+" 年龄:"+age);
}
public static void intro(String name,int age,int height) {
System.out.println("姓名:"+name+" 年龄:"+age+" 身高:"+height);
}
public static void intro(String name,int age,long height) {
System.out.println("姓名:"+name+" 年龄:"+age+" 身高:"+height);
}
输出:
请输入信息。
姓名:bob 年龄:23
姓名:bob 年龄:23
姓名:bob 年龄:23 身高:180
姓名:bob 年龄:23 身高:180