Java SE之基础篇——方法

临文乍了了,彻卷兀若无。这篇文章主要讲述Java SE之基础篇——方法相关的知识,希望能为你提供帮助。
前言??上篇文章给大家介绍了java中比较基础也是常用的数据类型——数组。主要给大家介绍了数组的基本概念以及数组静态初始化和数组的遍历,并且通过大量的案例加以说明,目的就是让读者更好的掌握数组的相关用法。java本来就是侧重于实践,动手操作要比看理论重要的多,其实其他语言也是一个道理,看是看不会的,必须动手去实践。最后通过一个思维导图总结了整篇文章的重点,让读者更加系统地掌握相应的知识。本文主要给大家介绍java中真正重要的第一个知识点——?方法?。前面介绍的知识我们在其他的语言中都可以看得到,都是共性的,比如数据类型、判断、循环等,但是从本文开始,接下来介绍的就是java独有的知识点,因此,希望大家认真学习,仔细领会,这是项目的基础。当然,鉴于此知识点很重要,本文会给大家介绍很多的案例,一方面是为了让大家更好的掌握该知识点,其实更为重要的也是为了培养大家的编写代码的能力以及算法思路。首先给大家介绍的就是方法的定义和调用相关的知识点。
一、方法的定义和调用????方法(method)?? 是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。这里需要注意以下两点:

????方法必须先创建才可以使用,该过程成为方法定义??
? ???方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用??
1、无参数方法定义和调用
??具体的定义格式如下:
public static void 方法名 ()
// 方法体;

??相应的案例如下:
public static void method ()
// 方法体;

??调用格式:?方法名(); ?;例如:method(); 。这里需要注意的是:?方法必须先定义,后调用,否则程序将报错?。这也是我们一直强调的重点。具体的方法的调用过程如下图所示:

??通过上图的调用过程我们不难发现:??每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失?。? 接下来我们通过一个案例先来体会一下无参方法的定义和调用的具体过程。具体的需求以及实现思路如下:
???该案例的需求是?:设计一个方法用于打印两个数中的较大数


??具体的实现思路如下:
- ①、定义一个方法,用于打印两个数字中的较大数,例如getMax()
- ②、方法中定义两个变量,用于保存两个数字
- ③使用分支语句分两种情况对两个数字的大小关系进行处理
- ④在main()方法中调用定义好的方法
【Java SE之基础篇——方法】??我们有了思路之后,接下来就是通过具体的代码来实现该思路,具体实现如下:
public class MethodTest
public static void main(String[] args)
//在main()方法中调用定义好的方法
getMax();


//定义一个方法,用于打印两个数字中的较大数,例如getMax()
public static void getMax()
//方法中定义两个变量,用于保存两个数字
int a = 10;
int b = 20;

//使用分支语句分两种情况对两个数字的大小关系进行处理
if(a > b)
System.out.println(a);
else
System.out.println(b);



??该需求最后的运行结果如下图所示:

??为了让大家更好地掌握无参构造方法的定义和调用,同时为了锻炼大家的编程能力,我们再给出一个案例加以练习;具体的需求如下:
?? 定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
??由于该案例比较简单,因此就不阐述其思路了;我们直接用代码将其实现:
public class MethodDemo
public static void main(String[] args)
//调用方法
isEvenNumber();


//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
public staticvoid isEvenNumber()
//定义变量
int number = 10;
number = 9;

//判断该数据是否是偶数
if(number%2 == 0)
System.out.println(true);
else
System.out.println(false);



??该需求最后的运行结果如下图所示:

2、带参数方法定义和调用
??其具体格式为:??参数??:由数据类型和变量名组成 -数据类型 变量名,具体例如:int a。
public static void 方法名 (参数1)
方法体;


public static void 方法名 (参数1, 参数2, 参数3...)
方法体;

??具体的范例如下:
public static void isEvenNumber(int number)
...

public static void getMax(int num1, int num2)
...

??这里需要注意的是:?方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错;方法定义时,多个参数之间使用逗号( ,)分隔?
其调用格式:方法名(参数);如果为多个参数的时候调用格式为:方法名(参数1,参数2); 具体示例:??isEvenNumber(10); getMax(10,20); ?? ?方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错?


??我们通过一个小案例来初步理解带参方法的定义以及调用的步骤;还是前面的那个案例;即:定义一个方法,该方法接收一个参数,判断该数据是否是偶数。我们通过带参的方式将其实现,具体实现过程如下:
public class MethodDemo1
public static void main(String[] args)
//常量值的调用
isEvenNumber(10);

//变量的调用
int number = 10;
isEvenNumber(number);


//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数
public static void isEvenNumber(int number)
if(number%2 == 0)
System.out.println(true);
else
System.out.println(false);



??该需求最后的运行结果如下图所示:

??这里涉及一个实参和形参的概念。?形参??:方法定义中的参数; 等同于变量定义格式,例如:??int number??;?实参??:方法调用中的参数; 等同于使用变量或常量,例如: ??10number??。
??接下来,我们通过有参构造来实现上述提到的?打印两个数中的较大数?。具体的实现思路如下:
- ①定义一个方法,用于打印两个数字中的较大数,例如getMax()
- ②为方法定义两个参数,用于接收两个数字
- ③使用分支语句分两种情况对两个数字的大小关系进行处理
- ④在main()方法中调用定义好的方法(使用常量)
- ⑤在main()方法中调用定义好的方法(使用变量)
??我们有了思路之后,接下来就是通过具体的代码来实现该思路,具体实现如下:
public class MethodTest2
public static void main(String[] args)
//在main()方法中调用定义好的方法(使用常量)
getMax(10,20);
//调用方法的时候,人家要几个,你就给几个,人家要什么类型的,你就给什么类型的
//getMax(30);
//getMax(10.0,20.0);

//在main()方法中调用定义好的方法(使用变量)
int a = 10;
int b = 20;
getMax(a, b);


//定义一个方法,用于打印两个数字中的较大数,例如getMax()
//为方法定义两个参数,用于接收两个数字
public static void getMax(int a, int b)
//使用分支语句分两种情况对两个数字的大小关系进行处理
if(a > b)
System.out.println(a);
else
System.out.println(b);



??该需求最后的运行结果如下图所示:

3、带返回值方法的定义和调用
??其定义格式改为:
public static 数据类型 方法名 ( 参数 )
return 数据 ;

??具体的示例如下:
public static boolean isEvenNumber( int number )
return true ;

public static int getMax( int a, int b )
return100 ;

这里需要注意的是:?方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错?。
??调用格式为:方法名 ( 参数 ) ; 或者数据类型 变量名 = 方法名 ( 参数 ) ; 具体的示例如下:
isEvenNumber ( 5 ) ;
booleanflag =isEvenNumber ( 5 );

??这里需要注意的是:?方法的返回值通常会使用变量接收,否则该返回值将无意义?。我们用带返回值的定义和调用来实现之前的两个案例,针对判断该数是奇数还是偶数的问题,具体实现如下:
public class MethodDemo3
public static void main(String[] args)
//1:方法名(参数);
//isEvenNumber(10);
//true;

//2:数据类型 变量名 = 方法名(参数);
boolean flag = isEvenNumber(10);
//boolean flag = true;
System.out.println(flag);


//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数,并返回真假值

    推荐阅读