09.Java中的方法调用(有具体返回值类型的方法和没有具体返回值类型的方法)--改进版
例如:物大战僵尸里面豌豆芽发射炮弹,可能需要编写100行代码, 植物大战僵尸里面
每一个关卡都有豌豆芽发射炮弹,为了代码的调用简单,给100行代码使用{}包起来,
并且为之起一个名字(符合标识符的规则)(方法名),那么以后只要用到豌豆芽发射炮
弹这个功能,直接调用方法名.
(1)方法: 就是使用{}代码块包起来,并且起一个名字.
(2)定义方法的格式:
有具体返回值类型的方法的定义
(a)固定格式
public static 返回值类型 方法名(参数类型1 变量名1,参数类型2 变量名2....){
方法中的业务逻辑代码...
return 结果;
}
(b)详细介绍:public: 访问权限足够大,公共的
static: 静态修饰符(面向对象中讲)
返回值类型:就是数据类型
方法名: (小驼峰命名法)
参数类型:第一个参数的数据类型
变量名:符合 (小驼峰命名法)
(c)有具体返回值类型的方法的调用:
单独调用(不用它)
输出调用:不建议:【因为直接输出,想使用这个结果值进行操作就不可以了】
赋值调用:推荐
(3)方法定义的注意事项
(a)方法和方法是平级关系,无法进行嵌套(不允许一个方法中定义另一个方法)。
(b) 在Java中,定义方法的形式参数必须携带数据类型(Java是一个强类型语言)。
(c) 调用方法的时候,传递的实际参数不需要在携带数据类型了。
(d) 定义方法的时候,有{}括号的地方不能有分号;
(4)示例:
class FunctionDemo{
public static void main(String[] args){
//实际参数:要么键盘录入要么直接定义
int a = 30 ;
int b = 20 ;
赋值调用
int result = sum(a,b) ;
System.out.println(result) ;
}
/*
public static 返回值类型 方法名(参数类型1 变量名1,参数类型2 变量名2....){
方法中的业务逻辑代码...
return 结果;
}
定义两个数据之和的功能时候,
两个明确
1)明确返回值类型:int
2)明确参数类型以及参数个数
int类型 2个参数
*/
public static int sum(int a,int b){//形式参数
int result = a + b;//30+20
return result ;
//return firstNum+secondNum ;
}
}
(5)借鉴讲师的图解————————(感谢!!!!!!!!!!!)
二.没有具体返回值类型的方法的定义以及调用
(1)没有具体返回值类型的方法的定义:
针对某个功能代码块{} 没有具体的返回值类型,按照语法规定:必须有一个值
Java提供了一个关键字:代替没有具体返回值类型 void
(2)固定格式:
public static void 方法名(形式参数列表){
方法体中的内容:直接输出 或者进行其他操作;(不需要return语句了)
}
(3)没有具体返回值类型的方法调用
(a)单独调用:只能单独调用
(b) 输出调用:不行
(c) 赋值调用:不行
(4)示例:在控制台输出4行5列的*形
import java.util.Scanner;
class WuJuTiFanHuiZhi{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//录入
System.out.println("请输入一个行数m:");
int m = sc.nextInt() ;
System.out.println("请输入一个列数n:");
int n = sc.nextInt() ;
//单独调用
printStar(m,n) ;
}
/*
定义这样一个方法:输出4行5列的*形
两个明确:
1)明确返回值类型:没有具体返回值类型:使用void代替
2)明确参数类型以及参数个数
两个参数:行数和列数, 都是int类型
*/
public static void printStar(int m,int n){
//4行5列的* 代码
for(int x = 0 ;x <m ; x ++){
for(int y = 0 ; y < n ; y ++){
System.out.print("*") ;
}
System.out.println() ;
}
}
}
MIRACLE_SQ: 西八波