一、什么是方法
-
在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。
-
在java中,方法就是用来完成解决某件事情或实现某个功能的办法。
-
对于以程序来说,方法是完成特定功能的、相对独立的程序段。
方法的特征是 =>()
二、方法的分类
(1)系统方法
在Java中,系统拥有自带的系统方法
例如
System.out.println()
Arrays.toString()
这些方法都是Java开发工具包( jdk )提供好的系统方法
(2)自定义方法
自定义方法是我们根据需求,自定义出能完成特定功能,解决问题的程序段
自定义方法的构成:
[修饰符] 返回值类型 方法名称([参数表]){
//方法体
}
例如:
public static void play(){
}
public String play(Sting str){
}
三、使用方法
(1)使用方法
分别输入两个学生的语文和数学成绩,然后分别计算两人总分。
未使用方法的做法:
public static void main(String[] args) {
int chinese = 0;
int math = 0;
int sum = 0;
//第一名学生成绩
Scanner scanner = new Scanner(System.in);
System.out.println("请输入语文成绩");
chinese = scanner.nextInt();
System.out.println("请输入数学成绩");
math = scanner.nextInt();
sum = chinese + math;
System.out.println("第一名学生总成绩为:"+sum);
//第二名学生成绩
System.out.println("请输入语文成绩");
chinese = scanner.nextInt();
System.out.println("请输入数学成绩");
math = scanner.nextInt();
sum = chinese + math;
System.out.println("第二名学生总成绩为:"+sum);
}
我们可以看到,相同的代码我们用了两遍,就很冗余,而方法就是能够帮助我们提高代码的复用率,让我们的代码更加的简洁高效。
使用了方法的代码
public static void getSum(){
int chinese = 0;
int math = 0;
int sum = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入语文成绩");
chinese = scanner.nextInt();
System.out.println("请输入数学成绩");
math = scanner.nextInt();
sum = chinese + math;
System.out.println("学生总成绩为:"+sum);
}
public static void main(String[] args) {
getSum();
getSum();
}
上面的代码中,我们使用了getSum()方法来获得学生的总成绩,每调用一次方法,就可以得到一个学生的总成绩,减少了代码冗余。
但是,方法定义遵循功能单一原则,也就是一个方法只做一件事。所以,上面的代码是有缺陷的。既有获得总分,又要输出,这是两件事。
(2)设计方法的返回值
如果主调方法需要知道被调方法的处理结果,那么被调方法就需要设计成有返回值的方法
返回值的设计
- 在方法名前面写返回值的类型
- 在方法体内部使用return语句返回数据
- 主调方法通过赋值语句将方法返回值赋给变量
- 一个方法只能返回一个值
在上边的例子中,我们发现了方法要遵循功能单一原则,那么我们就不能把输出放在getSum()方法里了。
我们可以单独为输出设计一个方法,在main方法里面输出也行,但是都要求我们知道被调方法的返回值
//被调方法
public static int getSum(){
int chinese = 0;
int math = 0;
int sum = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入语文成绩");
chinese = scanner.nextInt();
System.out.println("请输入数学成绩");
math = scanner.nextInt();
sum = chinese + math;
return sum;
}
//主调方法
public static void main(String[] args) {
System.out.println("第一位学生成绩为"+getSum());
System.out.println("第二位学生成绩为"+getSum());
}
我们从主调方法的输出语句中调用被调方法,得到了被调方法的返回值sum总分。
(3)方法中常见的问题
(1)如果方法定义为void,表示不返回值,此时return后面不允许写返回的数据
(2)方法返回值定义了返回什么类型的值,就必须使用return返回什么类型的值。
(3)当方法没有返回值时,不允许主调方法接收返回值。
(4)返回数据的类型要与返回值类型一致。
(5)使用if语句时,如果条件a>0,语句内return,但是没有写出
(6)方法遇到return后就结束了方法,后面的语句没有机会执行。
(4)形式参数与实际参数
主调方法提供的参数是实际参数
被调方法接收数据的参数是形式参数
主调方法的实参传递给被调方法的形参。按照个数,顺序依次赋值
(5)方法参数引用类型和基本数据类型的区别
传递基本类型参数时:
当方法调用时,若传递基本类型的值,那么在被调方法内部修改了形参的值,则在主调方法中的实参不受影响。
传递引用类型参数时:
当方法调用时,若传递引用值(内存地址),那么在被调方法内部修改了形参指向内存空间的值,那么主调方法中的实参指向空间的值也被修改了。
【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】
暂无评论内容