1.方法递归:
1)能解决的问题:
①各种数学问题:8皇后问题,阶乘问题,迷宫问题,
②各种算法也会使用到递归。比如快排,归并排序,二分查找,分治算法
概念::一个方法体内调用它本身。
调用演示:
2)规则:
①执行一个方法时,就会创建一个新的受保护的独立空间(栈空间)
②方法中的局部变量是独立的,不会相互影响
③如果方法中使用的是引用类型变量,就会共享该引用类型的数据
④递归必须向退出递归的条件逼近,否则就是无限递归
⑤当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用就将结果返回给
谁。
2.方法重载
1)介绍:
java中允许同一个类中,多个同名方法的存在,但要求 形参列表不同
2)使用细节:
① 方法名必需相同 ;
② 形参列表不同(形参个数,类型,或顺序至少一个不同,,参数名无要求)
③返回类型无要求
3.可变参数
1)概念:
java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。
2)语法: 访问修饰符 返回类型 方法名(数据类型… 形参名)
3)使用细节:
①可变参数的实参可以是0个或任意多个
②可变参数的实参可以是数组
③可变参数的本质是数组
④可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后
⑤一个形参列表只能出现一个可变参数
4.构造方法。
1)构造方法又叫构造器,是类的一种特殊方法。用于新对象的初始化。
2)特点 :
①方法名和类名相同。
②没有返回值,//也不写void
③在创建对象的时候,系统会自动的调用该类的构造器完成对象的初始化。
3)细节:
①一个类可以有多个不同的构造器,即构造器重载;
②构造器名必须和类名相同;
③构造器用于完成对象初始化,不会创建对象;
④创建对象的时候系统会自动调用构造器;
⑤如果程序员没有定义构造方法,系统会自动给类生成一个无参构造方法(默认构造 方法);
⑥一旦程序员定义自己的构造器,默认的构造器即被覆盖,不能再使用。
补充:
1. 作用域:
1)在java编程中,主要的变量就是属性(成员变量)和局部变量
2)局部变量一般指在成员方法中定义的变量
3)作用域分类:
全局变量:属性,作用域为整个类体
局部变量:除了属性之外的其他变量,作用域为定义他的代码块
4)全局变量可以不赋值,直接使用(具有默认值),局部变量必须赋值后使用,(无默认值);
5)细节
① 属性和局部变量可以重名,访问是遵循就近原则
②在同一个作用域中,变量不可重名
③属性生命周期长,伴随对象的创建而创建,随对象的销毁而死亡
局部变量生命周期短,伴随代码块执行而创建,随代码块结束而死亡
④作用域范围不同:
全局变量/属性:可以被本类或其他类使用(对象调用)
局部变量:只在本类对应的方法中使用
⑤修饰符不同: 全局变量/属性可以加修饰符 局部变量不能加修饰符
2.this关键字
1)内存理解:
哪个对象调用,this就代表哪个对象;
2细节:
①this可以访问本类的属性,方法,构造器;
②this用于区别当前类的属性和局部变量;
③访问成员方法的语法:this.方法名(参数列表);
④访问构造器的语法: this.(参数列表); //只能在构造器中使用且必须放在第一个语句,一个构造器内只能调用一个构造器
⑤this不能在类的定义外部使用,只在类定义的方法中使用。