阅读873 返回首页    go 阿里云 go 技术社区[云栖]


Java基础知识—类的深层结构

在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可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

最后更新:2017-05-24 08:54:34

  上一篇:go  无人驾驶的分级以及产品化后会带来的改善
  下一篇:go  利用TFRecord和HDFS准备TensorFlow训练数据