一.方法的重载 overload
概念:一个类中,一个功能的方法多种体现形式(有不同的方法体)
如何判定一个方法是不是重载
1.在同一个类中
2.方法名必须一致
3.参数列表必须不同(个数,顺序,类型)
4.与返回值无关 和任何返回值都无关
优点:
1.简化了开发压力
2.简化了记忆压力
3.调用方法更方便,更简洁,又满足了不同的情况
基本原理
当方法名一致时,通过形参列表的不同来选择要执行的方法
二.构造方法
构造方法是一个很特殊的方法
作用:用来new对象
注意:方法名与类名相同
2.没有返回值
3.只能又访问权限的修饰符,不能用static
4.当没有声明任何构造方法的时候,系统会默认添加一个无参构造方法,当你加了任何一个构造方法,
编译器提供的无参构造方法就不在了。
三.this关键字
词义:这个。
2.3.1 就近原则问题
当写代码的时候,要给成员变量,参数,局部变量等等,要进行命名。根据见名知意的原则,很容易就命名冲突了。
在程序当中,有个就近原则,一旦名字冲突,就要看离哪个声明近。
导致名称中成员变量和局部变量的命名冲突!!!
publicPerson(Stringname,intage){//name="李小花"
name=name;//=两侧的name,都是指参数
age=age;
}
因为命名规范,见名知意,成员变量和局部变量,命名相同了。
因为就近原则问题:构造方法Person中,name和age,都会看成了这个参数,就是局部变量。
希望有一种方式,来告诉编译器:=左边的是成员变量,=右边的才是参数。
可以借助于this这个关键字解决。
2.3.2 this的用法一
表示当前对象。
this.属性,没有this的就是局部变量。可以解决命名冲突的问题。
publicPerson(Stringname,intage){//name="李小花"
this.name=name;//=左侧的是this的name属性
this.age=age;
}
使用this关键字,明确的告诉编译器,this后的这个name,就是成员变量。对象的属性。没有this的就是参数。
解决成员变量和局部变量的命名冲突。
this点的就是成员变量,没有this的就是局部变量。
2.3.3 this的用法二
this()指代当前类的构造方法。
this(参数),就表示的构造方法。
如果一个类中,有多个构造方法,之间存在了调用关系,那么使用this()来指代这个构造方法。具体指代哪个构造方法,要靠参数来区分。
注意点:当this()指代构造方法,那么必须放在首行。
2.4、匿名对象
2.5、封装性
三、总结
1、方法的重载:overload
概念:一个功能的多种形式。
理解:一个功能,根据参数的不同,执行的具体的方法也不同。
衡量多个方法是否是重载:
A:同一个类中
B:方法名必须一致
C:参数列表必须不同:顺序,个数,类型
2、构造方法:
概念:就是一个特殊的方法。声明,调用,作用。
声明的语法:
public类名(){}
调用:
new关键字来进行调用。
作用:
创建对象。
注意点:
1、如果一个类,没有写构造方法,那么编译器会自动添加一个无参的构造方法。
2、如果一个类,写了构造方法,那么编译器不再添加。
分类:
无参构造:创建对象。
有参构造:创建对象,并给属性初始化赋值。
classPerson{
Stringname;
intage;
publicPerson(){}
publicPerson(Stringname,intage){
this.name=name;
this.age=age;
}
}
3、this关键字
用法一:指代本类的对象的。
就可以访问属性和方法。this.属性,this.方法
用法二:指代本类的构造方法。this()
如果一个类中,有多个构造方法,靠参数来区分。指代构造方法时,要放在首行。