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

java笔记7----java中的方法、递归

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

java笔记7----java中的方法、递归

1、方法

    方法的定义

    在程序开发的过程中,会编写到很多重复的代码,,可以使用方法对这些代码进行管理,可以使用方法实现对代的管理和重用(重复使用),可以把方法理解成一个可以重复多次使用的功能。

    方法的格式

    在给方法和变量起名的时候都要注意,一定要起个有意义的名字,做到见名知意。

    [访问权限] [修饰符] 返回类型 方法名称(参数类型 参数) {
    	方法体;
    	return 返回参数 ;
    }
    //如:返回一个学生信息
    public static String getInfo() {
        return "【学生信息】:n" + "学生姓名:" + getName() + "、学生年龄:" + getAge() + "、学生性别:" + getSex();
    }
    

    方法都有哪几种方法

    根据返回值类型的不同和是否有参数可以分为

    返回值有无参
    void(无返回值)有参数/无参数
    引用数据类型(类)有参数/无参数
    基本数据类型有参数/无参数

    代码如下:

    //无返回值无参数
        public static void main(String[] args) {
            //调用打印功能语句
            //无参数无返回值的方法
            printInfo();
        }
        
        public static void printInfo(){
            System.out.println("这是一个打印功能,调用此功能可以打印一些东西");
            System.out.println("一些东西");
        }
    
    //无返回值有参数
    	public static void main(String[] args) {
            //调用打印功能语句
            printInfo("星期一");
        }
    
        
        public static void printInfo(String week){
            System.out.println("***************");
            System.out.println("今天是:" + week);
            System.out.println("***************");
        }
    
    
    	public static void main(String[] args) {
            //调用打印功能语句
            //有返回值无参数
            String str = getInfo();
          	System.out.println(str);
          	//或者直接
          	System.out.println(getInfo());
        }
    	//有返回值无参
    	//如:返回一个String类型的字符串信息
    	public static String getInfo() {
        	return "【学生信息】:n" + "学生姓名:" + getName() + "、学生年龄:" + getAge() + "、学生性别:" + getSex();
    	}
    
    //有返回值有参数类型
    	public static void main(String[] args) {
            //调用打印功能语句
            //有返回值无参数
            double sum = sum(1,2);
          	System.out.println(sum);
          	//或者直接
          	System.out.println(sum(1,2));
        }
    
        
        public static double sum(double num1,double num2) {
            return num1 + num2;
        }
    

    方法的重载(Overload)

    方法重载是方法重用的一种表现形式。

    特点:

    ​ 方法名称相同,而参数列表(参数的类型、个数)不同。

    ​ 返回类型可以相同也可以不同。

    通过求和案例实现方法重载:

    public class Test2 {
        public static void main(String[] args) {
            int result1 = sum(1,2);
            int result2 = sum(1,2,6);
            double result3 = sum(1,5.5);
          //下面这三个print语句也可以理解为一种方法重载
            System.out.println(result1);
            System.out.println(result2);
            System.out.println(result3);
        }
        
        public static int sum(int num1, int num2){
            return num1 + num2;
        }
        
        public static int sum(int num1, int num2, int num3){
            return num1 + num2 + num3;
        }
        
        public static double sum(double num1, double num2){
            return num1 + num2;
        }
    }
    

    方法递归

    ​ 方法递归指的是方法自己调用自己

    使用递归需要注意:

    ​ 使用递归的时候需要注意要提供出口(结束条件)! 这个最最最重要,否则会造成死循环,产生内存溢出。

    ​ 每次递归都会根据递归需求,改变传递的参数内容

    递归代码1:

    public class Test3 {
        public static void main(String[] args) {
            //打印到1 + .. + 100的结果
            System.out.println(sum(100));
        }
        
        public static int sum(int num){
            //设置出口
            if (num == 1){
                return 1;
            }
            return num + sum(num - 1);
        }
    }
    

    递归代码2:

    public class Test4 {
        public static void main(String[] args) {
            //打印3的阶乘     结果为6
            System.out.println(factorial(3));
            //1! + 2! + 3! +... + 10!
            System.out.println(sum(10));
        }
        
        public static int sum(int n){
            //设置出口
            if (n == 1) {               //如果n = 1,则直接返回factorial(1)
                return factorial(1);
            }
            return factorial(n) +  factorial(n-1);
        }
    
        
        public static int factorial(int num){
            //设置出口
            if (num == 1){          //如果num为1,则直接返回1
                return 1;
            }
            return num * factorial(num - 1);        //递归调用
        }
    }
    

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

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

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