昨天结束了控制语句的学习,从今天开始的以后几天学习的都是方法


1、什么是方法

以下程序不使用“方法”,分析程序存在哪些缺点

  • 以下的代码都是完成两个int类型数据的和,相同的代码写了三遍(只不过每一次参与求和的数据不同)。代码没有得到重复使用
  • 应该在java语言中有这样一种机制:
  • 某个功能代码只需要写一遍。
  • 要使用这个功能,只需要给这个功能传递具体的数据
  • 这个功能完成之后返回一个最终的结果

这样代码就可以重复利用了,提高代码复用性。【这就是“方法”】

使用这个方法我们称为调用/invoke

public class MethodTest01
{
	public static void main(String[] args){
		//需求1:请编写程序计算10和20的和,并将结果输出【功能:计算两个int类型数据的和】
        int a = 10;
        int b = 20;
        int c = a + b;
        System.out.println(a + "+" + b + "=" + c);
        
        //需求2:请编写程序计算666和888的和,并将结果输出【功能:计算两个int类型数据的和】
        int x = 666;
        int y = 888;
        int z = a + b;
        System.out.println(x + "+" + y + "=" + z);
        
        //需求3:请编写程序计算111和222的和,并将结果输出【功能:计算两个int类型数据的和】
        int x = 111;
        int y = 222;
        int p = m + n;
        System.out.println(m + "+" + m + "=" + p);
        
        //以上的三个需求其实就是一个需求,计算两个int类型数据的和。
        //只不过每一次参与计算的具体数据不同
    }
}

2、方法的使用

注意:下面这个例子不讲解方法的语法,直接使用

分析使用了方法的优点

  • 代码得到了重复使用

方法的本质是什么

  • 方法就是一段代码片段,并且这段代码片段可以完成某个特定的功能,并且可以被重复的使用
    方法在C语言中叫做函数

方法定义在类体当中,在一个类体当中可以定义多个方法,方法的编写位置没有先后顺序,可以随意

方法体当中不能再定义方法!!!

public class MethodTest02
{
    //类体
	public static void main(String[] args){
		
        //计算两个int类型数据的和
        MethodTest02.sumInt(10,20);
        MethodTest02.sumInt(666,888);
        MethodTest02.sumInt(111,222);
       
    }
    
    //单独定义一个方法,该方法完成计算两个int类型数据的和,并将结果打印输出
    public static void sumInt(int a,int b){
		int c = a + b;
        System.out.println(a + "+" + b + "=" + c);
    }
}

3、方法怎么定义,语法结构

【修饰符列表】 返回值类型 方法名(形式参数列表){
	方法体;
}

语法结构的解释说明

①修饰符列表
  • 可选项,不是必须的
  • 目前统一写成:public static【以后讲】
  • 方法的修饰符列表当中有static关键字的话怎么调用这个方法?
  • 类名.方法名(实际参数列表);
②返回值类型
  • 什么是返回值
  • 一个方法是可以完成某个特定功能的,这个功能大多数都是需要返回最终执行结果的,执行结果可能是一个具体存在的数据。而这个具体存在的数据就是返回值
  • 返回值类型
  • 返回值是一个具体存在的数据,数据都是有类型的,此处需要指定的是返回值的具体类型
  • 返回值类型都可以指定哪些类型呢?
  • java任意一种数据类型都可以,包括所有基本数据类型和所有引用数据类型
  • 也可能这个方法执行结束之后不返回任何数据,java中规定,当一个方法执行结束之后不返回任何数据的话,返回值类型位置必须编写void关键字
  • 返回值类型若不是void,表示这个方法执行结束之后必须返回一个具体的数据。当方法执行结束的时候没有返回任何数据的话编译器报错
  • 怎么返回值呢
  • return 数值; 并且要求值的数据类型必须和方法的返回值类型一致。不然编译器报错
  • 返回值类型是void的时候,在方法体当中不能编写return 数值; 这样的语句。但是要注意,可以编写 return;这样的语句
  • 只要带有return关键字的语句执行,return语句所在的方法结束【不是JVM结束,是return所在的方法结束】
③方法名
  • 只要是合法的标识符就行
  • 方法名最好见名知意
  • 方法名最好是动词
  • 方法名要求首字母小写,后面每个单词首字母大写
④形式参数列表:简称形参
  • 形参是局部变量
  • 形参的个数可以是:0 ~ N个
  • 多个形参之间用逗号隔开
  • 形参中其决定作用的是形参的数据类型,形参的名字就是局部变量的名字
  • 方法在调用的时候,实际给这个方法传递的真是数据被称为:实际参数,简称实参
  • 形参列表和实参列表必须满足
  • 数量相同
  • 类型对应相同
⑤方法体
  • 方法体必须由大括号括起来,方法体当中的代码有顺序,遵循自上而下的顺序依次执行。并且方法体由java语句构成,每一个java语句以分号结尾

4、方法怎么调用

方法只定义不去调用是不会执行的。只有在调用的时候才会执行

语法规则

【方法的修饰符列表当中有static】

类名.方法名(实参列表); 这是一条java语句,表示调用某个类的某个方法,传递这样的实参


小结

今天学习了方法初步:什么是方法,方法的语法结构,方法的调用。

明天继续努力!!!!