目录
方法
1、概述
一个具有独立功能的代码块。某段代码经常使用,所以使用大括号,将这段代码包起来,起个名字。以后就使用这个名字来代替这段代码。
在代码中使用方法(定义方法和调用方法)的好处:
1.尽量避免代码重复,可以简化代码,让代码结构变得更加清晰,提高了代码的复用性;
2.可以把功能的设计和调用进行分离,提高了代码的封装性,大括号中的内容,其他调用者看不到也无法直接访问;
3.提高开发效率。
2、方法的定义
格式:
修饰符 返回值类型 方法名称 (参数列表) {
方法体语句;
return语句;
}
说明:
1.参数列表:这段代码要完成功能,可能会需要一些资源。在参数列表中,需要定义一些变量,内存中表示为容器,在调用本方法的时候,会由外界传入数据,存储到这些变量容器中。使用变量符号,
表示那些将来可能传入的数据。
2.return语句:最终生产出来的结果,要返回给调用者,使用return语句返回。如果没有任何生产内容,就可以写一个return;用于表示方法结束。
3、方法的调用
格式:
方法名(实参1,实参2, ...);
调用的三种方式:
1.赋值调用 :方法的返回值,使用某个变量来接收。如果这个结果需要反复使用
2.打印调用 :方法的返回值,需要打印。如果这个结果只打印一次,不做其他的操作
3.单独调用 :表示某些内容的执行,而没有生产结果的情况
方法调用总体特点:
方法不调用,就不执行。
方法的调用过程:
1.调用方法时,JVM会先去内存中找到那个方法,传参;
2.执行方法体;
3.把方法的返回值返回到方法的调用处。
方法可以被多次调用,上下两次调用时,方法都是独立执行了。
4、注意事项
1、方法不能嵌套定义,方法都是定义在主方法的下面
2、方法的先后没有区别
3、方法的定义是平级关系
4、方法可以嵌套调用,甚至可以自己调用自己
参数列表:
1、形式参数:在定义方法时使用,需要加上数据类型的参数,也就是对于变量进行声明。各个变量之间,使用逗号分隔。
2、实际参数:在方法调用时使用,不能加上数据类型的参数,也就是对于变量进行赋值。各个实际参数之间,也使用逗号分隔。顺序必须和定义的方法的形式参数的顺序一致。
return语句:
1、语句表达方法结束了;表示方法的产出内容。
2、如果方法没有具体的返回内容,可以写成return; 此时的return语句可以省略。返回值类型必须写成void。
3、如果方法有具体的返回内容,那么return后面就需要加上返回的那个数据。返回值类型必须和return语句后面的数据的数据类型一致。
4、return语句返回数据,返回给调用者。谁来调用当前方法,当前方法就将数据返回给谁。
方法有:
1.无参数无返回值方法
2.有参数无返回值方法
3.无参数有返回值方法
4.有参数有返回值方法
练习:定义一个方法,判断一个整数是否为素数
public class MethodDemo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = sc.nextInt();
boolean flag = isPrime(num);
if (flag){
System.out.println(num+"是素数");
}else {
System.out.println(num+"不是素数");
}
}
// 定义一个方法,判断一个数是否为素数
public static boolean isPrime(int x){
boolean flag = true; // 先假设是素数
if (x <= 1){
flag = false;
}else if (x == 2){
flag = true;
}else {
for (int i = 2; i <= x/2; i++) {
if (x%i==0){
flag = false;
break;
}
}
}
return flag;
}
}
方法的重载-Overload
1、重载的概念
方法重载overload:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
参数列表不同:个数不同/数据类型不同/顺序不同。
重载方法调用:JVM通过方法的参数列表,调用不同的方法。
定义重载方法的好处:
让方法的调用者更加方便的调用方法,不需要记住太多方法的名字。
在什么时候需要定义重载的方法?
当两个方法的实现的功能类似或者功能的名字一样。
总结:方法重载只与方法名和参数列表有关,和返回值/修饰符均无关(方法重载指的是在同一个类中)。
练习:写三个加法的方法重载。
/*
使用方法重载,写出三个add的方法
*/
public class OverLoadDemo01 {
public static void main(String[] args) {
int sum01 = add(12, 13);
int sum02 = add(1, 2, 6);
double sum03 = add(1.2, 1.3);
System.out.println(sum01);
System.out.println(sum02);
System.out.println(sum03);
}
public static int add(int x, int y){
return x + y;
}
public static int add(int x, int y, int z){
return x + y + z;
}
public static double add(double x, double y){
return x + y;
}
}
下一篇:(19)Java基础 --数组