Constructors
suggest changeConstructors are special methods named after the class and without a return type, and are used to construct objects. Constructors, like methods, can take input parameters. Constructors are used to initialize objects. Abstract classes can have constructors also.
public class Hello{ // constructor public Hello(String wordToPrint){ printHello(wordToPrint); } public void printHello(String word){ System.out.println(word); } } // instantiates the object during creating and prints out the content // of wordToPrint
It is important to understand that constructors are different from methods in several ways:
- Constructors can only take the modifiers
public
,private
, andprotected
, and cannot be declaredabstract
,final
,static
, orsynchronized
. - Constructors do not have a return type.
- Constructors MUST be named the same as the class name. In the
Hello
example, theHello
object’s constructor name is the same as the class name. - The
this
keyword has an additional usage inside constructors.this.method(...)
calls a method on the current instance, whilethis(...)
refers to another constructor in the current class with different signatures.
Constructors also can be called through inheritance using the keyword super
.
public class SuperManClass{ public SuperManClass(){ // some implementation } // ... methods } public class BatmanClass extends SupermanClass{ public BatmanClass(){ super(); } //... methods... }
See Java Language Specification #8.8 and #15.9
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents