Introduction to Java Constructors

A java constructor has the same name as the name of the class to which it belongs. Constructor’s syntax does not include a return type, since constructors never return a value.
Constructors may include parameters of various types. When the constructor is invoked using the new operator, the types must match those that are specified in the constructor definition.
Java provides a default constructor which takes no arguments and performs no special actions or initializations, when no explicit constructors are provided.
The only action taken by the implicit default constructor is to call the superclass constructor using the super() call. Constructor arguments provide you with a way to provide parameters for the initialization of an object.
Below is an example of a cube class containing 2 constructors. (one default and one parameterized constructor).

public class Cube1
    {
        int length;
        int breadth;
        int height;
        public int getVolume()
        {
            return (length * breadth * height);
         }
        Cube1()
        {
            length = 10;
            breadth = 10;
            height = 10;
        }
        Cube1(int l, int b, int h)
        {
            length = l;
            breadth = b;
            height = h;
        }
        public static void main(String[] args)
        {
            Cube1 cubeObj1, cubeObj2;
            cubeObj1 = new Cube1();
            cubeObj2 = new Cube1(10, 20, 30);

            System.out.println("Volume of Cube1 is : " + cubeObj1.getVolume());
            System.out.println("Volume of Cube1 is : " + cubeObj2.getVolume());
        }
     }

Note: If a class defines an explicit constructor, it no longer has a default constructor to set the state of the objects.
If such a class requires a default constructor, its implementation must be provided. Any attempt to call the default constructor will be a compile time error if an explicit default constructor is not provided in such a case.

0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More