方法
方法
回顾------方法的定义和调用
前面有一篇关于方法的博客,使用过方法调用,打印吃饭的流程。
现在我们复习一下,使用嵌套循环输出矩形,控制台打印出矩形就可以了。
public class Juxing {
public static void main(String[] args) {
// TODO Auto-generated method stub
print();
}
public static void print() {
for (int i = 1; i < 5; i++) {
for (int j = 1; j <= 18; j++) {
System.out.print("@");
}
System.out.println();
}
}
}
我们这个方法被定义为void,是没有返回值的,在主方法main中直接被调用。print方法被main方法调用后直接输出结果,而main方法并不需要print方法的执行结果,所以被定义为void。
方法注意事项
- 方法定义的先后顺序无所谓
- 方法定义必须是挨着的,不能在同一个方法里再定义一个方法
- 方法定义完之后,自己不会执行,如果希望执行,一定要进行方法的调用。
方法定义格式
方法其实就是若干语句的功能集合。
方法好比是一个工厂。
蒙牛工厂
原料:奶牛、饲料、水
产出物:奶制品
钢铁工厂
原料:铁矿、煤炭
产出物:钢铁建材
参数(原料),就是进入方法的数据
返回值(产出物):就是从方法出来的数据
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,····){
方法体
return返回值;
}
修饰符:现阶段的固定写法:
public static
返回值:也就是方法最终产生的数据结果是什么类型
方法名称:方法的名字,规则和变量一样,小驼峰
参数名称:进入方法的数据对应的变量名称
PS:参数如果有多个,使用逗号分离
return:两个作用,第一停止当前方法;第二,将后面的结果返回值还给调用处
返回值:也就是方法执行后最终产生的数据结果
注:return后面的“返回值”,必须和方法名称前面的“返回值类型”,保持对应。
定义一个两个int数字相加的方法。
三要素:
返回值类型:int
方法名称:可以叫sum
参数列表:int a,int b
方法的三种调用格式:
1.单独调用(方法名称(参数))
2.打印调用(System.out.println(方法名称(参数));)
3.赋值调用(数据类型 变量名称 = 方法名称(参数))
注:此前学习方法,返回值类型固定写为void,这种方法只能够单独调用,不能进行打印调用和赋值调用
方法对比有无参数
有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数。例如,两个数字相加,必须知道两个数字是多少,才能相加。
无参数:小括号当中留空。一个方法不需要任何数据条件,自己就能独立完成任务,就是无参数。例如定义一个方法,打印固定10次hello。
方法对比有无返回值
题目要求:定义一个方法,用来求出两个数字之和。(你帮我算,算完之后把结果告诉我)
题目变形:定义一个方法,用来打印两个数字之和。(你帮我算,算完之后自己负责显示结果)
package 方法;
public class Demo03Method {
public static void main(String[] args) {
// TODO Auto-generated method stub
//我是main方法,我来调用你
//我调用你,你来帮我计算一下,算完了之后,把结果告诉我num变量
int num = m1(10,20);
System.out.println("返回值是:" + num);
//我是main方法,我来调用你
//我调用printSum,你来帮我计算一下,算完了之后,在你自己的方法里输出相加值
printSum(10, 2);
}
//我是一个方法,我负责两个数字相加
//我有返回值int,谁调用我,我就把计算结果告诉谁
public static int m1(int a,int b) {
int result = a + b;
return result;
}
我是一个方法,我负责两个数字相加
//我没有返回值,我不会告诉任何人,而是我自己进行打印输出
public static void printSum(int a, int b) {
int result=a+b;
System.out.println(result);
}
}
运行结果是
这是两者的流程图:
注意事项:
1.在main方法中调用m1方法的时候也可以使用System.out.println(m1(10,20));
这个也是正确写法。
2.如果直接调用m1方法m1(10,20);
这个是返回值没有用到,不会给出计算结果。
3.我给大家举出几个错误写法。
以上写法均是错误写法。
方法练习题
题目一要求:
定义一个方法,用来判断两个数字是否相同
public class Demo04MethodSame {
public static void main(String[] args) {
System.out.println(isSame(1,2));
}
/*
* 三要素:
* 返回值类型:布尔类型boolean
* 方法名称:isSame
* 参数列表:int a, int b
*/
public static boolean isSame(int a,int b) {
boolean same;
if (a == b) {
same = true;
}else {
same = false;