0
点赞
收藏
分享

微信扫一扫

Java基础知识点(三) 思维导图《方法》

知年_7740 2022-03-20 阅读 218
java

今天整理了一下《方法》 的知识点

 

Java基础知识点(三)  思维导图《方法》

①方法概述:

方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集  注意:  方法必须先创建才可以使用,该过程成为方法定义  方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用 

②方法的定义和调用:

①无参数方法定义和调用:

    • 定义:
      • 定义格式: public static void 方法名 ( ) {  // 方法体;  }
      • 代码示例: public static void method ( ) {  // 方法体;  }
    • 调用:
      • 调用格式:  方法名(); 
      • 代码示例: method(); 
    • 注意:  方法必须先定义,后调用,否则程序将报错

②方法的调用过程:

    • 总结: 每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用  完毕之后,会从栈内存中弹栈消失。 

③带参数方法的定义和调用:

    • 定义:
      • 定义格式:  参数:由数据类型和变量名组成 - 数据类型 变量名  参数范例:int a  public static void 方法名 (参数1) {  方法体;  } public static void 方法名 (参数1, 参数2, 参数3...) {  方法体;  } 
      • 代码示例: public static void isEvenNumber(int number){  ...  } public static void getMax(int num1, int num2){  ...  } 
      • 注意: 方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错 方法定义时,多个参数之间使用逗号( ,)分隔 
    • 调用:
      • 调用格式: 方法名(参数);  方法名(参数1,参数2);
      • 代码示例: isEvenNumber(10);  getMax(10,20);
      • 注意: 方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错

④形参和实参:

    • 1. 形参:方法定义中的参数  等同于变量定义格式,例如:int number
    • 2. 实参:方法调用中的参数  等同于使用变量或常量,例如: 10 number

⑤带返回值方法的定义和调用:

    • 定义:
      • 定义格式: public static 数据类型 方法名 ( 参数 ) {  return 数据 ;  }
      • 代码示例: public static boolean isEvenNumber( int number ) {  return true ;  } public static int getMax( int a, int b ) {  return 100 ;  }
      • 注意:  方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错 
    • 调用:
      • 调用格式: 方法名 ( 参数 ) ;  数据类型 变量名 = 方法名 ( 参数 ) ; 
      • 代码示例: isEvenNumber ( 5 ) ;  boolean flag = isEvenNumber ( 5 ); 
      • 注意:  方法的返回值通常会使用变量接收,否则该返回值将无意义

③方法注意事项:

①方法不能嵌套定义:

    • 示例代码: public class MethodDemo {  public static void main(String[] args) {  } public static void methodOne() {  public static void methodTwo() {  // 这里会引发编译错误!!!  }  }  } 

②void表示无返回值,可以省略return,也可以单独书写return,后面不加数据。

    • 示例代码: public class MethodDemo {  public static void main(String[] args) {  } public static void methodTwo() {  //return 100; 编译错误,因为没有具体返回值类型  return;  //System.out.println(100); return语句后面不能跟数据或代码  }  } 

④方法重载

①方法重载的概念:

    • 方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载  多个方法在同一个类中  多个方法具有相同的方法名  多个方法的参数不相同,类型不同或者数量不同

②注意:

    • 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式  重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两  个方法是否相互构成重载 

③正确代码示例:

    • public class MethodDemo {  public static void fn(int a) {  //方法体  } public static int fn(double a) {  //方法体  }  } public class MethodDemo {  public static float fn(int a) {  //方法体  } public static int fn(int a , int b) {  //方法体  }  }

④错误代码示例:

    • public class MethodDemo {  public static void fn(int a) {  //方法体  } public static int fn(int a) { /*错误原因:重载与返回值无关*/  //方法体  }  } public class MethodDemo01 {  public static void fn(int a) {  //方法体  }  } public class MethodDemo02 {  public static int fn(double a) { /*错误原因:这是两个类的两个fn方法*/  //方法体  }  }

⑤方法的参数传递:

①方法参数传递基本类型:

    • 示例代码: public class Test1 {  /*  方法参数传递为基本数据类型 :  传入方法中的, 是具体的数值.  */  public static void main(String[] args) {  int number = 100;  System.out.println("调用change方法前:" + number);  change(number);  System.out.println("调用change方法后:" + number);  } public static void change(int number) {  number = 200;  }  } 
    • 结论:
      • 基本数据类型的参数,形式参数的改变,不影响实际参数。
    • 结论依据:
      • 每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失。

②方法参数传递引用类型

    • 示例代码: public class Test2 {  /*  方法参数传递为引用数据类型 :  传入方法中的, 是内存地址.  */  public static void main(String[] args) {  int[] arr = {10, 20, 30};  System.out.println("调用change方法前:" + arr[1]);  change(arr);  System.out.println("调用change方法后:" + arr[1]);  } public static void change(int[] arr) {  arr[1] = 200;  }  }
    • 结论:
      • 对于引用类型的参数,形式参数的改变,影响实际参数的值。
    • 结论依据:
      • 引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以及时方法弹栈,堆内存中的数据也已经是改变后的结果。
举报

相关推荐

0 条评论