前面已经学习了编写简单的构造器, 可以用于初始化对象。但是, 由于对象构造非
常重要, 所以 Java 提供了多种编写构造器的机制 。下面将详细地介绍这些机制 。
学完此次课程,我能做什么?
通过本次课程学习我们将了解Java面向对象编程又一重要特性,方法重载。
学习此次课程,需要多久?
5分钟
课程内容
重载
定义:如果一个类中,有多个相同的方法名,不同的参数,就是重载。执行哪个方法取决于传递了什么样的参数,如果匹配不到对应的参数就会报错。
Java可以重载任何方法,不仅仅是构造方法。例如String类有4个indexOf方法:
indexOf(int)
indexOf(int, int)
indexOf(String)
indexOf(String, int)
注意:如果编写一个类时没有编写构造器,那么系统会提供一个无参构造器,这个构造器将所有的实例域设置为默认值。如果写了多个构造函数,却没有无参数构造器会被视为不合法。
image由于上例中没有无参构造器,所以无法通过编译:
image自定义类,方法重载
我们定义一个Demo4类,4个say()方法。
image在Demo5中实例化,并且调用say()方法。
image输出结果:
image规范:
为了我们的程序可读,当构造方法的参数与类内的参数重名时,容易引起错误,所以通常在构造方法的参数名前加a。例如:
这样很清晰:每一个程序员一眼就能够看懂参数的含义 。
还有一种方法是通过this关键字,进行赋值。
image
网友评论