sometimes I reason some basic stuff. This time for instance, can I avoid constructor in java with following,

*please consider that I understand that default constructor will be provided by jvm anyway*

```
    class TestConstructor {

private String cusName;
private String dbConnectionURL;
private Customer cus;

// avoiding constructor through this init method
public void init(String cusName, String dbConnectionURL, Customer cus) {
    this.cus = cus;
    this.dbConnectionURL = dbConnectionURL;
    this.cusName = cusName;
}

public boolean connectToDatabase(some parameter)

    // some code may be to connect to database  

    return connectionSuccessful;
}

public boolean isCustomerSatisfied() {

    // some code to perform some operation

}

// some more methods to do more stuff

```

and then I can initialize the class and use the class in following way ?

```
TestConstructor tc = new TestConstructor(); 
tc.init("John", "db connection string", new Customer(x, y, z));
tc.connectToDatabase(required args go here);
tc.isCustomerSatisfied(required args go here);

```

the only issue I can think is that you could call init on the same constructor and change values of the object.. which is a security issue and the most major one perhaps.

But is there anything else ?

Pardon me if its a bad question. Just came to my head

**Actually I have been preparing for the interview and was thinking what if I was asked such a question - "what constructor does can be achieved this way then why do you need constructor?" following which I started thinking of it** 

**I am surprised that most people are clinging onto 'you used static' .. the code was just the sample to give an idea. The real question was that you could avoid constructor but can you get away with it ? what are the downsides**