一、引言
在面向对象编程语言中,方法是组织和封装代码的基本单元。Java作为一种广泛应用的编程语言,提供了方法重载(Method Overloading)的特性,使得开发者能够在同一个类中定义多个同名但参数类型或参数个数不同的方法。方法重载是Java语言中的一项重要特性,它为程序员提供了一种便捷的方式来处理不同的输入情况,从而提高代码的灵活性和可读性。
而this关键字在Java编程中是一个常见的概念和用法。它在类的方法中经常被使用,能够指向当前对象,从而实现对当前对象的访问和操作。
二、方法重载:
(1)概念
方法重载是指在同一个类中定义多个方法,这些方法具有相同的名称但参数列表不同。参数列表的不同可以体现在参数的个数、类型或顺序上。当调用一个被重载的方法时,编译器会根据传入的参数类型和数量来确定具体调用哪个方法。方法重载并不改变方法的返回类型,只关注方法的签名(即方法名和参数列表)。
(2)作用
1.提高代码的灵活性:
通过方法重载,可以根据不同的需求使用相同的方法名进行调用,避免了为每种情况都定义一个独立的方法,减少了代码冗余。
2.提高代码的可读性:
方法重载使代码更加直观和易于理解。当方法名相同时,根据参数的类型和数量就能够很清晰地知道调用的是哪个方法,减少了对方法功能的猜测和混淆。
(3)规则:
在Java中,方法重载需要遵循以下规则:
- 方法名必须相同。
- 参数列表必须不同,可以体现在参数的个数、类型或顺序上。
- 返回类型可以相同也可以不同,但不能仅仅依靠返回类型来区分方法重载。
- 方法的修饰符可以相同也可以不同。
- 方法重载不能仅仅依靠访问修饰符的不同来实现,例如一个方法是public的,另一个是private的。
需要注意的是,当调用一个被重载的方法时,编译器会根据传入的参数类型和数量来选择最匹配的方法。如果存在多个方法都能匹配,编译器将选择最精确的匹配,如果找不到精确匹配的方法,编译器将报错。
public class Calculator {
public int add(int x, int y) {
return x + y;
}
public double add(double x, double y) {
return x + y;
}
public int add(int x, int y, int z) {
return x + y + z;
}
}
三、this关键字
(1)概念
在Java中,this关键字表示当前对象的引用,它可以用于访问当前对象的属性和方法。每个对象都有自己的this指针,它指向该对象所在的内存地址。当调用对象的方法时,this关键字就代表了当前对象,可以使用this来访问当前对象的成员变量和成员方法。
(2)this.的使用
this.属性名: 用来指明当前类的属性
this.方法名(实参列表):用来指明调用当前类的方法
有参构造标准语法:
public 类名(数据类型 属性名1,数据类型 属性名2,..){ this.属性名1=属性名1; this.属性名2=属性名2; .. }
示例:
public Student(String name, int age, String sex, double score){ //用对应形参给对应属性赋值 this.name = name;//属性=形参 this.age = age; this.sex = sex; this.score = score; } public Student(String name, int age) { this.name = name; this.age = age; }
(3)this()的使用
- 作用为调用本类的其他构造内容
使用
- 根据实参列表决定调用的是哪个构造内容
- 必须写在构造方法有效代码第一行
- 无法循环调用
public Student() {
//this();循环调用,错误!
this("lisi", 20, "男", 90.0);
}
//有参构造
public Student(String name, int age, String sex, double score){//name="张三" age=22 sex="男" score=90.5
//用对应形参给对应属性赋值
this(name, age);
this.sex = sex;
this.score = score;
}
public Student(String name, int age) {
//this(); 循环调用,错误!
this.name = name;
this.age = age;
}
四、对象的创建过程
- 又名属性的三个赋值时期
- 开辟空间,赋默认值
- 赋初始值
- 执行构造时再次赋值
package com.by.entity;
public class ClassB {
public ClassB(){
System.out.println("b");
}
}
class ClassC {
ClassB cb = new ClassB();
public ClassC(){
System.out.println("c");
}
}
class ClassD {
ClassB cb;
ClassC cc = new ClassC();
public ClassD(){
cb = new ClassB();
System.out.println("d");
}
}
class Test{
public static void main(String[] args) {
ClassD cd = new ClassD();//bcbd
}
}
五、结语
方法重载和this关键字是Java编程中常用的特性和关键字,它们都能够提升代码的灵活性和可读性。方法重载允许在同一个类中定义多个同名但参数列表不同的方法,通过根据传入参数的类型和数量来选择最匹配的方法,避免了代码冗余和重复定义的问题。而this关键字则提供了一种方便的方式来访问当前对象的属性和方法,调用构造方法以及返回当前对象。
通过合理运用方法重载,我们能够根据不同的需求使用相同的方法名进行调用,提高代码的灵活性和可读性。同时,使用this关键字可以清晰地表示当前对象,避免命名冲突和混淆,使代码更加直观和易于理解。
然而,在使用方法重载和this关键字时,我们也需要遵循一定的规则和注意事项。对于方法重载,需要确保方法名相同但参数列表不同,且不能仅仅依靠返回类型来区分方法重载。对于this关键字,需要注意它只能在实例方法中使用,且不能在类的外部使用。
综上所述,方法重载和this关键字是Java编程中强大且常用的特性和关键字,它们能够提高代码质量、开发效率和可维护性。合理运用它们,能够使代码更加灵活、易读和可扩展,为Java开发者带来更好的编程体验。