什么是方法
    1、 主方法是特殊得方法,它是程序执行得入口。main方法是主方法
    2、 Scanner sc = new Scanner(System.in);
    a) Scanner 是jdk中得类,sc是对象
    b) sc.nextInt(); sc.next();叫做方法
    c) 在方法部分中,只使用对象名调用方法


    主要内容
    1、 方法得声明和调用
    2、 方法的重载

    public 是访问修饰符
    static 表示这个方法是静态的方法
    void 是返回值类型,这边表示不返回任何类型
    main是方法名字


    方法的声明
    语法格式:
    访问修饰符 返回类型 方法名(参数列表){
    方法体;
    }

    例子:
    public static void main(String[] args){
    System.out.println(“Hello world!”);
    }

    访问修饰符:方法允许被访问的权限的范围
    还有protected private 等提前了解
    void返回类型—表示没有返回值
    返回值可以是void也可以是任何数据类型


    方法名:
    1、 满足标识符命名规则
    2、 一个单词的话全小写,多个单词的话,第一个单词全小写,从第二个单词开始依次首字母大写。
    myMethod



    方法名后面的括号不能省略,但是参数列表可以省略

    方法分类:
    根据方法是否带参数,是否返回值,可以分为4类:
    1、 无参数无返回值方法
    2、 无参数带返回值方法
    3、 带参无返回值方法
    4、 带参带返回值方法


    1、无参数无返回值方法
    例子:
    一行打印输出一串
    **

    欢迎来到Java世界!
    *


    2、无参有返回值方法
    无参由返回值方法典型的类型就Scanner类
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt();返回的是整型
    sc.next()返回的是String类型。
    例题;求长方形的面积
    public int area(){}


    3、 有参无返回值方法
    例题:定义一个求两个float类型数据最大值的方法,在方法中将最大值打印输出
    public void max(float a,float b){}

    4、 带参有返回值方法
    定义一个求n!的方法,
    然后再求1!+2!+3!+4!+5!
    阶乘:5!=12345;
    public int fac(int n){}









    数组作为方法参数
    例题:定义一个方法,打印输出数组元素的值
    public void printArray(int[] arr){}


    例题:查找数组元素的值
    方法参数:数组、要查找的元素
    返回值:boolean类型
    public boolean search(int n,int[] arr){}


    方法的重载
    方法名相同,参数列表不同。


    方法的重载
    判断下列哪些方法是重载方法
    原始方法:public void hello(){}
    1、 public int hello(){} x 参数列表相同,方法名相同的
    2、 public void hello(String str){} 对的
    3、 public void hello(int n){} 对的
    4、 public void hello(float a,float b){} 对的
    5、 public void hello1(){} x 方法名一样

    重载:方法签名相同,参数列表不同(与返回值无关)
    重写:同名同参同返回

    重载:必须是方法名相同参数列表不同;
    1、 参数列表可以是参数个数不同
    2、 也可以是数据类型不同
    3、 和返回值无关

    例题:定义三个方法,分别实现int、double类型和数组类型求和的问题

    参数的传递问题
    例题:对两个变量的值进行交换并打印输出

    image.png


    数组作为方法参数的传值问题
    例题定义一个修改某个数组元素值得方法
    image.png


    总结:
    1、 对于基本数据类型,它相当于是复制了一个值到另外一个变量,对主方法的变量没有影响
    2、 而数组是引用数据类型,它相当于上述代码中a和 a1同时指向了数组{1,2,3,4,5}此时调用方法修改第4个元素的值就相当于把内存中最原始的值改变了,所以输出的是最原始的被改变的值。







    可变参数列表
    例题:public void sum(int… n){}

    定义2个参数的方法

    image.png
    注意:既然必须把可变参数列表放置到最后,那么可变参数列表只能必须有一个

    可变参数:可变元参数、可变参数类型

    可变参数列表作为参数的重载问题
    看例题

    调试
    1、 F6 一步一步执行
    2、 F5 可以跳到方法内部执行,在方法内部还是F6一步一步执行
    3、 F7 由方法内部返回到断点调试处


    总结:
    1、 方法的声明语法格式
    访问修饰符 返回类型 方法名(参数列表){
    方法体;
    }

    2、 方法的调用
    Demo d = new Demo();
    d.show();

    3、 方法的重载
    a) 方法名相同
    b) 参水列表不同

    4、 可变参数列表
    a) 可变参数一定时方法中的最后一个参数。
    b) 数组可以传递给可变参数的方法,反之不行。
    c) 在重载中,含有可变参数的方法是最后被选中。




    5、 方法的传值问题
    a) 基本数据类型方法中对参数的修改,不会对主方法中传来的变量值产生影响
    b) 引用数据类型 方法中对数组的改变,会影响主方法中传来的数组

    6、调试