一、简介
语法格式
访问修饰符 返回类型 方法名(参数列表){
方法体
}
方法命名规范同变量。
方法不能嵌套定义。
二、方法类型
无参无返回值
无参有返回值
带参无返回值
带参有返回值
ps:命令行给主方法传参
public class MathDemo {
public static void main(String[] args){
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
int sum = num1 + num2;
System.out.println("sum = " + sum);
}
}
三、方法重载
方法名相同,参数列表不同
四、方法传值
- 基本数据类型传值
- 方法中对参数的修改,不会对调用他的方法中传来的变量值产生影响
- 引用数据类型传值
- 方法中对数组的改变,会影响调用他的方法中传来的数组。
五、可变参数列表
参数列表中如果有两个以上参数,可变列表一定在最后。
举个例子
1.sum的参数就是可变列表参数。
public void sum(int... n){
int sum = 0;
for(int i: n)
sum += i;
System.out.println("sum="+sum);
}
2.search的参数也有可变列表。
可变列表一定要放在最后。
一个方法中只能有一个可变参数。
可变参数列表作为参数,方法调用时可以传入0个或多个参数。
可变参数的底层实现就是数组。
方法重载时,可变参数列表所在的方法是最后被访问的。
可以将数组传递给可变参数列表;反之不可以,即数组作为参数时,是不能将多个值传递给数组的。
此时,定义了public void search(int n, int... a)之后,就不能定义public void search(int n, int[] a),java会认为是重复定义,而不是重载。
public void search(int n, int... a){
boolean flag = false;
for(int num: a){
if(num == n){
flag = true;
break;
}
}
if(flag)
System.out.println("找到了!");
else
System.out.println("没找到!");
}
六、帮助文档
java文件存储目录下执行 javadoc –d doc 文件名.java
可生成doc文件夹,生成该类的相关信息。
七、代码
package com.imooc;
public class ArgsDemo {
public void change(int a){
a ++;
System.out.println("change中a="+ a);
}
public void change(int[] arr){
arr[0] = 100;
System.out.print("change中arr:");
for(int one: arr)
System.out.print(one + " ");
System.out.println();
}
public void sum(int a, int b) {
System.out.println("不带可变参数列表的方法被调用,和为:" + (a + b));
}
public void sum(int... n){
int sum = 0;
for(int i: n)
sum += i;
System.out.println("sum="+sum);
}
public void search(int n, int... a){
boolean flag = false;
for(int num: a){
if(num == n){
flag = true;
break;
}
}
if(flag)
System.out.println("找到了!");
else
System.out.println("没找到!");
}
public void test(){
int a = 1;
change(a);
System.out.println("test中a:" + a);
int[] arr = {1, 3, 5, 6};
change(arr);
System.out.print("test中arr:");
for(int one: arr)
System.out.print(one + " ");
System.out.println();
sum(1, 2);
sum(9);
sum();
search(9, 1, 2, 6, 9);
int[] arr1 = {1, 2, 3, 44, 9};
search(9, arr1);
}
public static void main(String[] args){
ArgsDemo ad = new ArgsDemo();
ad.test();
}
}
输出:
change中a=2
test中a:1
change中arr:100 3 5 6
test中arr:100 3 5 6
不带可变参数列表的方法被调用,和为:3
sum=9
sum=0
找到了!
找到了!
参考:慕课网-Java工程师课程