一、方法是什么

就是用来解决一类问题的代码的有序组合,是一个功能模块
换句专业的话来说,就是代码封装,把专一功能的代码封装到一起,增加main方法里的代码的简洁性。

常见的有main方法

二、方法声明

语法格式:

访问修饰符、返回类型、方法名(参数列表){方法体}

比如我们新建一个java程序后,看到的这个默认的方法

java声明方法代码 java中声明方法_数据结构

1、访问修饰符是指方法允许被访问的权限范围,如public
2、返回类型,如void是指不返回任何值【如果要返回int类型,可以直接换成int】。
3、方法名,满足变量的命名规则,如main,要满足驼峰命名法
4、参数也就是对应()里面的内容,列表里面的内容可以省略

三、方法类型

总共有四类,是根据是否带参数、是否返回值分
从广义上来说,带参数就是()里面有变量或者数组,意思是能够接收到新的变量和数组进行运算。
而返回值则是对方法里的语句进行运行后,所得到的返回结果。

1、无参无返回值方法

方法的作用是对需要重复输出的语句,归结到一个方法中。 在使用时,可以直接调用。

注意:方法是类的内部定义的,【不能嵌套定义,即不能放入main方法中定义】新的方法是和main方法位置并列的。

仍然以默认的框架为例

java声明方法代码 java中声明方法_System_02


所谓的类,就是指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方法声明还有什么疑惑,可以直接关注并私信我,发送问题,我看到后会第一时间回复。