一、方法是什么
就是用来解决一类问题的代码的有序组合,是一个功能模块
换句专业的话来说,就是代码封装,把专一功能的代码封装到一起,增加main方法里的代码的简洁性。
常见的有main方法
二、方法声明
语法格式:
访问修饰符、返回类型、方法名(参数列表){方法体}
比如我们新建一个java程序后,看到的这个默认的方法
1、访问修饰符是指方法允许被访问的权限范围,如public
2、返回类型,如void是指不返回任何值【如果要返回int类型,可以直接换成int】。
3、方法名,满足变量的命名规则,如main,要满足驼峰命名法
4、参数也就是对应()里面的内容,列表里面的内容可以省略
三、方法类型
总共有四类,是根据是否带参数、是否返回值分
从广义上来说,带参数就是()里面有变量或者数组,意思是能够接收到新的变量和数组进行运算。
而返回值则是对方法里的语句进行运行后,所得到的返回结果。
1、无参无返回值方法
方法的作用是对需要重复输出的语句,归结到一个方法中。 在使用时,可以直接调用。
注意:方法是类的内部定义的,【不能嵌套定义,即不能放入main方法中定义】新的方法是和main方法位置并列的。
仍然以默认的框架为例
所谓的类,就是指public class Main{}这个大的框架,类通常都会有class这个单词。
介绍一下具体方法的调用方式,以scanner类为例
int guess;
Scanner sc=new Scanner(System.in);
guess = sc.nextInt();
第一句是创建对象,Scanner是java系统中的定义好的类。后面的new Scanner意思是调用scanner类中的system.in对象。sc是自己对对象的简写,也可以写成s,但前后必须保持一致。
第二句是调用方法,就是调用新创建的sc对象中的nextInt()方法。
注意:
方法的调用仍然是在main方法中根据语句的顺序依次执行。
2、无参有返回值方法
设置长方形求边长的方法
public class Main {
private static Object String;
private static Object girth;
public int girth(){
int a=5,b=3;
int getGirth = (a + b) * 2;
return getGirth;
}
public static void main(String[] args) {
// write your code here
Main m=new Main();
System.out.println("长方形的周长为:"+m.girth());
}
需要注意的点有:
1、有返回值的情况下,比如需要求得是int类型的值,那么新建的方法语句第二个单词要换做int。
2、注意方法名girth后面要加上(),无论有无参数都要带上,否则就会报错。
3、renturn的命名, 可以和定义的方法名一致。但返回值的名字前最好加上get,这是一种默认的命名习惯。
另外,return只代表方法会返回的内容,如果要在运行时输出具体的结果,则还需要加上一条输出语句。
3、带参无返回值方法
找最大值的程序
public class Main {
private static Object String;
private static Object max;
public void max(int a,int b){
int max;
if(a>b){
max=a;
System.out.println("最大值为:"+max);
}else if(a==b){
System.out.println(a+"和"+b+"相等");
}else if(a<b){
max=b;
System.out.println("最大值为:"+max);
}
}
public static void main(String[] args) {
// write your code here
int m=3,n=2;
Main ma=new Main();
ma.max(m,n);
}
}
1、在没有参数的情况下,方法定义的第二个单词就是void。
2、定义的参数,需要在()里就声明好类型。
3、在使用新定义的方法时,参数的名字可以和主方法中调用的变量不一致,但顺序要保持一致。比如主方法中的m,n可以传给新定义的方法里的参数a,b。
4、也可以在main运行方法中,直接传参,可以不用定义新的变量。
只要类型匹配即可传参。比如可以将ma.max(m,n);更改为ma.max(3,2);
5、在新定义的方法中,第二个情况下,a==b,必须要写2个等号。
4、有参有返回值的方法
【求阶乘的方法】
public int factorial(int i) {
int sum=1;
for (int n=1;n <= i; n++) {
sum = sum * n;
}
return sum;
}
public static void main(String[] args) {
// write your code here
int i,sum1;
Scanner sc=new Scanner(System.in);
System.out.println("请输入要求阶乘的数字");
i = sc.nextInt();
Main ma=new Main();
sum1=ma.factorial(i);
System.out.println(i+"的阶乘是"+sum1);
}
注意:返回值需要给它一个接受的容器。即输出的语句。
四、数组作为方法参数
数组本身就是一个对象,它指向的是数组中的第一个数字。
在进行传参的过程中,可以直接把数组的名字传过去。
比如下面这个程序
在一个数组中匹配某个数字
public boolean chaxun(int[] arr,int n){
boolean flag;
int i;
flag=false;//默认没有找到
for(i=1;i<arr.length;i++){
if(n==arr[i]){
flag=true;
}break;
}
return flag;
}
public static void main(String[] args) {
// write your code here
int i;
boolean flag;
Scanner sc=new Scanner(System.in);
System.out.println("请输入要查找的数字");
i = sc.nextInt();
int[] arr={1,2,3,4,5};
Main ma=new Main();
flag=ma.chaxun(arr,i);
if(flag=true){
System.out.println("找到数字"+i);
}else {
System.out.println("没有匹配到数字"+i);
}
}
温馨提示💓
如果对java方法声明还有什么疑惑,可以直接关注并私信我,发送问题,我看到后会第一时间回复。