1.方法是什么
方法就是被封装好的代码,在需要用到这段代码时可以直接调用方法实现
public class demo {
public static void main(String[] args) {
//调用方法 a
a();
a();
a();
}
//方法 a
public static void a(){
System.out.println("这是方法 a");
}
}
输出结果
这是方法 a
这是方法 a
这是方法 a
2.方法的书写要求
方法必须写在类中,且写在类的最外层
public class demo {
public static void main(String[] args) {
}
访问修饰符 返回值类型 类名(类型 参数1,类型 参数2){
System.out.println("这是一个方法");
}
}
注意
下面代码中出现的static是因为此方法被main()方法直接调用
static静态方法只能引用静态变量和方法
如果没有 static则会报错
Error:(10, 9) java: 无法从静态上下文中引用非静态 方法 a()
在其他非static的类中书写方法则可不添加static关键字
( 意思就是写一个新的类,里面写方法,不要在main()这里写 )
返回值类型 设置为 void 则不会返回数据
public class demo {
public static void main(String[] args) {
//调用方法 a
a();
}
//方法 a
public static void a(){
System.out.println("这是方法 a");
}
}
输出结果
这是方法 a
3.向方法内传入参数并返回值
在方法内使用return关键字返回对应的数据
public class demo {
public static void main(String[] args) {
int i = 10;
int j;
//调用方法 a(),使用j接收方法 a()的返回值
j=a(10);
System.out.println(j);
}
//方法 a
public static int a(int num1){
num1+=10;
return num1;
}
}
输出结果
20
4.方法重载
方法重载可以使同一个名字的 方法 根据传入参数的不同 使用不同的代码块
可以是参数数量不同,也可以是参数类型不同,只要传入的参数列表有所不同就会重载
例如
public class demo {
public static void main(String[] args) {
int i=0;
String s="";
a(i);
a(s);
a();
}
//方法 a
public static int a(int num1){
System.out.println("这是传入int参数的方法 a()");
return num1;
}
//第一个重载方法 a
public static String a(String string){
System.out.println("这是传入String参数的第一个重载方法 a()");
return string;
}
//第二个重载方法 a
public static void a(){
System.out.println("这是没有传入参数的第二个重载方法 a()");
}
}
输出结果
这是传入int参数的方法 a()
这是传入String参数的第一个重载方法 a()
这是没有传入参数的第二个重载方法 a()
4.参数列表传入 可变参数
在参数列表使用 类型…形参名
访问修饰符 返回值类型 类名(类型...形参名){
}
public static int anInt(int...num){
}
可变参数的优势在于 可以自由传入多少个数据 不用确定传入数据的数量
注意 ! 不能同时使用两个可变参数
程序会自动的将传入的参数转换成数组,所以也可以直接传入数组,在调用时也要用调用数组的方式调用参数
public class demo {
public static void main(String[] args) {
int num1=anInt(new int[]{1,2,3,4,5,6,7,8,9});
System.out.println(num1);
//传入数组
int[] nums = {1,2,3,4,5};
int num2=anInt(nums);
System.out.println(num2);
}
//没有限制形参的个数
public static int anInt(int...num){
int sum=0;
for (int i =0;i<num.length;i++){
sum+=num[i];
}
return sum;
}
}
输出结果
45
15
在同时传入可变参数与 其它类型的参数 时要注意,可变参数一定要放在后面
public class demo {
public static void main(String[] args) {
int[] nums = {1,2,3,4,5};
String string = "string";
System.out.println(a(string,nums));
}
public static String a(String string,int...num){
int sum=0;
for (int i =0;i<num.length;i++){
sum+=num[i];
}
return string+sum;
}
}
输出结果
string15
在传入可变参数时传入时,不能同时传入一个同类型的参数,因为程序无法判断可变参数的开始和结束,但是可以搭配数组使用 (不推荐使用)
public class demo {
public static void main(String[] args) {
int[] nums = {1,2,3,4,5};
int num=100;
System.out.println(a(num, nums));
}
public static int a(int num,int[] ints){
int sum=0;
for (int i=0;i<ints.length;i++){
sum+=ints[i];
}
sum+=num;
return sum;
}
}
输出结果
115