目录
一.概述:
将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
注意:方法必须先创建才可以使用,该过程称为方法定义。
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。
二.定义和调用
1.定义格式:
public static void 方法名(){
//方法体(需根据实际需求)
}
2.调用格式:
方法名();
例子:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
public class Example{
public statis void main(String[] args){
//调用方法
isEvenNumber();
}
public static void isEvenNumber(){
//定义变量
int number = 10;
判断该数据是否是偶数
if(number%2 == 0){
System.out.println(true);
}else{
System.out.println(false);
}
}
}
3.方法练习:
例:设计一个方法用于打印两个数中的较大数
思路:a.定义一个方法,用于打印两个数中的较大数。
public static void getMax(){
}
b.方法中定义两个变量,用于保存两个数字
public static void getMax(){
int a = 10;
int b = 20;
}
c.使用分支语句分两种情况对两个数字的大小关系进行处理
if(a>b){
System.out.println(a);
}else{
System.out.println(b);
}
d.在main()方法中调用定义好的方法
public static void main(String[] args){
//调用方法
getMax();
}
代码实现:
public class Example{
public statis void main(String[] args){
//调用方法
getMax();
}
public static void getMax(){
//定义变量
int a = 10;
int b = 20;
判断该数据是否是偶数
if(a > b){
System.out.println();a
}else{
System.out.println(b);
}
}
}
三.带参数方法的定义和调用
1.定义:
格式:
public static void 方法名(参数){
}
单个参数
public static void 方法名(数据类型 变量名){
}
多个参数:
public static void 方法名(数据类型 变量名1,数据类型 变量名2,……){
}
注意:方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
方法定义时,多个参数之间使用逗号“,”隔开
2.调用:
方法名(参数);
单个参数 :
方法名(变量名/常量值);
多个参数:
方法名(变量名1/常量值1,变量名2/常量值2);
注意:方法调用时 ,参数的数量必须与方法定义中的设置相匹配
public class Example{
public statis void main(String[] args){
//常量调用
isEvenNumber(10);
//变量的调用
int number=10;
isEvenNumber(number);
}
public static void isEvenNumber(){
判断该数据是否是偶数
if(number%2==0){
System.out.println(true);
}else{
System.out.println(false);
}
}
}
3.形参和实参
a.形参:方法中定义的参数。(等同于变量定义格式)
b.实参:方法调用中的参数。(等同于变量或常量)
4.带参方法练习
例子:
思路:a.定义一个方法,用于打印两个数字中的较大数
public static void getMax(){
}
b.为方法定义两个参数,用于接收两个数字
public static void getMax(int a,int b){
}
c.使用分支语句分两种情况对两个数字大小关系进行处理
if(a>b){
System.out.println(a);
}else{
System.out.println(b);
}
d.在main方法中调用定义好的方法(使用常量)
public static void main(String[] args){
//直接传递常量
getMax(10,20)
}
e. 在main()方法中调用定义好的方法(使用变量)
public static void main(){
//定义变量,传递
int a = 10;
int b = 20;
getMax(a,b);
}
例子:使用常量方法
public class Example{
public statis void main(String[] args){
getMax(10,20)
}
public static void getMax(int a, int b){
if(a>b){
System.out.println(a);
}else{
System.out.println(b);
}
}
}
变量方法:
public class Example{
public statis void main(String[] args){
getMax(10,20)
int a= 10;
int b=20;
getMax(a,b);
}
public static void getMax(int a, int b){
if(a>b){
System.out.println(a);
}else{
System.out.println(b);
}
}
}
四.带返回值方法的定义和调用
1.定义:
public static 数据类型 方法名(参数){
return 数据
}
注意:方法定义时return后面的返回值与方法定义上的数据类型要匹配。
2.调用:
1.方法名(参数);
2.数据类型 变量名=方法名(参数)
例子:定义一个方法 ,该方法接受一个参数,判断该数据是否为偶数,并返回真假值
方法一:
public class Example{
public statis void main(String[] args){
//1.方法名(参数)
isEvenNumber(10);
true
}
public static void isEvenNumber(int number){
判断该数据是否是偶数
if(number%2==0){
return true;
}else{
return false;
}
}
}
方法二:
public class Example{
public statis void main(String[] args){
boolean flag = isEvenNumber(10);
//2.数据类型 变量名 = 方法名(参数);
System.out.println(flag);
public static void isEvenNumber(int number){
判断该数据是否是偶数
if(number%2==0){
return true;
}else{
return false;
}
}
}
五.方法的注意事项
1.a.方法不能嵌套方法
b.void表示无返回值,可以省略return,也可以单独显示return,后面不加数据。
c.return表示方法结束。
2.方法的通用格式
a.格式:
public static 返回值类型 方法名(参数){
方法体;
return 数据
}
b. public static:修饰符
c.返回值类型:方法操作完毕之后返回的数据的数据类型,如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return。
d.方法名:调用方法时使用的标识
e.参数:由数据类型和变量名组成,多个参数之间用逗号隔开
f.方法体:完成功能的代码块
g如果方法操作完毕,有数据返回,用于把数据返回给调用者
h.定义方法时,要做到两个明确:明确返回值类型(明确方法操作完毕之后是否有数据返回,如果没有写void;如果有,写对应的数值类型),;明确参数:主要是明确参数的类型和数值。
i.调用方法时:void类型的方法,直接调用即可;非void的类型,推荐使用变量接受调用。
六.方法重载
1.定义:指同一个类中定义的多个方法之间的关系
2.条件:多个方法在同一个类中、多个方法具有相同的类名、多个方法的参数不相同,类型不同或者数量不同。
3.特点:重载仅对应方法的定义,与方法的调用无关,调用方法参照标准格式。
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,不能通过返回值来判定是否重载
4.无返回值无关
在调用时,会通过参数不同来区分同名的方法
例子:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,long)
思路:a.定义比较两个数字的是否相同的方法compare()方法,参数选择两个int型参数
public static boolean compare(int a int b){
return a==b;
}
b.定义对应的重载方法,变更对应的参数类型,参数变更为两个long型参数
public static boolean compare(long a long b){
return a==b;
}
c.定义所有的重载方法,两个type类型与两个short类型参数
public static boolean compare(byte a byte b){
}
public static boolean compare(short a short b){
}
d.完成方法的调用,测试运行结果
public static void main(String[] args){
System.out.println(compare(10,20));
}
代码如下:
public class Example{
public statis void main(String[] args){
System.out.println(compare(10,20))
}
public static boolean compare(int a int b){
return a==b;
}
public static boolean compare(byte a byte b){
return a==b;
}
public static boolean compare(short a short b){
return a==b;
}
public static boolean compare(long a long b){
return a==b;
}
}
}
七.方法的参数传递
1.基本数据类型的参数,形式参数的改变,不影响实际参数的值
2.方法参数传递(引用类型) :对于引用类型的参数,形式参数的改变,影响实际参数的值