minte9
LearnRemember



Constructors

Every class you create has a constructor, even if you don't write one.
 
/**
 * Constructor use the class name and has no return type.
 * You could have more than one constructor in a class.
 */

package com.minte9.oop.constructors;

public class Constructors {
    public static void main(String[] args) {

        new A().test();
        new B("aaa");
        new B(100);

        /*
            Default constructor used
            Constructor 1 - aaa
            Constructor 2 - 100
        */
    }
}

class A {
    
    /*
        public Output() {
            // default constructor
        }
    */

    public void test() {
        System.out.println("Default constructor used");
    }
}

class B {
    
    public B(String s) {
        System.out.println("Constructor 1 - " + s);
    }
    
    public B(int i) {
        System.out.println("Constructor 2 - " + i);
    }
}

This

To call another constructor from the same class use this() method.
 
/**
 * To call another constructor from the same class ...
 * use this() method.
 */

package com.minte9.oop.constructors;

public class This {
    public static void main(String[] args) {
        
        Rectangle a = new Rectangle();
        Rectangle b = new Rectangle(100, 200);
        Rectangle c = new Rectangle(300, 400, 11, 22); // Look Here

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        /*
            W: 0 H: 0 x: 0 y: 0
            W: 100 H: 200 x: 0 y: 0
            W: 300 H: 400 x: 11 y: 22
        */
    }
    
}

class Rectangle {

    private int x, y;
    private int width, height;
    
    public Rectangle() {
        this(0, 0, 0, 0); // Look Here
    }
    
    public Rectangle(int width, int height) {
        this.width = width;
        this.height = height;
    }
    
    public Rectangle(int width, int height, int x, int y) {
        this(width, height);
        this.x = x;
        this.y = y;
    }

    public String toString() {
        return String.format(
            "W: %s H: %s x: %s y: %s", width, height, x, y
        );
    }
}



  Last update: 396 days ago