详解Java方法method的定义与调用及重载
方法的定义和调用
什么是方法
方法(method)就是一段用来完成特定功能的代码片段,类似于其它语言的函数(function)。
方法用于定义该类或该类的实例的行为特征和功能实现。 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。
方法的声明格式
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){
Java语句;… … … }
方法的调用方式
对象名.方法名(实参列表);
方法的详细说明
- 形式参数:在方法声明时用于接收外界传入的数据。
- 实参:调用方法时实际传给方法的数据。
- 返回值:方法在执行完毕后返还给调用它的环境的数据。
- 返回值类型:事先约定的返回值的数据类型,如无返回值,必须显示指定为为void。
注意:Java中一切都是值传递
例如:我们要打印1-n的数,传统写法写在main方法里,但是当有多个值时,就要写多个for循环,这样,代码就重复多了。
public class TestCode02 { public static void main(String[] args) { int n1 = 10; for (int i = 1; i <= n1; i++) { System.out.print(i + " "); } System.out.println(); //当有多个n时,都要每次写一遍for循环 int n2 = 13; for (int i = 1; i <= n2; i++) { System.out.print(i + " "); } System.out.println(); int n3=20; //for... } }
我们把相同的代码提取出来,放在一个方法里,这样每次调用这个方法就行了,不必每次写相同的代码
public class TestCode02 { public static void main(String[] args) { int n1 = 10; printNnums(n1); int n2=12; printNnums(n2); int n3=14; printNnums(n3); } public static void printNnums(int n){ for (int i = 1; i <= n; i++) { System.out.print(i + " "); } System.out.println(); } }
这样,我们有多个n时,就只调用一次方法就行了
总结
1.方法是:对特定的功能进行提取,形成一个代码片段,这个代码片段就是我们所说的方法
2.方法和方法是并列的关系,所以我们定义的方法不能写到main方法中
3.方法的定义–>格式:
修饰符 方法返回值类型 方法名(形参列表){
方法体;
return 方法返回值;
}
4.方法的作用:提高代码的复用性
5.总结方法定义的格式:
- 修饰符:
public static
- 方法返回值类型 : 方法的返回值对应的数据类型
数据类型: 可以是基本数据类型(byte
,short
,int
,long
,float
,double
,char
,boolean
) 也可以是引用数据类型
- 方法名 :见名知意,首字母小写,其余遵循驼峰命名, eg: addNum ,一般尽量使用英文来命名
- 形参列表 :方法定义的时候需要的形式参数 : int num1, int num2 -->相当于告诉方法的调用者:需要传入几个参数,需要传入的参数的类型;实际参数:方法调用的时候传入的具体的参数: 10,20 -->根据形式参数的需要传入的
- 方法体:具体的业务逻辑代码
- return 方法返回值:
方法如果有返回值的话: return+方法返回值,将返回值返回到方法的调用处
方法没有返回值的话:return可以省略不写了,并且方法的返回值类型为:void
- 什么时候有返回值,什么时候没有返回值?–>看需求
6.方法的定义需要注意什么?
- 形参列表要怎么写:定义几个参数,分别是什么类型的 —>不确定因素我们会当做方法的形参
- 方法到底是否需要返回值 ,如果需要的话,返回值的类型是什么?
7. 方法的调用需要注意什么?
- 实际参数要怎么传入:传入几个参数,传入什么类型的
- 方法是否有返回值需要接受
方法的重载
什么是方法重载
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
注意本质:重载的方法,实际是完全不同的方法,只是名称相同而已!
构成方法重载的条件
- 不同的含义:形参类型、形参个数、形参顺序不同
- 只有返回值不同不构成方法的重载;(如:int add(int a,int b){}与 void add(int a,int b){}不构成方法重载)
- 只有形参的名称不同,不构成方法的重载;(如:int add(int a){}与int add(int b){}不构成方法重载)
public class TestCode03 { public static void main(String[] args) { add(7,8); add(1.02,2.03); add(1,3,5); add(1,4,6,9); } //定义一个int型两数相加 public static void add(int a,int b){ System.out.println(a+"+"+b+"="+(a+b)); } //定义一个double类型的两数相加 public static void add(double a,double b){ System.out.println(a+"+"+b+"="+(a+b)); } //定义一个三个数相加 public static void add(int a,int b,int c){ System.out.println(a+"+"+b+"+"+c+"="+(a+b+c)); } //四数相加 public static void add(int a,int b,int c,int d){ System.out.println(a+"+"+b+"+"+c+"+"+d+"="+(a+b+c+d)); } }
总结
- 方法的重载:在同一个类中,方法名相同,形参列表不同的多个方法,构成了方法的重载。
- 方法的重载只跟:方法名和形参列表有关,与修饰符,返回值类型无关。
- 注意:形参列表不同指的是什么?
(1)个数不同
add() add(int num1) add(int num1,int num2)
(2)顺序不同
add(int num1,double num2) add(double num1,int num2)
(3)类型不同
add(int num1) add(double num1)
到此这篇关于详解Java方法method的定义与调用及重载的文章就介绍到这了,更多相关Java 方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解 Java Maximum redirects (100) exceeded
这篇文章主要介绍了详解 Java Maximum redirects (100) exceeded的相关资料,需要的朋友可以参考下2017-05-05IDEA中程序包Org.Springframework.Boot不存在问题及解决
这篇文章主要介绍了IDEA中程序包Org.Springframework.Boot不存在问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-07-07
最新评论