Chinaunix首页 | 论坛 | 博客
  • 博客访问: 469129
  • 博文数量: 153
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1575
  • 用 户 组: 普通用户
  • 注册时间: 2016-12-20 17:02
文章分类

全部博文(153)

文章存档

2017年(111)

2016年(42)

我的朋友

分类: Java

2017-05-24 16:04:51

在Java中,可以在同一个类中定义两个或多个共享相同名称的方法,只要它们的参数声明不同就可以。当出现这种情况时,这些方法就被称为重载(overloaded),并且这一过程被称为方法重载(method overloading).方法重载也是Java支持多态性的方式之一。

当调用重载方法时,Java所使用参数的类型和/或数量决定了实际调用是哪个版本的方法。因此,重载方法在参数的类型和/或数量方法必须有所区别。虽然重载方法可以返回不同的类型,但是单靠返回类型不足以区分方法的多个版本。当Java遇到对重载方法的调用时,简单地执行方法形参与调用中所使用的实参相匹配的版本。

下面是一个演示方法重载的简单例子:

Java基础知识类的深层结构

Java基础知识类的深层结构

如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

可以看出,test()方法重载了4次。第1个版本没有采用参数,第2个版本采用一个整型参数,第3个版本采用两个整型参数,第4个版本采用一个double参数。虽然第4个版本的test()方法还返回一个值,但是这与重载没有什么因果关系,因为返回类型在重载版本的判断中不起作用。

Java基础知识类的深层结构

Java基础知识类的深层结构

重载构造函数:

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

参数传入的深入分析:

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

请记住:

当将对象引用传递给方法时,引用本身是使用值调用传递的。但是,由于传递的值引用一个对象,因此值的副本仍然引用相应实参指向的同一个对象。如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

返回对象:

方法可以返回任意类型的数据,包括自己创建的类类型。例如下面的程序中,方法incrByTen()返回一个对象,在该对象中,a的值比调用对象中的a的值大10.

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

递归:

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

Java基础知识类的深层结构

访问控制:

正如前天几天知识所说的,封装将操作数据的代码和数据链接起来。但是,封装提供了另外一个重要的特性:访问控制。通过封装,可以控制程序的哪些部分可以访问类的成员。通过控制访问,可以防止误用。例如,仅仅通过定义一套良好的数据访问方法,就可以防止对数据的误用。因此,如果类的实现正确的话,类就创建了一个可以使用的“黑匣子”,但是其内部工作不允许修改。

Java基础知识类的深层结构

类中的 static

Java基础知识类的深层结构

类中的 final

Java基础知识类的深层结构

嵌套类 与 内部类:

Java基础知识类的深层结构

如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。


阅读(1680) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~