Java面向对象---方法递归调用

递归调用是一种特殊的调用形式,即方法自己调用自己

public int method(int num){

  if(num==1){

    return 1;

  } else {

    return num+method(num-1);

  }

}

描述:main方法调用method(5),在method方法中参数不等于1,则再调用method(4),一直到参数等于1,则依次返回。在该例中,参数等于1时,将1返回给method(2),依次类推,当返回到method(5)时,再将从1加到5的和返回给main方法。

时间: 2024-10-07 19:01:28

Java面向对象---方法递归调用的相关文章

Java面向对象-方法的重载

Java面向对象-方法的重载 所谓方法的重载, 类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载: 上代码: 1 package com.java1234.chap03.sec03; 2 3 public class Demo01 { 4 5 int add(int a,int b){ 6 System.out.println("方法一"); 7 return a+b; 8 } 9 10 /** 11 * 方法的重载,参数个数不一样

Java面向对象-方法的值传递和引用传递

Java面向对象-方法的值传递和引用传递 方法的值传递: 值传递 在方法里改变变量的值 作用范围仅仅是方法里 对外面不影响: 上代码: 1 package com.java1234.chap03.sec03; 2 3 public class Person { 4 5 void speak(int age){ 6 System.out.println("我今年"+age+"岁了"); 7 age=24; // 作用范围是方法里 8 } 9 10 public sta

Java中的递归调用

Java中不合理的使用递归调用,可能会导致栈内存溢出,这点是需要注意的. java将为每个线程维护一个栈,栈里将为每个方法保存一个栈帧,栈帧代表了一个方法的运行状态. 也就是我们常说的方法栈.最后一个为当前运行的栈帧. 那么每一次方法调用会为新调用方法的生成一个栈帧,保存当前方法的栈帧状态,栈帧上下文切换,切换到最新的方法栈帧. 在递归和循环之间选择时,应该优先选择的是循环而非递归,特别是要避免深度的递归. 关于递归还需要了解的是尾递归调用,尾递归调用是可以被进行优化的. 尾调用指的是一个方法或

Java面向对象-方法的定义及简单使用

Java面向对象之方法 方法是对象的一部分,也称为行为: 先来一个简单实例: 1 package com.java1234.chap03.sec03; 2 3 public class Person { 4 5 void speak(){ 6 System.out.println("我是张三"); 7 } 8 9 public static void main(String[] args) { 10 Person person=new Person(); 11 person.speak

Java中方法递归与File例题

1.有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?(不死神兔)(1)数组方式 package 递归.作业; public class TuziArray { public static void main(String[] args) { //定义数组 int arr[] = new int[100]; int m=20; arr[1] = 1;//前两个月兔子数量为1只 arr[2] = 1; arr[3

java面向对象方法的回顾

1.1 方法的回顾1.1.1 案例代码一: package com.itheima_01; /* * 需求:定义一个方法求两个数的和,并在主方法中调用 * * 方法:类中的一段具有特定功能的程序,提高了代码的复用性和可维护性 * 定义格式: * public static 返回值类型(没有返回值写void) 方法名(参数类型 参数名,参数类型 参数名2) {//形参 * 方法体; * } * 调用方式: * 有明确返回值类型: * 赋值调用,将方法的返回值赋值给一个变量 * 输出调用,使用输出语

Java面向对象——方法与封装

封装 什么是封装: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 如何实现封装: 修改属性的可见性,设为private. 建立共有的get/set方法,用于属性读写. 在get/set方法中加入属性的控制语句,对属性的合法值进行判断 便于使用者正确使用系统,防止错误修改属性 有助于系统之间的松耦合,提高系统独立性 提高软件的可重用性 降低了构建大型系统的风险 创建封装类 class Person { private String name

Java面向对象---方法的创建与重载

方法的创建 方法就是可重复调用的代码段. 定义: 访问修饰符 返回值类型 方法名(参数){ 方法主体 } 返回值类型:void(无返回值):基本数据类型:应用数据类型:类对象等. 方法名的命名规则:第一个字母小写,多个单词之间,后面单词的第一个字母大写.如userName. 参数:方法参数可以没有,可以是一个,也可以是多个.参数数据类型与返回值类型一样,可以是任意数据类型. 方法的重载 方法名相同,但是参数的类型或个数不同.通过传递的数据类型的不同或参数个数的不同来完成不同的功能.

24. java面向对象 - 方法重写

一.方法的重写 1. 定义 ? 在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置.覆盖.在程序执行时,子类的方法将覆盖父类的方法. 2. 要求 ? (1) 子类重写的方法必须和父类被重写的方法具有相同的方法名称.参数列表 ? (2) 子类重写的方法的返回值类型不能大于父类被重写的方法返回值类型 ? (3) 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限 子类不能重写父类中声明为private权限的方法 ? (4) 子类方法抛出的异常不能大于父类被重写方法的异常