java(方法、重载)
2021-01-19
方法与方法重载
一、方法
方法
定义:<访问修饰符> 返回类型 <方法名>(<形式参数列表>){//方法的主体}
调用:对象名.方法名(<参数1,参数2...参数n>)
注意:<>里面可以不写,分为无参方法和有参方法。
方法传参
1、基本数据类型:操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值;(存储在栈中)
2、引用数据类型(类、接口、数组):赋值时把原对象的引用(内存地址)传递给另一个引用;(存储在堆中)
递归方法
1、必须定义一个方法,自己调用自己
2、会出现死递归的问题?
会出现栈内存溢出;
解决办法:找到出口,避免死递归;
例如:
从前有座山,山里有座庙,庙。。。
故事是。。从前。。。
3、死循环和死递归?
死循环:导致系统崩溃;
死递归:会出现栈内存溢出;
构造方法
定义:访问修饰符 类名(){//初始化代码快};//构造器
注意:无返回值类型、方法名与类名相同、可以指定参数;
作用:快速初始化(系统提供默认无参构造方法);
二、构造方法重载
自定义构造方法
1、方法名相同;
2、参数项不同;
3、与返回值、访问修饰符无关;(此时系统不再提供默认无参构造方法)
三、方法重载
方法重载
1、同一个类中;
2、方法名相同;
3、参数个数或类型不同;
4、与返回值、访问修饰符无关;
四、成员变量和局部变量的区别
1、位置不同
成员变量:类以内,方法外;
局部变量:方法参数列表和方法体内;
2、作用域不同:
成员变量的作用域在整个类内部都是可见的;
局部变量的作用域仅限用定义它的方法中;
3、初始值不用:
成员变量:系统会给成员变量一个默认的初始值;
局部变量:系统不会给局部变量赋予初始值,使用前需要先手动赋值;
4、生命周期不同:
成员变量:创建对象时候创建(堆),GC回收时销毁;
局部变量:调用方法时(栈);
注意:在一个方法中,不允许有同名局部变量,
在不同的方法中,可以有同名局部变量;
在同一个类中,成员变量和局部变量同名时,局部变量更具有更高的优先级;
五、this关键字
(只能访问本类的)
1、调用属性:this.name = "shen";
2、调用方法: this.show();
3、调用构造方法:this()或this(值);(如果使用,必须是第一条语句;且构造方法不能嵌套调用)

浙公网安备 33010602011771号