目录

  • ​​第一章:函数or方法​​
  • ​​1.1什么是方法?​​
  • ​​2.1定义方法的语法机制?​​
  • ​​3.1方法内存加载的过程​​
  • ​​第二章:方法重载​​
  • ​​1.1重载的概念​​
  • ​​2.1方法重载的条件​​
  • ​​一起学习,快乐编程,欢迎攻城狮们多多交流​​

第一章:函数or方法

1.1什么是方法?

方法定义就是具有特定功能的一段 独立小程序,可以被多次使用

实现代码复用,提高复用性。

定义函数过程:

  1. 是一个封闭区间,需要大括号封装。
  2. 需要给这个区间起名字,以后多次使用该区间。
  3. 为区间提供数据的输入,以便使用额外数据进行运算。
  4. 需要定义结果类型。

2.1定义方法的语法机制?

[修饰符列表]  返回值类型 方法名(形参列表){
方法体;
return 返回值;
// return 关键字用于结束,并将返回值返回给调用者
// 注意如果 返回值类型为void 可以省略return 其他情况下 return必有 并且return后面不能再有语句
}

1.关于修饰符列表:(可选项,public,private等)

2.关于返回值类型:

①Java中的合法数据类型。(基本and 引用)

②返回值类型:一般指,一个方法执行结束后的数据结果。

③void表示方法执行结束后不返回任何结果。

④如果返回值类型不是void,必须使用"return 值;"

⑤有return执行,当前方法必然结束。

3.方法名:见名知意。首字母小写后面每个单词首字母大写。

4.形参:形参列表中,每个数据为局部变量,方法结束后释放。

代码演示:

public class Demo06 {

public static void main(String[] args) {
int sum = add(3,4);
System.out.println("sum = "+sum);
}
public static int add(int num01,int num02){
return num01 + num02;
}
}

3.1方法内存加载的过程

public class Demo06 {

public static void main(String[] args) {
int a = 3;
int b = 4;
int sum = add(a,b);
System.out.println("sum = "+sum);
}
public static int add(int num01,int num02){
return num01 + num02;
}
}

说明:

1. JVM加载main方法进入 栈内存 中,并执行main的方法。执行到4 、5行先给a、b开辟空间,并赋值。
2. 第6行,先将add函数压进 栈内存 中,执行add函数。在add函数所属空间里 再开辟两片空间给num01和num02,接收main传来的值 3,4.
3. 执行add函数,并将结果return给main中调用的地方,然后add函数弹栈。
4. main方法将add函数执行的结果给sum变量。然后继续进行。全部执行完,main方法弹栈。

第二章:方法重载

java为我们提供了重载这个功能,使用重载就可以解决某个功能不同场合的泛用性,一个函数的多个版本。

1.1重载的概念

在一个类中,允许存在一个以上同名函数,只要他们的参数列表(个数和类型)不同。就形成了重载,函数重载和返回值无关。

(功能相似的代码,使用相同代码名。)

2.1方法重载的条件

1.必须在同一个类中。

2.方法名相同。

3.参数列表不同。(个数不同,类型不同,顺序不同)

println就是一个方法,使用重载!!

代码演示:

public class Demo07 {
// 方法{}里的内容为方法体
public static int computer(int a,int b){
return a+b;
}

public static int computer(int a, int b ,int c){
return a+b+c;
}

public static double computer(double a, double b){
return a/b;
}

// public static double computer(double num01, double num02){
// return 0;
// } 函数的参数是一种形式参数

// public static int computer(double a, double b){
// return (int)a/b;
// }
public static void main(String[] args) {
computer(2.3,1.7); // JVM不知道调用结果的 如果重载跟返回值有关 调用时就会产生歧义
computer(1.0,2.0); // 参数名也是不会认为是参数列表的属性,名称只是形式,所以参数列表里的参数名全是形式参数
}
}

重载练习:下面方法有没有使用重载?

void show(int a,float b,char c){} 为蓝本

1. int show(int x,float y,char z) 没有
2. void show(float b,int a, char c)
3. void show(int c,float a,char b) 没有
4. void show(int a,int b,int c)
5. double show()

一起学习,快乐编程,欢迎攻城狮们多多交流