方法:用于解决一类问题的代码的有序组合,是一个功能模块
**public static void main(String[] args)
1、访问修饰符:方法允许的访问的权限范围
返回类型,可以是任何数据类型,包括基本数据类型和引用数据类型
如图返回值为数组类型,返回数组名,调用方法后存储到数组中
2、参数列表=参数类型+参数实例
args为字符串数组类型参数
3、参数列表中为方法定义的局部变量,只在方法的大括号中有效,类似for中的循环变量定义
4、参数传值可以传变量或字面值
5、普通方法或主方法中的变量名可以与方法名相同,如在主方法中可定义变量main**
无参有返回值方法
Scanner sc = new Scanner(System.in);
String week = sc.next();//next()无参带返回值方法,week接收返回值
week=week.toLowerCase();//字符串中所有字母转成小写
在方法中调用方法,(封装方法,减少主方法中的代码,一个编程思路)
public void swap(int a,int b) {
int temp=0;
temp=a;
a=b;
b=temp;
System.out.println(a+" "+b);
float a1=2.3f;
float a2=4.5f;
compare(a1,a2);//与在主方法中调用方法不同,
//普通方法无需创建对象后再调用,可直接调用
//封装方法,减少主方法中的代码
}
随机数
**int num=Math.random();//[0,1)区间随机数,double类型
int num2=Math.random()*10; [0,10)
int num3=Math.random()10+1; [1,11)
int num4=(int)(Math.random()10+1);
若数组作为方法参数,则调用时传入数组名
数组传值和普通变量传值
普通变量传值,方法对主方法中定义的变量无影响
数组传值,arr(数组名)与a(参数列表的数组名)指向同一片内存空间,方法对主方法中定义的数组有影响(引用数据类型)
可变参数列表
增强for循环
public void sum(int… n) {
int sum=0;
for(int i:n) {
sum+=i;//每次从可变参数列表中取一个元素放入i中,直到取完所有元素
}
}
参数列表只能有一个可变参数
public boolean searchTask2(int a,int… n) {
for(int i:n) {
if(i==a) {
return true;
}
}
return false;
}//参数列表中如果有两个以上的参数,可变参数一定在最后,可变参数类型int…
//因此一个参数列表中只能有一个可变参数
可变参数与数组的关系:可变参数列表可以与数组兼容,可以将数组传递给可变参数列表,反之不行(数组做参数时,不能传多个值给数组)
**public boolean searchTask(int target,int[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.println(i);
if(arr[i]==target) {
return true;
}
}
return false;
}
boolean result=com1.searchTask(36, array3);
//可变参数列表可以与数组兼容,可以将数组传递给可变参数列表,反之不行**
在这里数组与可变参数等价
可变参数的重载问题
注意方法调用:若实例化对象后调用成员方法,成员方法无需加static
若直接调用方法,需在方法前添加static,为静态方法