java基础视频笔记--01方法

方法

1. 方法的本质

  1. 对于一个java程序来说,如果没有“方法”,会存在什么问题?

    代码无法得到复用。(怎么提高复用性,可以定义方法,然后需要使用该功能的时候,直接调用一下方法即可。这样代码就得到复用了。)

  2. 程序开始执行的时候是先执行main方法。因为main方法是一个入口。

    在java语言中所有的方法体中的代码都必须遵循自上而下的顺序依次逐行执行。

  3. main方法不需要程序员手动调用,是由JVM调用的。但是除了main方法之外其他的方法,都需要程序员手动调用,方法只有调用的时候才会执行,方法不调用是不会执行的。

  4. 方法定义在类体当中, 方法定义的先后顺序没有关系。都可以。

    publc class text{
    	public static void main(String[] args){
    	sumInt(100,200);	//调用
    	public static void sumInt(int x, int y){
         	int z = x + y;
            System.out.println(z+"="+x+"+"+y);
        }
    	}
    }
    

2.方法的语法机制

1.方法的定义和语法机制

[修饰符列表] 返回值类型 方法名(形式参数列表){

​ 方法体;

}

注意:中括号[]里面的内容表示不是必须的,是可选的。方法体由Java语句构成。

方法定义之后需要去调用,不调用是不会执行的。

  • 关于修饰符列表:修饰符列表不是必选项,是可选的。目前为止,大家统一写成:public static

  • 关于返回值类型:

    1. 返回值类型可以是任何类型,只要是java中合法的数据类型就行,数据类型包括基本数据类型和引用数据类型,也就是说返回值类型可以是:byte shortint long float double boolean char String......

    2. 什么是返回值?

      返回值一般指的是一个方法执行结束之后的结果。结果通常是一个数据,所以被称为“值”,而且还叫返回值。方法就是为了完成某个特定的功能,方法结束之后大部分情况下都是有一个结果的,而体现结果的一般都是数据。数据得有类型。这就是返回值类型。

      main{
          //调用a方法
          a(); ..如果a方法执行结束之后有返回值,这个返回值返回给main了。
      }
      a(){}
      方法执行结束之后的返回值实际上是给调用者了。谁调用就返回给谁。
      
    3. 当一个方法执行结束不返回任何值的时候,返回值类型也不能空白,必须写上void关键字。所以void表示该方法执行结束后不返回任何结果。

    4. 如果返回值类型“不是void”,那么你在方法体执行结束的时候必须使用"return 值;"这样的语句来完成“值”的返回,如果没有“return 值;”这样的语句那么编译器会报错。

    5. 只要有“return”关键字的语句执行,当前方法必然结束。return只要执行,当前所在的方法结束,重点:不是整个程序结束。

    6. 如果返回值类型是void,那么在方法体当中不能有“return 值;”这样的语句。但是可以有“return;”语句。这个“return;”的作用就是用来终止当前方法的。

  • 关于方法名:方法名要见名知意。(驼峰命名方式),方法名在标识符命名规范当中,要求首字母小写,后面每个单词首字母大写。

  • 关于形式参数列表:1,简称:形参 2, 注意:形式参数列表中的每一个参数都是“局部变量”,方法结束之后内存释放。

    3, 形参有多个的话使用“逗号,”隔开。逗号是英文的。形参的数据类型起决定性作用,形参对应的变量名是随意的。

  • 方法体:

    ​ 由Java语句构成。java语句以“;”结尾。方法体当中编写的是业务逻辑代码,完成某个特定功能。在方法体中的代码遵循自上而下的顺序依次逐行执行。在方法体中处理业务逻辑代码的时候需要数据,数据来源就是这些形参.

  1. 方法定义之后怎么调用呢?

    • 方法必须调用才能执行。
    • 怎么调用,语法是什么?类名.方法名(实际参数列表);
    • 实参和形参的类型必须一一对应,另外个数也要一一对应。
  2. 跨类调用,不能省去"类名."在同一个类中,a()方法调用b()方法的时候,a和b方法都在同一个类中,“类名.”可以省略。如果不在同一个类中“类名.”不能省略。

  3. public static int m(){
    		boolean flag = true; //编译器不负责运行程序,编译器只讲道理。
    		// 对于编译器来说,编译器只知道flag变量是boolean类型
    		// 编译器会认为flag有可能是false,有可能是true
    		if(flag){
    			// 编译器觉得:以下这行代码可能会执行,当然也可能不会执行
    			// 编译器为了确保程序不出现任何异常,所以编译器说:缺少返回语句
    			return 1;
    		}
    	}
    
  4. 在同一个域当中,"return语句"下面不能再编写其它代码。编写之后编译报错。

    public static int m(){
    		boolean flag = true;
     	if(flag){
    			return 1;
    			//错误: 无法访问的语句
    			//System.out.println("hello1");
    		}
    		// 这行代码和上面的代码hello1的区别是:不在同一个域当中。
    		//System.out.println("hello2");
    		return 0;
    		// 错误: 无法访问的语句
    		//System.out.println("hello3");
    	}
    
posted @ 2021-03-09 21:21  LightSunshine21  阅读(35)  评论(0)    收藏  举报