java中方法的知识点和递归调用

 方法执行原理:(方法不调用不执行,调用才执行)
 *   方法在调用的这时候,才会在内存中划分空间
 *   方法在调用的时候,是在栈内存中分配的空间(jvm有一块内存是栈内存)

* 函数/方法目的: 还是为了代码重用
 * 相同的类型的操作,不容重复的写代码
 * 函数/方法:就是一段有名字的代码段

* 方法的定义
 *  [方法修饰符列表] 方法返回值类型 方法名(参数1,参数2,参数3....){
 *          执行语句;
 *  }
 *
 *  方法修饰符列表是可选的:权限控制的:public protected private /static
 *  返回值类型:11中数据类型中的任意一种类型
 *  没有返回值就:void
 *  方法名只要是合法的标识符即可
 *  方法形参列表,多个逗号隔开,形参也要指明数据类型;
 *      形参:是指在函数/方法定义处,那些参数;数据类型 变量名, 数据类型,变量名,
 *      实参:是指在函数调用处,传入的那个参数.
 *  在方法体内部,如果有返回值(类型),用return语句;且return是结束函数的作用
 *  方法的调用:从内存数据结构来讲就是压栈
 *  方法的结束:从内存数据结构来讲就是弹栈

*   方法的重载:
 *          同一个类中,方法名相同,参数列表不同的方法叫方法的重载;
 *          参数列表不同:可以是参数个数不同,可以是参数数据类型不同
 *          方法的重载和返回值,和修饰符列表无关.
 *  :这个十一中数据结构,就像弹夹,薯片盒子,后进去先出来

下面是递归调用的例子:

public class Method_10{
    public static void main(String[] args){  //方法main入口
        int i=100;  //声明数据类型i,赋值为100
        m_1(i); //调用m1方法,赋值i为100
        System.out.println( "hello world" );//调用m1后完成赋值,输出内容
    }
        public static void m1(int i){ //声明m_1方法
           m_2(i) ; //调用m_2方法,i赋值为100
           System.out.println( "方法m_1被调用了" );//运行原理:m_1方法中调用好了m_2,声明m_2方法并调用方法m_3,声明方法m_3,在m_3中输出"m3的方法中i="+i;输出m_3被调用了,i被赋值为100,m_3运行完后返回调用m_3处,在m_2声明中,m_3调用运行完成,输出方法m_2被调用;声名m_2运行完后,返回调用m_2处,在声明m_1中,m_2运行完成,输出"方法m_1被调用",返回调用m_1处,输出"hello word"
    }
    public static void m_2(int i){
            m_3(i);
            System.out.println( "方法m_2被调用了" );
        
    }
    public static void m_3(int i){

        System.out.println( "m_3方法中的i="+ i );
        System.out.println( "方法m_3被调用了" );
    }
}

     这是我刚学习的内容,印象还比较深刻,所以总结一下,记录下来,方便以后查看,本文内容都是我根据自己的理解写下来的,有什么不对的地方还希望和大家多多交流,O(∩_∩)O谢谢!

时间: 2024-10-06 20:38:45

java中方法的知识点和递归调用的相关文章

黑马程序员-java中方法的知识点和递归调用

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 方法执行原理:(方法不调用不执行,调用才执行)  *   方法在调用的这时候,才会在内存中划分空间  *   方法在调用的时候,是在栈内存中分配的空间(jvm有一块内存是栈内存) * 函数/方法目的: 还是为了代码重用  * 相同的类型的

java中获取所有文件--(递归调用)

import java.io.File;import java.io.*; //获取一个文件夹中的所有的文件.  /*    打印要求:      -- a.txt   -- IO.doc      -- ~$IO.doc   -- 代码   -- --.metadata   -- --Day18   --视频   -- --01 线程通信.wmv   -- --02 守护线程和join方法.wmv   -- --03 Filed的创建.wmv   -- --04 File的常用方法.wmv  

Java方法的嵌套与递归调用

Java方法的嵌套与递归调用 本文关键字:方法.嵌套.递归.经典问题 一.方法的嵌套 1. 概念解读 方法嵌套的概念其实比较好理解,就是在调用方法的过程中又遇到了方法的调用,在刚开始接触的时候虽然在逻辑上能够理解为什么运行结果是这样的,但是对于代码执行的过程还是感觉有些绕. 2. 方法嵌套 在编程中最常见的就是方法与方法之间的调用嵌套,因为通常情况下,我们解决一个问题不会只靠一个方法.而且如果一个方法所提供的功能十分强大,那势必其中的代码逻辑和参数列表也会变的相对复杂,不利于修改和使用,所以我们

java中方法调用

JAVA中方法的调用[基础] 一.调用本类中的方法 方法一.被调用方法声明为static ,可以在其他方法中直接调用.示例代码如下: public class HelloWord { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str="HelloWord!"; int a=0; int b=a+1; int result=

java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题

1 /* 2 对于类中对成员变量的初始化和代码块中的代码全部都挪到了构造函数中, 3 并且是按照java源文件的初始化顺序依次对成员变量进行初始化的,而原构造函数中的代码则移到了构造函数的最后执行 4 */ 5 import static java.lang.System.out; 6 7 public class PersonDemo 8 { 9 public static void main(String[] args) 10 { 11 //*********测试父类与子类之间的循环调用的问

java中多线程执行时,为何调用的是start()方法而不是run()方法

Thead类中start()方法和run()方法的区别 1,start()用来启动一个线程,当调用start()方法时,系统才会开启一个线程,通过Thead类中start()方法来启动的线程处于就绪状态(可运行状态),此时并没有运行,一旦得到CPU时间片,就自动开始执行run()方法.此时不需要等待run()方法执行完也可以继续执行下面的代码,所以也由此看出run()方法并没有实现多线程. 2,run()方法是在本线程里的,只是线程里的一个函数,而不是多线程的.如果直接调用run(),其实就相当

java中方法的定义

java中方法的定义: [修饰符]   [修饰符]   [返回值类型] 方法名字 [形参列表] //带[]的可以省略,返回值类型不能省略. 就拿main方法来说,public         static       void       main (String[] args){ 方法体: return 返回值://返回值要与返回值类型相匹配.没有返回值的话,返回值类型用void; } 方法的定义:为了完成某项功能,封装的一系列代码的集合: 方法的调用:同一个类中可以直接用方法名():调用:但

java中方法的重载与重写的区别

JAVA中方法的重载与重写 1)  方法的的参数上看:重载后的方法与源方法在参数的类型以参数列表的顺序上会发生改变,而重写后的方法在参数的数据类型与参数列表的顺序不会发生改变 2)原方法是否对被覆盖:重载后的方法不会覆盖原方法,而重写后的方法会覆盖父类中的方法,调用时也只会调用重写后的方法. 3)调用方法的对象上:重载后的方法被调用时,调用对象不同时,调用的方法不同,产生的结果也不同:而重写后的方法被调用时,无论调用的对象是父类或者子类的对象,调用的方法相同,产生的结果也一样

Java基础---Java中方法的重裁(四十一)

Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载: 问: 如何区分调用的是哪个重载方法呢? 答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行.如: 运行结果: 判断方法重载的依据: 1. 必须是在同一个类中 2.