面向对象02——关于方法重载的基础
一、成员方法
类成员主要包括两部分:成员变方法和成员变量
1.方法重载(overloading)
1.1 定义:
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数。
1.2 特点:(同名 不同参 返回值无关)
(1)在同一个类中
(2)方法名相同
(3)参数的个数不同
类型不同
(4)方法的返回值不能作为判断方法之间是否构成重载的依据
2 .方法重载的使用
简述:在方法形成重载之后,在对象的后面使用“ . ”时,显示可供选择的信息
例://Preson类
public class Preson {
public String name; //姓名
public String gender; //性别
public int age; //年龄
//无参方法
public void work(){
System.out.println(this.name+"的工作是:经理");
}
//重载带参的方法
public void work(String job){
System.out.println(this.name+"的工工作是:"+job);
}
}
//PresonWork类
class PersonWork {
public static void main(String[] args) {
Preson preson1=new Preson(); //实例化对象
preson1.name="张三"; //对象赋值
preson1.gender="男";
preson1.age=23;
preson1.work(); //调用无参方法
preson1.work("董事长"); //调用重载的有参方法
}
}
3.方法重载的优点
方法重载其实是对原有方法的一种升级,可以根据参数的不同,采用不同的实现方法,而且不需要编写多个名称,简化了类调用方法的代码。
二、成员变量与局部变量
1.成员变量(全局变量)
类中的属性,也就是直接在类方法中定义的变量成为成员变量,也叫全局变量,它定义在方法的外部。
2.局部变量
在方法中、方法的参数列表中、结构语句中定义的变量称为局部变量。
3.成员变量与局部变量的区别
(1) 作用域不同:
局部变量的作用域仅限于定义它的方法,在该方法外无法访问它。
成员变量的作用域在整个类的内部都是可见的,即所有的成员方法都可以使用它,如果访问权限允许,还可以在类的外部使用成员变量。
(2) 初始值不同:
对待成员变量如果类定义中没有给它赋予初始值,系统会给它一个默认值
基本数据类型的默认值为0;
引用数据类型的默认值为null;
局部变量不会被赋予初始值,因此局部变量必须要定义并赋值后再使用。
(3) 是否可同名:
在同一方法中,不允许有同名的局部变量;在不同的方法中是可以存在同名的局部变量。
局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。
三、构造方法
1.构造方法的定义
构造方法的主要作用是进行一些数据的初始化
格式:
[访问修饰符]方法名([参数列表]){
//已省略方法体代码
}
2.构造方法的特点
2.1 构造方法没有返回值,但也不是void
2.2 .默认构造方法没有参数,因此参数列表可选
2.3 构造方法的方法名与类名相同
例:
public class Preson{
public String name;
public Preson(){ //无参构造方法
this.name="张三"; //给对象赋值
}
}
注:1.如果没有自定义构造方法,系统会自动添加默认构造方法,默认构造方法没有参数, 即是默认构造方法是无参构造方法;
2. 如果自定义了一个或多个构造方法,则系统不会自动添加默认构造方法
3.构造方法的重载
构造方法亦可重载,即在同一个类中可以定义多个重载的构造方法。
例:
public class Preson{
public String name; //姓名
public String gender; //性别
public int age; //年龄
public Preson(){ //无参构造方法
this.name="张三"; //给对象赋值
this.gender="男";
this.age=21;
}
public Preson(String name,String gender,int age){ //带参构造方法
this.name;
this.gender;
this.age;
}
}
4.this关键字的使用
定义:this关键字是对一个对象的默认引用。每个实例方法内部都有一个this引用变量,指向调用这个方法的对象。
this使用实例:
(1)使用this调用成员变量,解决成员变量和局部变量的同名冲突
例:public void setName(String name){
this.name=name; //成员变量和局部变量同名,必须使用this
}
public void setNmae(String xm){
name=xm; //不同名,this可省略
}
(2)使用this调用方法
public void play(int n){
health=health-n;
this.print(); //this调用同一类中的方法可以省略,不同类中的方法不能省
}
(3)使用this调用重载的构造方法,只能在构造方法中使用,且必须是构造方法的第一条语句
public Preson (String naem,String sex){
this.naem=name;
this.sex=sex;
}
public Preson(String naem , String sex , int health , int love){
this(name,sex); //调用重载的构造方法
this.health=health;
this.love=love;
}
四、总结
学习方法重载所需要掌握的知识点
1.了解掌握成员变量和局部变量的定义与作用域;
2.熟悉掌握(无返回值,有返回值,无参,带参)方法的写法,并学会方法的重载;
3.学会学定义构造方法,并理解构造方法的重载(后期常用);
4.理解并熟悉关键字“this”的使用。
浙公网安备 33010602011771号