Java入门之方法

1、方法包含于类或对象中,在程序中被创建,在其他地方被引用。是完成特定功能的代码片段。方法名按驼峰命名规则,建议一个方法实现一个功能,保持方法的原子性,便于扩展。

2、方法=方法头+方法体

修饰符[可选] 返回值类型 方法名(参数类型 参数名) {

  ....

  方法体

  ....

  [return 返回值]

}

(1)修饰符:

public

protected

default/缺省

private

(2)返回值类型

无返回关键字:void

有返回:String,int等,方法体需要用return返回值。

(3)形参:接收外界输入的数据

(4)实参:调用方法时实际传给方法的数据

 1     public static void main(String[] args) {
 2         int max = max(5, 9); //实参
 3         System.out.println(max);
 4     }
 5 
 6     public static int max(int a, int b){ //形参
 7         if(a > b){
 8             return a;
 9         }else{
10             return b;
11         }
12     }

 

3、重载

同一个类中,方法名一样,参数列表不一样(类型,顺序,个数)。

实现理论:方法名称相同时,编译器会根据调用方法的参数个数,参数类型等逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。

 

4、命令行传参

在程序运行时传递消息,需要靠传递命令行参数给main()函数实现。

 

1     public static void main(String[] args) {
2         for (int i = 0; i < args.length; i++) {
3             System.out.println("args[" + i + "]" +args[i]);
4         }
5     }

使用IDEA的终端Terminal,也可以使用dos窗口

 

 

 编译时需要切换到文件目录底下,执行时要带完整的pakage

 

5、递归

递归就是A方法调用A方法,自己调用自己。尽量避免使用,容易出现栈溢出。知道递归思想即可。

递归结构包括:

(1)递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。

(2)递归体:什么时候需要调用自身方法。

 1     //实现阶乘
 2     public static void main(String[] args) {
 3         System.out.println(fnc(5));
 4     }
 5 
 6     public static int fnc(int n){
 7         if(n == 1){
 8             return 1;
 9         }else{
10             return n * fnc(n - 1);
11         }
12     }

 

6、方法的调用

  • 静态方法

    类名.方法

  • 非静态方法

  (1)实例化这个类   通过new关键字 

  (2)对象类型 对象名 = 对象值

  (3)对象名.方法

  

 

  当a为静态方法,b为非静态方法时,a不能直接调用b方法,需要通过实例化类来调用b方法。

    静态方法是和类一起加载的,非静态方法是当类实例化才存在的。

 

7、值传递和引用传递

  值传递:

    在调用函数时,将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,就不会影响到实际参数。

 1     public static void main(String[] args) {
 2         int a = 1;
 3         System.out.println(a); //输出1
 4         change(a);
 5         System.out.println(a);//输出1
 6     }
 7 
 8     public static void change(int a){
 9         a = 5;
10     }

 

  引用传递:

    在调用函数时,将实际参数的地址传递到函数中,那么在函数中对参数进行修改,将会影响到实际参数。

 1 public class Demo01 {
 2     public static void main(String[] args) {
 3         Person person = new Person();
 4         System.out.println(person.name); //输出 null
 5         change(person);
 6         System.out.println(person.name);//输出 Mary
 7     }
 8 
 9     public static void change(Person p){
10         p.name = "Mary";
11     }
12 }
13 
14 class Person{
15     String name;
16 }

 

 

  

 

posted @ 2022-07-12 16:39  嗒嗒媛  阅读(21)  评论(0编辑  收藏  举报