栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA基础语法之方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA基础语法之方法

文章目录
  • 方法
  • 方法参数
  • 可变参数
  • 方法重载
  • 方法递归

JAVA基础语法——方法
本文参考内容: 牛客网,此内容仅为本人的学习知识总结。

方法

2.1 方法
概念:也可以叫函数。可以独立完成任务的代码块。可以提高变成的效率,也可以提高程序的可读性,便于后期的维护。
知识点:
语法:修饰符 返回值类型 方法名(参数列表){方法体}
调用:方法名(参数列表)
注意:若没有返回值,则声明类型用void

实列:

package nowcoder2.part02;



public class MethodDemo1 {
    public static void main(String[] args) {
        sayHello();
        printName("perth");
        int randomNum = randomInt();
        System.out.println("My lucky number is " + randomNum + " .");
        long p = power(2,10);
        System.out.println("2^10="+p);

    }

    //1.
    public static void sayHello(){
        System.out.println("Hello!");
    }

    //2.
    public static void printName(String name){
        System.out.println("My name is "+name+" .");
    }

    //3.
    public static int randomInt(){
        return (int) (Math.random() * 100);
    }

    //4.
    public static long power(int x,int y){
        return (long) Math.pow(x,y);
    }


  }

运行结果:

也可以将以上所有的几个方法写成一个方法调用:

package nowcoder2.part02;



public class MethodDemo1 {
    public static void main(String[] args) {
//        sayHello();
//        printName("perth");
//        int randomNum = randomInt();
//        System.out.println("My lucky number is " + randomNum + " .");
//        long p = power(2,10);
//        System.out.println("2^10="+p);

        introduce("perth");
    }

    //1.
    public static void sayHello(){
        System.out.println("Hello!");
    }

    //2.
    public static void printName(String name){
        System.out.println("My name is "+name+" .");
    }

    //3.
    public static int randomInt(){
        return (int) (Math.random() * 100);
    }

    //4.
    public static long power(int x,int y){
        return (long) Math.pow(x,y);
    }

    //5.
    public static void introduce(String name){
        if (name == null || name.equals(" ")){
            return;
        }
        sayHello();
        printName(name);
        System.out.println("My lucky number is " + randomInt() + ".");
    }
  }


运行结果:

方法参数

2.2 方法参数
通过一个例子说明:
发现调换两个整数类型的数失败,但调换数组里的元素成功
注:内存中分配空间 引用类型与基本类型的区别

package nowcoder2.part02;

import java.util.Arrays;


public class MethodDemo2 {
    public static void main(String[] args) {
        int a=1;
        int b=2;
        changeNum(a,b);
        System.out.println("a="+a+"" +" ,b="+b);
    }

    //交换两个数
    public static void changeNum(int m ,int n){
        int t = m;
        m = n;
        n = t;
        System.out.println("m="+m+" ,n="+n);
    }

}


此处可以看见a,b并未交换成功。

package nowcoder2.part02;

import java.util.Arrays;


public class MethodDemo2 {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};
        changeArr(array);
        System.out.println("array= " + Arrays.toString(array));
    }

    //交换数组中的两个元素
    public static void changeArr(int[] arr){
        if (arr==null||arr.length<2){
            return;
        }
        int x = arr[0];
        arr[0]=arr[arr.length-1];
        arr[arr.length-1] = x;
    }
}


此处可以发现数组的前后两个元素成功交换;

原理:

可变参数

2.3 可变参数
概念:在定义方法时,声明的数量不确定的参数。 本质是一个数组
声明:修饰符 返回值类型 方法名(类型 参数1,类型…参数N)(最后一个即为可变参数)
注意:只能有一个且访参数列表末尾。
实列:

package nowcoder2.part02;

public class MethodDemo3 {
    public static void main(String[] args) {
        System.out.println(sum());
        System.out.println(sum(1));
        System.out.println(sum(1,2));
        System.out.println(sum(1,2,3));
        System.out.println(sum(new int[]{1,2,3,4,5}));
    }
    //求和
    public static int sum(int...nums){
        int s=0;
        for (int num : nums){
            s+=num;
        }
        return  s;
    }
}

运行结果:

方法重载

2.4 方法重载
概念:在一个类中,定义多个名称相同,参数列表不同的方法,叫做方法重载;
查看:Ctrl+N->输入->structure->a-z




打开后发现代码繁多,可以通过首字母提示查看,

实列:

package nowcoder2.part02;

public class MethodDemo4 {
    public static void main(String[] args) {
        System.out.println(sum(1,2,3,4));
        System.out.println(sum(5.0,6.7,9.3));
        System.out.println(sum(5,6,9.3));
    }

    //求和:同意方法名,但参数类型不同
    //int
    public static int sum(int...nums){
        System.out.println("sum for int");
        int s=0;
        for (int num:nums){
            s=+num;
        }
        return s;
    }
    //double
    public  static double sum(double...nums){
        System.out.println("sum for double");
        double s=0;
        for (double num:nums){
            s+=num;
        }
        return s;
    }
}

方法递归

2.5 方法递归
概念:一个方法调用它本身,被称为方法递归; 递归是一种隐式的循环,他会重复执行某段代码,却无序循环控制。
作用:为某些编程问题提供了最简单的解决方案
注意:一些递归算法会快速消耗大量的CPU及内存资源,慎用慎用!!!
实列1:

package nowcoder2.part02;

public class MethodDemo5 {
    public static void main(String[] args) {
        System.out.println(factorial(5));
    }

    //阶乘  n!=n*(n-1)!
    public static long factorial(int n){
        if (n==1){
            return 1;
        }
        System.out.println(n);
        return n * factorial(n-1);
    }
}

运行结果:

实列2:

package nowcoder2.part02;

public class MethodDemo5 {
    public static void main(String[] args) {
        System.out.println(fibonaci(5));
    }
    //斐波那切数列
    //1,1,2,3,5,8,13,21,34,...
    //f(1)=1,f(2)=1,f(x)=f(x-1)+f(x-2)
    public  static long fibonaci(int n){
        if (n==1||n==2){
            return 1;
        }
        return fibonaci(n-1) + fibonaci(n-2);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号