- 一.方法的概述
- 1.方法的概述
- 2.方法的定义
- 3.方法的内存理解
- 4.方法的调用
- 5.方法的重载
- 二、拓展
- 1.命令行传参
- 2.可变参数(不定项参数)
- 3.递归(递归思想)
1、具有某种特定功能的代码段
2、某段代码经常使用,所以使用大括号,将这段代码包起来,起个名字。以后就使用这个名字来代替这段代码。
3、好处:
(1)提高了代码的复用性
(2)提高了代码的封装性
(3)简化了软件设计的思维难度
public class Daniel_Demo1 {
public static void main(String[] args) {
//实际参数,实际调用传递给他的参数
int sum = add(1, 2);
System.out.println(sum);
}
//加法
//形式参数,用来定义作用的
public static int add(int a,int b){
return a+b;
}
}
运行结果为:
class Demo_FangFa {
public static void main(String[] args) {
int m = 10;
int n = 10;
int sum = getSum(m,n);
System.out.println(sum);
}
public static int getSum(int a,int b){
int sum = a + b;
return sum;
}
}
public class Daniel_Demo2 {
public static void main(String[] args) {
int max = max(20, 30);
System.out.println(max);
}
public static int max(int num1,int num2){
int result = 0;
if(num1 == num2){
System.out.println("num1 = num2");
return 0;
}
if(num1 > num2){
result =num1;
}else{
result =num2;
}
return result;
}
}
运行结果为:
方法的注意事项:
1、方法定义:
1、方法不能嵌套定义
2、方法的先后没有区别
3、方法的定义是平级关系
4、方法可以嵌套调用,甚至可以自己调用自己
2、参数列表:
(1)形式参数:在定义方法时使用,需要加上数据类型的参数,也就是对于变量进行声明。各个变量之间,使用逗号分隔。
(2)实际参数:在方法调用时使用,不能加上数据类型的参数,也就是对于变量进行赋值。各个实际参数之间,也使用逗号分隔。顺序必须和定义的方法的形式参数的顺序一致。
3、return语句:
(1)语句表达方法结束了;表示方法的产出内容。
(2)如果方法没有具体的返回内容,可以写成return; 此时的return语句可以省略。返回值类型必须写成void。
(3)如果方法有具体的返回内容,那么return后面就需要加上返回的那个数据。返回值类型必须和return语句后面的数据的数据类型一致。
(4)return语句返回数据,返回给调用者。谁来调用当前方法,当前方法就将数据返回给谁。
System.out.println(“Hello,Daniel!”);
拓展了解(值传递
1、重载:Overload
2、方法的重载:
在同一个类中,方法名相同,参数列表不同,与返回值类型无关
3、说明:
(1)不同无关类中,不可能发生方法的重载的。
(2)方法名称相同:一模一样。
(3)参数列表不同:参数类型不同;参数个数不同;参数类型的顺序不同;
参数的名称不同(不算)
(4)与返回值类型无关。方法是否是重载,与返回值类型没有关系。
如果方法的名称和参数列表都一样,即使返回值类型不同,也不算重载,属于方法 的重复定义。
4、方法重载的好处:
(1)没有重载的时候,相同逻辑相同功能的代码,需要定义很多个方法名称。调用者在记忆方法名称的时候,就有很大的负担。
(2)有重载之后,相同功能逻辑的方法,只需要记忆一个名字。
5、当前学习过的常见重载:
println方法,任意类型的数据,都可以放到这个方法中打印
在System.out类型中,将各种数据类型的打印方法,都定义出来了,都起了println方法的名称
public class Daniel_Demo3 {
public static void main(String[] args) {
//方法名相同,参数或参数类型不同
double sum = getSum(20, 30, 40);
System.out.println(sum);
}
public static int getSum(int a,int b){
return a+b;
}
public static double getSum(double c,double d,double e){
return c+d+e;
}
}
运行结果为:
有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。
public class Daniel_Demo4 {
//args.length 数组长度
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
结果如下操作显示:
public class DiGui_Daniel {
//递归就是学习一个递归思想,复杂业务最好不要用递归,
// 因为自己调用自己太累了
//说到Java也就是一个栈机制
public static void main(String[] args) {
System.out.println(f(3));
}
public static int f(int n){
if(n == 1){
return 1;
}else{
return n*f(n-1);
}
}
}
运行结果为:
分析上述代码



