首页 > 编程语言 > 详细

Java方法

时间:2021-08-06 10:32:45      阅读:23      评论:0      收藏:0      [点我收藏+]

什么是方法

package com.Hellscythe.Method;

public class Demo01 {
    public static void main(String[] args) {

        int add = add(1, 2);
        System.out.println(add);

        met01();

    }



    public static int add(int i,int j){
        return i+j;
    }


    public static void met01(){
        for (int i = 0; i <= 9; i++) {

            for (int j = 9; j >= i; j--) {
                System.out.print(" ");
            }
            for (int k = 0; k <= i; k++){
                System.out.print("*");
            }
            for (int l = 1; l <= i; l++) {
                System.out.print("*");
            }

            System.out.println("");


        }

    }
}

方法包含一个方法头和一个方法体,方法组成:

  • 修饰符:可选,告诉编译器如何调用该方法。定义了方法的访问类型。
  • 返回值类型:定义返回值的类型,returnValueType是方法返回值的数据类型(如int)。有的方法没有返回值,此时的returnValueType的关键字是void。
  • 方法名:给方法取个名字,可以附带参数
  • 参数类型:参数是一个占位符。当方法被调用时。传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。(分为形式参数和实际参数)
  • 方法体:方法体包含的具体语句,定义功能(花括号内容)

public static int add (int a ,int b){ ........ return}

修饰符 修饰符 返回值类型 方法名 参数类型 参数名 方法体 返回值

package com.Hellscythe.Method;

public class Demo02 {
    public static void main(String[] args) {

        int max = max(1, 2);
        System.out.println(max);


    }

    public static int max(int a , int b){

        int result = 0;


        if(a>b){
            result = a;

        }else if (a==b){
            result = 0;

        }else{
            result = b;

        }
        return  result;

    }//return可以作为方法终止符

}

方法的重载

  • 指的是同一个名字的方法可以有不同的类型、不同的参数。
package com.Hellscythe.Method;

public class Demo03 {
    public static void main(String[] args) {

        double met01 = met01(1, 2);//改变输出类型(double/int)可以改变调用的方法
        System.out.println(met01);

    }

    public static int met01(int a, int b) {
        int result = 0;

        if (a>1 && b>1){
            result = 1;
        }else{
            result = 0;

        }
        return  result;

    }
    public static double met01(double a,double b){
        int result = 0;

        if (a>1 && b>1){
            result = 1;
        }else{
            result = 0;

        }
        return  result;
    }
}

命令行传递参数

package com.Hellscythe.Method;

public class Demo04 {
    public static void main(String[] args) {

        for (int i = 0; i < args.length; i++) {
            //args.length数组长度
            System.out.println("arg["+i+"]:"+args[i]);


            

            
        }
    }
}

①cmd打开包目录,使用javac将java编成class

②使用cd ../返回上一级目录,退到src目录

③使用java打开Demo04 ,使用它包的路径打开(java com.Hellscythe.Method.Demo04 Are you sure?)

④结果:arg[0]:Are
arg[1]:you
arg[2]:sure?

注:将Demo04改为Demo04.class就失效了,原因不明

可变参数

package com.Hellscythe.Method;

public class Demo05 {
    public static void main(String[] args) {
        Demo05 demo05 = new Demo05();
        demo05.test01(4,2,3,4);//int...可输入多个数据,但int只有一个;int...后的所有数字类型必须为int输入3.0后会报错


    }
    public void test01(int j ,int... i){
        System.out.println(i[0]);//输出第0个数字
    }
}
package com.Hellscythe.Method;

public class Demo06 {
    public static void main(String[] args) {

        Demo06 demo06 = new Demo06();
        demo06.printmax(1,2,421,435,6435);
    }
    public static void printmax(double...numbers){

        if (numbers.length == 0){//先检测有没有输入数字,number.length指的是数字长度,这里即数字个数。numbe.length = 5
            System.out.println("你在干嘛");
            return;
        }

        double result = numbers[0];

        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] > result){
                result = numbers[i];
            }
            
        }
        System.out.println("最大的是:"+result);

    }

}

递归

package com.Hellscythe.Method;

public class Demo07 {
    public static void main(String[] args) {
        int A =f(3);//递归指的是在A里面调用A

        System.out.println(A);

    }
    public static int f(int a){
        if (a == 1){
            return 1;
        }else{
            return a*f(a = a - 1);
        }

    }
}

递归的组成:

  • 递归头:什么时候不调用自身。如果缺失递归头,则会陷入死循环
  • 递归体:什么时候需要调用自身

简易计算器

package com.Hellscythe.Method;

public class Practice01 {
    public static void main(String[] args) {

        double result = count(3,4);//在此处输入需要计算的两个数字

    }
    public static double count(double a , double b){
        char 符号 = ‘*‘;//在此处输入运算符号(+-*/)

        switch (符号){
            case ‘+‘:
                System.out.println(a+"?"+b+"="+(a+b));
                break;
            case ‘-‘:
                System.out.println(a+"?"+b+"="+(a-b));
                break;
            case ‘*‘:
                System.out.println(a+"?"+b+"="+(a*b));
                break;
            case ‘/‘:
                System.out.println(a+"?"+b+"="+(a/b));
                break;

        }
        return 符号;
    }
    
}

Java方法

原文:https://www.cnblogs.com/TheCasually/p/15107091.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!