方法:
简单的说:方法就是完成特定功能的代码块
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
}
解释
1:修饰符 目前记住 public static
2:返回值类型 用于限定返回值的数据类型
3:方法名 一个名字,为了方便我们调用方法
4:参数类型 用于接收调用方法时传入的数据的类型
5:参数名 用于接收调用方法时传入的数据的变量
6:方法体 完成功能的代码
7:return 结束方法,把返回值带给调用者
写方法的两个明确
1.返回值类型 明确功能结果的数据类型
2.参数列表 明确有几个参数,以及参数的类型
public static int sum(int a, int b) {
// int c = a + b;
// return c;
return a + b;
}
方法的调用(有明确返回值的)
1.单独调用,没有意义
2.输出调用,有意义,但是不够好,因为我不一定非要把结果输出
4.赋值调用,推荐方式
public class MethodDemo2 {
// 求和的方法
public static int sum(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 单独调用
// sum(10,20);
// 输出调用
// System.out.println(sum(10,20));
// 赋值调用
int s = sum(10, 20);
// s+=100;
System.out.println("s:"+s);
}
}
void 修饰符的方法调用(没有明确返回值)
1.其实就是void类型方法的调用
2.只能单独调用
在控制台上输出10次HelloWorld案例
public static void printHelloWorld() {
for(int x=1; x<=10; x++) {
System.out.println("HelloWorld");
}
}
public static void main(String[] args) {
//单独调用
printHelloWorld();
//输出调用
//System.out.println(printHelloWorld());
//System.out.println(void);
//赋值调用
//void v = printHelloWorld();
}
方法重载
概述
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可
特点
与返回值类型无关,只看方法名和参数列表
参数列表不同:
1.参数的个数不同。
2.参数对应的类型不同。
在调用时,虚拟机通过参数列表的不同来区分同名方法
public class MethodDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 求和
int result = sum(a, b);
System.out.println("result:" + result);
int c = 30;
// 求和
//int result2 = sum2(a,b,c);
//System.out.println("result2:"+result2);
result = sum(a,b,c);
System.out.println("result:"+result);
}
//两个float类型的数据求和
public static float sum(float a,float b) {
return a + b;
}
// 三个整数的求和
public static int sum(int a,int b,int c) {
return a + b + c;
}
/*
public static int sum2(int a, int b, int c) {
return a + b + c;
}
*/
// 两个整数的求和
public static int sum(int a, int b) {
return a + b;
}
}
方法中的参数传递
方法的形式参数为基本数据类型
方法的参数是基本类型的时候:
形式参数的改变不影响实际参数。
形式参数:用于接收实际数据的变量
实际参数:实际参与运算的变量
public static void main(String[] args) {
// 定义变量
int a = 10;//实际参数
int b = 20;
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
change(a, b);
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
}
public static void change(int a, int b) { // a=10,b=20 形式参数
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
a = b; // a=20;
b = a + b;// b=40;
System.out.println("a:" + a + ",b:" + b);// a:20,b:40
}
方法的形式参数为引用数据类型
形式参数的改变直接影响实际参数
public static void main(String[] args) {
// 定义数组
int[] arr = { 1, 2, 3, 4, 5 };
// 遍历数组
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
System.out.println("----------------");
change(arr);
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
}
public static void change(int[] arr) {
for (int x = 0; x < arr.length; x++) {
// 如果元素是偶数,值就变为以前的2倍
if (arr[x] % 2 == 0) {
arr[x] *= 2;
}
}
}