小熊回收站|1. Java 基础:基础知识( 四 )

  • 外层数组长在内存开辟连续的3个大的内存空间,每一个内存空间都对应的有地址值
  • 每一个大内存空间里又开辟连续的两个小的内存空间.
  • 打印数组//打印一维数组五种方法Arrays.toString(arr)for(int n: arr)System.out.println(n+", ");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + ", ");}System.out.println(Arrays.asList(arr));Arrays.asList(arr).stream().forEach(s -> System.out.println(s));//java8//打印二维数组三种for(int i=0;i四、方法1. 引入【小熊回收站|1. Java 基础:基础知识】为什么要有方法:提高代码的复用性什么是方法:完成特定功能的代码块
    2. 语法格式
    • 访问修饰符:方法允许被访问的权限范围 。 ( public , protected , private , 无修饰符 )
    • 返回类型:void、任何数据类型
    • 方法名:同变量名规则 。 小写;多个单词 , 第一个单词首字母小写 , 其余首字母大写。 myMethod
    • 参数列表:可以省略 。 参数类型 + 参数名 , ...
    3. 方法调用
    • 可以使用 对象名 调用方法 , 静态方法是使用 类名 调用的
    • 方法包括在类中,调用时先创建包含方法的类的对象 , 然后用对象再去调用方法 。
      • 创建对象:类名 对象名 = new 类名();
      • 调用:对象名.方法名();
    4. 注意事项
    • 方法参数是 基本类型, 传递的是值 。 (包含String类型) , 形式参数的改变对实际参数不影响
    • 方法参数是 引用类型 , 传递的是内存地址值 。 (String类型除外) , 形式参数的改变对实际参数有影响
    • 方法的定义只能放在类里面 , 不能嵌套定义 。 故而不能在主方法内直接定义方法
    • 方法返回值是void , 方法中可以省略return
    • 方法一般在主方法的前面定义
    • 调用方法的时候 , 返回值是void, 不能写在输出语句中
    5. 方法重载
    • 方法的重载:在同一个类中 , 方法名相同 , 参数列表不同 。 与返回值类型无关 。
    • 参数列表不同:
      • 参数个数不同
      • 参数类型不同
      • 参数的顺序不同(算重载,但是在开发中不用) , 注意:必须是不同数据类型 。 相同类型不存在顺序不同
    • 方法重载注意事项
      • 重载和参数变量名无关
      • 重载和返回值类型无关如void method(int x)与int method(int y)不是方法重载 , 不能同时存在
      • 重载和修饰符无关
      • 重载看 方法名 和 参数列表
    6. 可变参数列表
    • 例:public void sum(int... n){}
    • 参数列表中如果有两个以上的参数 , 可变参数一定在最后
    • 可以将数组传递给可变参数列表
    • 数组作为参数时 , 不能将多个值传递给数组的
    • 一个方法的形式参数列表 , 只能有一个可变参数列表
    • 方法名相同 , 一个参数是可变参数 , 一个参数是一维数组 , 这两个方法不是重载 , 因为 一个可变参数等价于相应类型的一维数组就可以对可变参数列表 , 进行相应的数组操作 , 比如求长度
    • 可变参数列表所在的方法 , 是最后被执行访问的
    • 方法重载的时候 , 既可以定义有可变参数的同名方法 , 也可以定义有确定参数个数的方法 , jvm调用方法时 , 会优先调用 有确定参数个数 的方法


    推荐阅读