成员方法
语法规则:
class 类名{
返回值类型 成员方法名 (形参列表){
成员方法体;
}
}
class Person{
void showName(name){
System.out.println(name);
}
}
第二个单词起,首字母大写
格和函数类似
成员方法主要用于编写描述该方法功能的语句块
成员方法可以实现代码的重用
方法的调用:
引用变量名.成员方法名(实参列表);
无参数成员方法
如,
void show (){
sout("name = "+name);
sout("age = "+age);
}
有参数, 无返回值的方法
void change(int a , int b){
x=a;
y=b;
}
参数传递的注意事项
基本数据类型的变量 作为方法的参数传递时,形参数值的改变,不会影响到实参的数值
引用数据类型的变量,作为方法的参数传递时,形式参数值的改变,会影响到实参数的值
二、方法和封装
构造方法
构造方法名 和 类名 相同
没有返回值类型
可以有多个构造方法,如,有参数的构造方法 和 无参数的构造方法,方便调用
new Person(); 会调用构造放方法;若没有定义构造方法,则为默认构造方法 Person(){}
构造方法的作用:
通过构造方法传参数,初始化成员变量
案例:
实现Point类的构造方法
默认创建x,y值为原点的Point类的实例化对象
以及,可以传参创建的Point类的实例化对象 Point(int i, int j)
重载Overload
同名成员方法,根据参数个数、类型、参数顺序的不同
,在调用方法时,编译器自动识别,实现重载
只有参数的变量名不同时,无法实现重载
只有返回值不同时, 无法实现重载
案例:
Point类,自定义成员方法,纵坐标减1
自定义成员方法,纵坐标减去指定的参数值
this关键字
在构造方法中的 this,代表当前正在构造的对象, 即实例化后的对象
在成员方法中的 this,代表当前正在调用的对象,
正在构造的对象,和正在调用的对象,是同一个实例化对象
this 代表当前类 类型的引用变量
this 指向 类
工作原理:
类中的成员变量, 在使用时,默认隐含 this 关键字,完整格式为 this.name
this 代表的是当前实例化的对象,所以不同的对象分别调用同一个成员方法时,会有不同的结果
使用方式:
1.当成员方法中的形参和成员变量名同名时,编译器无法识别,都默认为带有this的成员变量this.name 和形参name区分
2.作为方法的返回值
``` Point getPoint() { return this; }
Point point = new Point(); // 调用成员方法 Point point2 = point.getPoint();
// 这样调用之后,point 和 point2 会指向同一个实例化对象 ```
3.在构造方法的第一行,可以使用 this 关键字调用构造方法,
``` // 无参数构造方法 Boy() { // 调用的是有参数的构造方法,传入参数“Benjamin” this("Benjamin"); }
// 有参数构造方法 Boy(String name) { this.name = name; } ```
注意引用变量的数字可以为空,但是会导致空指针异常
案例1: n 的阶乘
递推方式
递归方式
案例2: 费式数列/斐波那契数列
递推方式
递归方式