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

java笔记7----java中的方法、递归,第1张

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);        //递归调用
        }
    }
    

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5707657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存