Java语言基础(方法概述和格式说明)
A:为什么要有方法
假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹(植物大战僵尸)。
发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。
为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,
这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,
程序在需要发射炮弹时调用该方法即可。
B:什么是方法
方法就是完成特定功能的代码块
在很多语言中都有函数的定义,但是在咱们JAVA语言中,我们将其称之为方法。
C:方法的格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ....){
方法体;
return 返回值;
}
D:方法的格式详细说明
(1): 修饰符 比较多,后面会详细介绍。目前使用 public static
(2): 返回值类型 用于限定返回值的数据类型
(3): 方法名 就是一个名称,它的存在是为了方便我们调用方法
(4): 参数类型 限定调用方法时传入参数的数据类型
(5): 参数名 是一个变量,接收调用方法时传入的参数
这个参数其实有一个专业的名词,被称之为形式参数,它的作用是用来接收实际参数的.
(6): 方法体 完成功能的代码
(7): return 结束方法以及返回方法指定类型的值
(8): 返回值 就是功能的结果,由return带回,带回给调用者
class MyTest { //主方法 由JVM调用 public static void main(String[] args) { //方法:对一段功能逻辑代码的封装,以实现重复调用。 //方法的语法格式 /* 权限修饰符 状态修饰(可选)返回值类型 方法名(形参){ //方法体 } */ //2.方法定义在类中,二来,方法和方法是平级关系,不能嵌套定义 //3.方法不调用不执行,我们可以在主方法里面调用,我们定义的方法 //4. 通过方法名来调用方法 System.out.println("Hello World!"); //方法的调用,可以重复调用多次。 sendBullets(); sendBullets(); sendBullets(); } //定义发射子弹的方法 public static void sendBullets(){ System.out.println("发射子弹"); } }
Java语言基础(方法之求和案例及其调用)
需求:求两个数据之和的案例
class MyTest2{ public static void main(String[] args) { System.out.println("Hello World!"); //定义一个方法,来求两个数的和。 add(); //调用方法时,如果方法,有形参,你必须传入参数,你传入的参数类型和形参保持一致。要几个形参,就传几个 //我们调用方法时,传的参数,叫做实际参数,简称实参。实参可以是常量,可以是变量 add2(5,9); add2(6,9); int x=90; int y=30; add2(x,y); //120 //调用方法,如果方法有返回值,那么他返回什么类型就用什么类型来收 double r=add3(8,5); System.out.println("和是:"+r); //输出调用,针对的有返回值的方法。可以打印出,返回的结果 //int x=add3(82,5) System.out.println(add3(82,5)); } // 无参无返回值的方法 public static void add(){ int a=20; int b=25; int sum=a+b; System.out.println("和是:"+sum); return; //结束方法,方法的返回值如果是 void return可以省略不写 } //定义在方法括号中的参数,我们叫做形式参数,简称形参,格式 数据类型 参数名 多个形参,逗号隔开 //形参的作用,使用来接收实参的。 public static void add2(int a,int b){ int sum=a+b; System.out.println("和是:"+sum); } //void 表示方法没有明确返回值类型,所以这个方法,不需要返回数据。 //如果你要方法,返回数据,就必须明确返回值类型,一旦我们明确了返回值类型,该方法必须由 return关键字,返回与明确的数据类型一致的结果。 // return 结束方法,并返回结果 public static double add3(int a,int b){ int sum=a+b; //System.out.println("和是:"+sum); return sum; }
B:如何写一个方法
两个明确
(1):返回值类型 明确功能结果的数据类型
(2):参数列表 你要传递几个参数,以及每一个参数的数据类型
C:方法调用(有明确返回值的调用)
a:单独调用,一般来说没有意义,所以不推荐。
b:赋值调用,推荐方案。
c:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
Java语言基础(方法的练习)
A:案例演示: 需求:获取两个数中的较大值
B:案例演示: 需求:比较两个数是否相等
使用键盘录入改进import java.util.Scanner; class MyTest3{ public static void main(String[] args) { //定义方法时,要考虑的东西:1.这个方法要不要设计形参,要,要几个,数据类型是什么? //2. 这个方法,要不要设计返回值,返回值类型,是什么? //求两个数的最大值,设计一个方法。 //B:案例演示: 需求:比较两个数是否相等 double max=getMax(20,6); System.out.println("最大值是:"+max); Scanner sc=new Scanner(System.in); System.out.println("请录入第一个整数"); int a=sc.nextInt(); System.out.println("请录入第二个整数"); int b=sc.nextInt(); boolean flag=isEquals(a,b); System.out.println("是否相等:"+flag); } //定义获取最大值的方法 public static double getMax(double a,double b){ double max=a>b?a:b; return max; } //定义 比较两个数是否相等的方法 两个 int类型的参数,返回值 boolean public static boolean isEquals(int x,int y){ boolean f=x==y?true:false; return f; } }
Java语言基础(方法的注意事项)
A: 方法不调用不执行
B: 方法与方法是平级关系,不能嵌套定义
C: 方法定义的时候参数之间用逗号隔开
D: 方法调用的时候不用在传递数据类型
E: 如果方法有明确的返回值,一定要由return带回一个值
Java语言基础(方法之输出星形及其调用)
需求:根据键盘录入的行数和列数,在控制台输出星形
import java.util.Scanner; class MyTest4 { public static void main(String[] args) { /* A:案例演示 需求:根据键盘录入的行数和列数,在控制台输出星形 两个 int 类型的参数。行数,列数。 根据录入的行数,输出乘法表,比如录入6 那就是 6 6 乘法表 */ Scanner sc=new Scanner(System.in); System.out.println("请输入行数"); int x=sc.nextInt(); System.out.println("请输入列数"); int y=sc.nextInt(); showStar(x,y); } public static void showStar(int hang,int lie){ for(int i=1;i<=hang;i++){ for(int j=1;j<=lie;j++){ System.out.print("*"); } System.out.println(); } } }
B:方法调用:(没有明确返回值的调用)
单独调用
输出调用(错误)
赋值调用(错误)
Java语言基础(方法的练习)
需求:根据键盘录入的数据输出对应的乘法表
import java.util.Scanner;
class MyTest5{
public static void main(String[] args) {
//根据录入的行数,输出乘法表,比如录入6 那就是 6 6 乘法表
Scanner sc=new Scanner(System.in);
System.out.println("请输入行数");
int num=sc.nextInt();
//调用方法
showMultiplication(num);
}
//定义方法
public static void showMultiplication(int x){
for(int i=1;i<=x;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
Java语言基础(方法重载概述)
方法重载概述
在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同,与返回值无关。
参数列表不同:
A:参数个数不同
B:参数类型不同