目录
JAVA入门级教学之(方法-1)
1.以下程序不使用"方法",分析一下程序会存在哪些优缺点?
2.方法的本质:是一段代码片段,可以完成特定功能,可以重复利用
3.注意:方法定义在类体中。
4.一个类中可以定义多个方法,方法编写的位置没有先后顺序,可以随意
5.方法体中不能再定义方法!
6.方法体中的代码有顺序要求!
7.方法怎么定义:语法结构:
7.1、关于修饰符列表
7.2、关于返回值类型
7.2、方法名:
7.3、形式参数列表:
7.4、方法体:
7.5、方法怎么调用:
JAVA入门级教学之(方法-1)
1.以下程序不使用"方法",分析一下程序会存在哪些优缺点?
*以下的代码都是完成两个int类型数据的和,相同的代码写了三遍(只不过每一次参与求和的数据不同)
代码没有的到重复使用
*java语言中有一种机制:
-某种功能代码只需要写一遍
-要使用这个功能,只需要给这个功能传递具体的数据
-这个功能完成后返回一个最终的结果
-这样就可以提高代码的复用性【这就是"方法"】
使用这个方法我们称为 "调用/invoke"
2.方法的本质:是一段代码片段,可以完成特定功能,可以重复利用
方法在c语言叫做函数:function,可以理解为方法就是函数
3.注意:方法定义在类体中。
而且独立存在,所以说不存在方法体里面在嵌套使用方法体
4.一个类中可以定义多个方法,方法编写的位置没有先后顺序,可以随意
5.方法体中不能再定义方法!
6.方法体中的代码有顺序要求!
-java代码遵守自上而下的顺序执行
7.方法怎么定义:语法结构:
[修饰符列表] 返回值类型 方法名(形式参数列表){
方法体;
}
对以上的语法结构进行解释说明:
7.1、关于修饰符列表
*是一个可选项,不是必选项
*目前统一写成:public static
*方法的修饰符列表中有static关键字的话,怎么调用此方法?
-类名.方法名(实际参数列表);
7.2、关于返回值类型
*什么是返回值:
-需要调用的方法返回给用户的一个值,一个结果
-有些像垃圾回收机制的方法就不需要返回值,但是是作用在程序运行中
-java中规定:当一个方法执行结束之后不返回任何数据的话,
返回值类型位置必须编写: void关键字
-此时不能再编写"return 返回值;"这样的java语句
-返回值类型若不是void,表示这个方法执行结束之后必须返回一个具体的数值。
当方法执行结束的时候没有返回任何数据的话编译器报错。
-注意:return返回值的类型需要和方法体的"返回值类型"保持一致
否则编译器报错。
-"return 返回值 ;"
*返回值类型?
返回值是一个具体存在数据,数据都是有类型的,此处需要指定的是返回值的具体类型
只要带有return关键字的语句执行,return语句所在的方法结束。
【不是JVM结束,是return所在的方法结束】
7.2、方法名:
只要是合法的标识符就行
见名知意
首字母小写,后面每个单词首字母大写
7.3、形式参数列表:
*形参是局部变量:int a,double b,float c,String d....
*多个形参之间用"逗号"隔开
*形参的个数可以使0-N个
*形参中起决定性作用的是形参的数据类型,形参的名字就是局部变量的名字
*方法在调用的时候,收集给这个方法传递的真实数据被称为:实际参数
例如:
方法定义
public static int sum(int a,int b) {
}
伪代码:方法调用
sum("bac","sss");//编译报错,因为两个类型和形参不匹配
sum(10,20);//编译通过,两个类型和形参类型匹配【实参列表】
7.4、方法体:
*方法体必须由大括号括起来,方法体中的代码有顺序,遵循自上而下的顺序依次执行。
并且方法体由java语句构成,每一个java语句以"分号;"结尾
7.5、方法怎么调用:
*重点:方法只定义不去调用的时候是不会执行的,只有在调用的时候才会执行
*语法规则:【前提是方法的修饰符列表中有static】
-类名.方法名(实参列表);//这是一条java语句,表示调用某个类的某个方法,传递这样的实参
代码演示:
//public表示公开的
//class表示定义类
//method是一个类名
//整句话连起来:表示定义一个公开的类,起名method,由于是公开的类,所以源文件名必须是methodpublic class method
{//这个大括号括起来的就是一个类体//类体中不能直接编写java语句,除声明变量之外//方法出现在类体中//主方法//public表示公开的//static表示静态的//void表示方法执行结束之后不返回任何数据//main是主方法//(String[] args):形式参数列表,其中String[]是一种引用数据类型,args是一个局部变量的变量名//所以以下只有args这个局部变量的变量名是随意的//主方法就需要这样固定编写,这是程序的入口。public static void main(String[] args)//这个主方法相当于调用了虚拟机{//因为自动调用了虚拟机,这里的程序一定会执行//main方法是JVM负责调用的,是一个入口位置 //从此处作为起点开始执行程序//既然是这样,我们就可以在这里编写java语言来调用其它的方法//因为sum方法是在主方法的类体里面//可以调用method类的sum方法,传递两个实参method.sum(10,20);//实际上执行到这里main方法暂停了,进入sum方法执行,sum方法执行结束后表示main方法的135行结束//注意:第135行的程序执行不结束,无法执行第141行代码。是一种顺序结构//一个方法可以被重复使用,重复调用method.sum(20,10);//需求:计算10和20的和,并将结果输出int a=10;int b=20;int c=a+b;System.out.println(a+"+"b+"="+c);//需求:计算10和200的和,并将结果输出int a=10;int b=200;int c=a+b;System.out.println(a+"+"b+"="+c);//需求:计算10和2000的和,并将结果输出int a=10;int b=2000;int c=a+b;System.out.println(a+"+"b+"="+c);}//在这里写自定义方法:并不是程序的入口//方法作用:计算两个int类型数据的和,不要求返回结果,但是要求将结果直接输出到控制台//修饰符列表:public static//返回值类型:void//方法名:sum//形式参数列表(int x,int y)//方法体:主要任务是求和之后输出计算结果public static void sum(int i,int j)//这个方法没有调用虚拟机,所以不调用的话不会执行{System.out.println(i+"+"+j+"="+(i+j)); //调用dosome方法//方法调用不一定在main方法中,也可以在其它方法中。//只要程序可以执行到的位置,都可以去调用其它方法method.dosome();}public static void dosome(){System.out.println("dosome");}
}