1.学习方法的目的
将一组逻辑关系的代码放在一起,实现某一个业务逻辑(功能)或者只是为了复用。
2.什么是方法,在哪里用?
方法是完成某个功能的一组语句,通常将常用的功能写成一个方法。方法类似面向过程中的函数(function);在定义好方法后,在需要与定义方法相同功能的时调用方法,下面简述一下定义方法和调用方法的案例。
3.如何使用“方法”(定义及调用)
方法声明格式:
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){
Java语句(方法体);… … …
}
- 修饰符 :public 、static 被称为修饰符 返回值类型: 用来说明该方法运算结果的类型。如果返回其他类型,编译就可能出错;
- 方法名 :它作为调用时引用方法的标识;
- 参数列表:方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型;每个参数要用逗号分开。也可以一个参数都没有。
- 方法体:它是一个语句块,执行特定的功能操作。对于有返回值类型的方法,方法体当中最后一个语句是return关键字,它的作用是把方法的执行(运算)结果返回到方法外部。
- return 表达式:这里,进一步分析,return后面的表达式就是方法的返回值。需要注意表达式的类型,必须与方法头中声明的“返回类型”相匹配。
- 形式参数:在方法被调用时用于接受外部传入的变量。
- 参数类型:就是该形式参数的数据类型。
- 返回值:方法在执行完毕后返回给调用它的程序的数据
- 返回值类型:方法要返回的结果的数据类型。
方法分类
- 根据参数个数:
- 无参方法
- 有参方法
- 根据返回值类型:
- 有返回值的方法:
a .基本数据类型
b.引用数据类型 - 无返回值的方法
a.Void
- 有返回值的方法:
范例: 定义一个没有返回值,没有参数的方法
public class Test {
public static void main(String[] args) {
love(); //主方法里面直接调用方法
}
public static void love() {
System.out.println("I L U!"); //定义方法
}
}
范例: 定义一个有参数无返回值的方法
public class Test {
public static void main(String[] args) {
love("I"); //主方法里面直接调用方法
love("LOVE");
love("U");
}
public static void love(String msg) {
System.out.println(msg); //定义方法
}
}
范例: 有参数有返回值的方法
public class Test {
public static void main(String[] args) {
int result = add(50, 2);
System.out.println(result);
//既然方法有返回值,那么这些返回值也可以直接输出
System.out.println(add(500, 20));
}
public static int add(int num1, int num2) { //定义方法
return num1 + num2;
}
}
方法的重载(overload)
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
public class Test {
public static void main(String[ ] args) {
System.out.println(add(3, 5));// 8
System.out.println(add(3, 5, 10));// 18
System.out.println(add(3.0, 5));// 8.0
System.out.println(add(3, 5.0));// 8.0
// 我们已经见过的方法的重载
System.out.println();// 0个参数
System.out.println(1);// 参数是1个int
System.out.println(3.0);// 参数是1个double
}
/** 求和的方法 */
public static int add(int n1, int n2) {
int sum = n1 + n2;
return sum;
}
// 方法名相同,参数个数不同,构成重载
public static int add(int n1, int n2, int n3) {
int sum = n1 + n2 + n3;
return sum;
}
// 方法名相同,参数类型不同,构成重载
public static double add(double n1, int n2) {
double sum = n1 + n2;
return sum;
}
// 方法名相同,参数顺序不同,构成重载
public static double add(int n1, double n2) {
double sum = n1 + n2;
return sum;
}
//编译错误:只有返回值不同,不构成方法的重载
public static double add(int n1, int n2) {
double sum = n1 + n2;
return sum;
}
//编译错误:只有参数名称不同,不构成方法的重载
public static int add(int n2, int n1) {
double sum = n1 + n2;
return sum;
}
}
4.深度思维(设计者思维过程模拟)
为什么设计方法?
方法在程序中被创建,在其他地方被引用,使程序变得更简短而清晰;有利于程序维护,可以提高程序开发的效率;提高了代码的重用性。
模拟设计方法的过程:
1.将多行代码放在一起并起名
方法名称{
代码块......
}
2.给方法增加形参
方法名称(形参列表){
代码块......
}
3.增加返回值功能
返回值类型 方法名称(形参列表){
代码块......
return.....
}
4.添加修饰符
[修饰符1 修饰符2 …] 返回值类型 方法名称(形参列表){
代码块......
return.....
}
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。
5.广度思维1(类比其他概念)
java中方法和函数区别:
面向对象的语言叫方法;
面向过程的语言叫函数。
在java中没有函数这么一说,只有方法一说。实际上方法就是函数,函数就是方法,只是在不同的语言不同的称呼而已。
6.广度思维2(和已知内容的联系,底层原理分析)
7.广度思维3(类比生活中的例子)
我们可以将使用空调看做一个方法,当我们使用遥控开机时就调用这个方法;我们需要向这个方法中传入几个参数,如:空调的运行模式(制冷、制热、除湿等)、温度、风向、风速。当你每次改变以上参数时就再次掉用这个方法就可以设置好空调的运行模式温度等。
8.广度思维1(可视化辅助和分享)
https://www.bilibili.com/video/av56060445/