Java方法重载

1. 区分过载方法
若方法有同样的名字,Java 怎样知道我们指的哪一个方法呢?这里有一个简单的规则:每个过载的方法都必须采取独一无二的参数列表。

2. 基本数据类型的过载
若我们的实参范围比型参窄,则能从一个“较小”的类型自动转变成一个“较大”的类型。若我们的实参范围比型参宽,就必须用括号将其转为适当的类型。如果不这样做,编译器会报告出错。

3. 返回值过载(为什么不可以)
因为我们也可能调用一个方法,同时忽略返回值;我们通常把这称为“为它的副作用去调用一个方法”,因为我们关心的不是返回值,而是方法调用的其他效果。所以不能根据返回值类型来区分过载的方法。

4. this 关键字
如果有两个同类型的对象,分别叫作a 和b,那么您也许不知道如何为这两个对象同时调用一个 f()方法:

class B { 
    void f(int i) {  } 
}
B a = new B(), b = new B();
a.f(1);
b.f(2);

若只有一个名叫f()的方法,它怎样才能知道自己是为 a 还是为 b 调用的呢?
为了能用简便的、面向对象的语法来书写代码——亦即“将消息发给对象”,编译器为我们完成了一些幕后工作。其中的秘密就是将准备操作的那个对象的句柄传递给方法f()。所以前述的两个方法调用就变成了下面这样的形式:
B.f(a,1);
B.f(b,2);

this的用处
1)通过 this 关键字返回当前对象的句柄,所以可以方便地对同一个对象执行多项操作。
2)在构建器里调用构建器,若为一个类写了多个构建器,那么经常都需要在一个构建器里调用另一个构建器,以避免写重复的代码。可用this 关键字做到这一点。
5. static 的含义
理解了 this 关键字后,我们可更完整地理解 static(静态)方法的含义。它意味着一个特定的方法没有this。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值