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