二
.
方法概述
2.1
什么是方法?
方法,也叫函数,是完成特定功能的代码块。 简单来说,一个方法就是一个功能、一个动作或一种行为
2.2
为什么需要方法?
当一些代码被反复使用时,可以把它们提取出来,放到一个方法里,以方法的形式来使用这些代码。
2.3
方法的好处
大大提高了代码的
复用性
,方便维护
2.4
方法的格式
修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2...) {
// 方法体语句
return 返回值;
}
public static void main(String[] args) {
// 方法体
System.out.println("Hello World");
return;
}
public static void main(String[] args) {
System.out.println("HELLO JAVA");
// 1. 结束方法的运行
// 2. 返回一个值
// 3. 当方法返回类型为 void 的时候, return 语句可以省略不写
return; }
方法的格式说明
修饰符:
public static
返回值类型:方法执行结果的数据类型
方法名:方法的名称,符合标识符命名规则即可
参数列表:方法执行需要的条件。
参数类型:可以是基本类型,也可以是引用类型
参数名:即变量名
方法体语句:完成特定功能的代码
return
:意思是返回,用于结束方法。
返回值:方法执行之后的结果,返回给方法的使用者。若方法没有
返回值,则它的返回值类型为
void
,比如
main
方法
2.5
方法的定义和调用
需求:求两个数
(int)
之和
如何定义一个方法
1.
确定方法名
sum
2.
确定返回值类型
int
3.
确定参数列表
(int num1, int num2)
分析:
A
:方法名:
sum
B
:返回值类型:
int
C
:参数列表:
int num1, int num2
2.6
方法的调用
概念:
使用方法的过程称为方法的调用
调用方式
A
:通过方法名调用方法
B
:根据形式参数列表将实际参数传递给方法
形式参数:在定义方法时需明确方法参数的形式,比如参数的类型
和个数,故方法定义时的参数列表称为形式参数
实际参数:调用方法时传递给方法的数据,必须符合形式参数的个
数和对应位置的数据类型
public static int sum(int num1, int num2) {
}
public static void main(String[] args) {
int sum = sum(1, 2);
System.out.println("sum = " + sum);
}
/**
* 求两个参数的和*
* @param num1
* @param num2
* @return
*/
public static int sum(int num1, int num2) {
int res = num1 + num2;
return res;
}
方法调用过程
1
:通过方法名调用方法
2
:传递实际参数
3
:方法执行时,实际参数值赋值给形式参数
4
:在方法中进行运算,并将结果赋值给变量
res
5
:方法的返回值
res
赋值给接收者
sum
如果方法没有返回值,则不需要接收
public static void main(String[] args) {
String str = hello("Liu Pei Xin"); // 报错, 不需
要接收
}
public static void hello(String name) {
System.out.println("HELLO " + name + "!!!");
return;
}
package com.bigdata;
/**
* 有参有返回值
* 有参无返回值
* 无参有返回值
* 无参无返回值
*/
public class MethodDemo {
/**
* 有参无返回值
*
* @param args
*/
public static void main(String[] args) {练习
int num1 = 3;
int num2 = 6;
int result = sum(num1, num2);
System.out.println("result = " + result);
}
/**
* 有参有返回值
*
* @param num1
* @param num2
* @return
*/
public static int sum(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
/**
* 无参有返回值
*
* @return
*/
public static String hello() {
return "HELLO JAVA!!!";
}
/**
* 无参无返回值
*/
public static void hi() {
// return;
}
}
注意
1.
在声明方法的时候
,
即便没有返回值
,
也要有返回值类型
: void
2.
方法必须定义在类中
,
方法中不可以定义方法
,
区别于
JS
3.
方法返回值类型为
void
的时候
,
可以省略
return
语句
4. return
语句后的数据类型和方法声明的返回值类型必须一致
5. return
语句之后不可以放置语句
2.7
方法重载
什么是方法重载?
在同一个类中的多个方法,它们的
方法名相同,参数列表不同
,这样的情况,称为方法重载。
方法重载与修饰符和返回值类型无关。
}
参数列表不同:
参数的个数不同 对应位置的参数类型不同
方法签名:
方法名
+
参数列表
为什么需要方法重载?
当实现的功能相同,但具体的实现方式不同时,我们可以通过定义名称相同,参数(条件)不同的方 法,从而更好地管理类中的方法。
public static double sum(double d, float f, int i) {
return d + f + i;
}
public static long sum(int num1, long num2) {
return num1 + num2;
}
public static long sum(long num1, int num2) {
return num1 + num2;
}
package com.bigdata;
public class CompareDemo {
public static void main(String[] args) {
}
/**
* 计算两个整数的和
*/
public static int sum(int num1, int num2) {
return num1 + num2;
}
/**
* 计算long类型 + int类型的和
*/
public static long sum(long a, int b) {
return a + b;
}
/**
* 计算三个整数的和
*/
public static int sum(int num1, int num2, int num3) {
return num1 + num2 + num3;
}
}
案例:比较两个数是否相同
需求:
分别比较两个
int/long/double
型的数是否相同
package com.bigdata;
public class CompareDemo {
public static void main(String[] args) {
boolean identical = isIdentical(1, 2);
System.out.println("identical = " + identical);
boolean identical1 = isIdentical(1.2, 1);
System.out.println("identical1 = " + identical1);
boolean identical2 = isIdentical(2000l, 2000l);
System.out.println("identical2 = " + identical2);
}
public static boolean isIdentical(int num1, int num2) {
return num1 == num2;
}
public static boolean isIndentical(long l1, long l2) {
return l1 == l2;
}
public static boolean isIdentical(double num1, double num2) {
return num1 == num2;
}
}