首页 > 编程语言 >初学Java基础Day08 方法,方法的递归,方法的重载

初学Java基础Day08 方法,方法的递归,方法的重载

时间:2024-09-29 22:23:25浏览次数:9  
标签:Day08 Java int max void static 方法 public

一,方法

1.概念:

        特定功能的代码块

2.好处:

        减少代码的冗余

3.分类:

1.无参数无返回值的方法

2.带参数的方法

3.带返回的方法

4.理解:

        参数是方法调用时传入的数据,返回值是方法执行完毕后返回的数据

1.无参数无返回的方法

//语法结构:public static void 方法名(){
					...代码块....
			}

注意:public(访问修饰符)表示共有的意味着该方法在哪都可以调用

static 表示该方法为静态方法,静态方法直接使用类名调用

void 表示无返回值,该方法执行完毕后不会返回数据

方法写在类里,方法与方法之间是平级关系

方法必须被调用,不然永远是摆设,方法可以重复调用

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

        Test01.run();  //在主方法中用类名调用方法
        Test01.play();
        Test01.run();
        play();      //在同一个类中这种写法也可以去调用方法
        run();
    }
   public static void run(){
       System.out.println("跑的方法---");
   } 
   public static void play(){

       System.out.println("玩的方法");
   }
}

2.带参数的方法

//语法结构
		public static void 方法名(参数列表){

            ...代码块...
        }

案例:设计一个方法getMax,传入两个int类型的数字,输出最大值

public class Test01{

    public static void main(String[] args){
		
        //调用方法
        getMax(10,20);   //10和20 是实参
    }
    public static void getMax(int a,int b){   //a和b就是形参
        int max =(a>b)?a:b;
        System.out.println("最大值为:"+max);
    }
}

注意:形式参数-----形参:方法声明时设置的参数,参数必须设置类型,多个 参数用逗号隔开,

局部变量表示方法里的变量,其作用域只能在方法中使用;形参也是 局部变量

实际参数:--实参:调用方法是传入的具体参数;多个实参用逗号分 隔;实参与形参个数必须一致,类型必须兼容。

3.带返回值的方法

//语法结构:
		public static 返回值类型 方法名([参数列表]){
            ...代码块...
             return 具体数据;
        }

案例:设计一个方法getMax,传入两个int类型的数字,返回最大值

public class Test01{
        public static void main(String[] args){
			int max = getMax(10,20);
            System.out.println("最大值为:"+max);
        }
        public static int getMax(int a,int b){
            int max=(a>b)?a:b;
            return max; //1.将max返回给调用方  2.结束该方法
        }
    }

注意:方法声明时规定返回值类型;返回的具体数据必须和方法声明时返回 值类型兼容

方法功能的单一性(不要让一个方法的功能太强大,否则会导致其可维护性降低)

二,方法的重载

定义一个方法的步骤:1.考虑方法名 2.参数(几个参数,类型) 3.返回值(类型)

1.理解:

        方法与方法之间的关系

2.条件:

        方法必须在同一个类中;2.方法名必须一致 3.参数列表的个数或者类型 不一致;4.与返回值无关(重点!!!!)

3.好处:

系统会根据具体实参类型自动匹配到对应的方法中

案例:创建一个方法,传入两个int值,返回最大值;创建一个方法,传入三个int值,返回最大值;创建一个方法,传入两个double值,返回最大值;创建一个方法,传入三个double值,返回最大值

public class Test01{
    public static void main(String[] args){
        int max=getMax(10,20);
        System.out.println(max);
      //System.out.println(getMax(10,20)) 也可以直接打印,前提是该方法一定要有返回值
    }
    public static int getMax(int a,int b){
        int max = (a>b)?a:b;
        return max;
     //return (a>b)?a:b;    也可以直接这样写
    }
    public static int getMax(int a,int b,int c){
        int max=(a>b)?a:b;
        max=(max>c)?max:c;
        return max;
    }
    public static double getMax(double a,double b){
         int max = (a>b)?a:b;
        return max;
    }
    public static double getMax(double a,double b,double c){
        int max=(a>b)?a:b;
        max=(max>c)?max:c;
        return max;
    }
}

应用场景:一个类的多个方法的功能一致细节实现不一样,就可以考虑使用重载

三,方法的递归

前言:方法里声明的变量叫做局部变量,其作用域就在该方法的内部

概念:方法调用方法自身

经验:1.找规律 2.找出口

错误示范:

public static void main(String[] args){
    method();
}
public static void method(){

    method();
}//会显示 栈内存溢出 StackOverflowError

//错误出现的原因:调用方法就会在栈内存开辟空间,用于存放该方法的局部变量,死循环的调用方法,很快栈内存就被装满并溢出了

案例:设计一个方法,传入int类型的数字n,计算n的阶乘

public static void main(String[] args){
    int num = getMath(5);
    System.out.rontln(num);
}
public static int getMath(int n){
    if(n==1){
        return 1;
    }else{
        return getMath(n-1)*n;
    }
}

注意:方法结束栈内存里的空间会立刻销毁

标签:Day08,Java,int,max,void,static,方法,public
From: https://blog.csdn.net/2401_87491344/article/details/142623563

相关文章

  • 初学Java基础Day09---不死神兔,方法版本的万年历
    一,不死神兔(方法递归版)不死神兔也叫做斐波那契数列或者叫做黄金分割数列或者叫做兔子数列:不死神兔问题:有1对兔子,从出生后的第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月有几对兔子1.找规律当月兔子的对数等于上个月对数加上上......
  • 【Java】—— 常用类和基础API:JDK8之前日期时间API的使用:Date、SimpleDateFormat、Cal
    目录3.JDK8之前:日期时间API3.1java.lang.System类的方法3.2java.util.Date3.3java.text.SimpleDateFormat3.4java.util.Calendar(日历)练习3.JDK8之前:日期时间API3.1java.lang.System类的方法System类提供的publicstaticlongcurrentTimeMillis():用来返......
  • Java Deeplearning4j:构建和训练卷积神经网络(CNN)模型
    ......
  • JavaScript
    什么是JavaScript?JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言(脚本语言是不需要编译,直接通过浏览器的解释就可以运行)。是用来控制网页行为的,它能使网页可交互。JavaScript和Java是完全不同的语言,不论是概念还是设计。但是基础语法类似。JavaScript在1......
  • Java的原码、反码和补码
    在Java中,原码、反码和补码是用来表示整数的三种不同的编码方式。这三种编码方式分别用来表示正数、负数以及0。原码:原码是整数的最基本的表示方式,它直接将整数的二进制表示出来。原码的表示方法是,最高位表示符号位(0表示正数,1表示负数),其余位表示整数的绝对值的二进制表示。......
  • 计算机毕业设计-基于Java+SSM架构的程序设计课程可视化教学系统项目开发实战(附源码+
    大家好!我是职场程序猿,感谢您阅读本文,欢迎一键三连哦。......
  • python字符串方法详解
    str1='Hello'str2='World'str3='abc'#字符串拼接print(str1+str2)#HelloWorldprint(''.join([str1,str2]))#HelloWorld#获取字符串切片print(str1[0:4])#Hell获取字符串从索引0开始,到3print(str2[1:3])#or获取字符串从索引1开始,到2print((str1......
  • Java中流的学习
    流的基本概念目录流的基本概念一、流的基本概念二、流的分类三、流的使用场景四、流的特性Java中关于流(Stream)的知识是一个广泛而深入的主题,它涵盖了Java标准库中用于处理输入输出(IO)的多种抽象和类。以下是对Java流知识的详细归纳:一、流的基本概念定义:Java流是Java标准库中......
  • java管理系统
    一、考试要求:1、按照测试内容要求完成程序的设计与编程;2、建立学号姓名文件夹,如:“20234215柳泽羽”,将源程序文件、保存在文件夹中,压缩成rar文件提交。3、以班级为单位上交最终考试结果。4、需要在程序开始的注释中注明班级、学号、姓名。二、系统背景:某机械有限公司为了实现......
  • Java中的队列数据结构及其应用
    Java中的队列数据结构及其应用队列是一种线性数据结构,遵循先进先出(FIFO)的原则,即最先插入的元素最先被移除。队列的基本操作包括入队(enqueue)、出队(dequeue)和查看队头元素(peek)。本文将介绍队列的基本结构、操作及在JDK中的应用。队列的基本结构一个简单的队列可以用数组或......