Thursday, October 27, 2011

Difference between Constructor and Method in java

1.       Constructor is a special method of a class but can’t be invoked directly by method call.
Java doc. Says (A class contains constructors that are invoked to create objects from the class blueprint.)
Methods are member of a class.
2.       It is not a member of a class as it can neither be inherited nor invoked using dot (.) operator.
Dot (.) operator is used to invoke Non static methods via object and static methods via class name.
3.       It has no explicit return type.
It has explicit return type, if there is nothing to return, the return type must be void
4.       It has the same name as its class name.
Can have same name as its class name, but the existence of return type makes it a method (unfortunately looks like constructor).
5.       It is used to initialize the objects, members of object and then execute statements if any.
Used to execute statements.
6.       A no-argument, Default constructor is provided by compiler when no explicit constructor is there. In such case instance members are initialized with their default values (numeric data types are set to 0, char to ‘\0’ and reference variable to null).
Local variable must be initialized explicitly.
7.       If there is no this() as the first statement, super() will be there as first statement in the constructor.
‘this’ is implicitly invoked on all the member in non-static methods, but need explicit invocation in case of name confliction.
Syntax: this.x, this.go()
8.       The default constructor will call the default constructor of its super class due to presence of super() as its first statement.
‘super’ can be used to explicitly invoke member of super class (specially used either in case of name conflict or to call method of super class when overridden in sub-class )
 super.member: when name conflict
super.method(args if any) : when overriden

9.       A constructor can never be abstract or static.
A method is of two types defined (implemented) or undefined (abstract). The method implementation can be further categorized as static or non-static. An abstract method can’t be static or final.
10.   Can be specified as public, none (default), protected or private.
Access-specifier public, none (default), protected or private are applicable.
11.   Can’t be final, native, or synchronized. (Constructor can take only access specifier)
Can be final, native, static or synchronized.
12.   Can be invoked by either
a.       new ClassName()
b.      this(args if any)
c.       super(args if any)
d.      getInstance()
Can be invoked by Class name in case of static method or by object/this in case of non-static method.
If you could click on some of the google ads you see on the right side. It will help me to run this blog and motivates me ;)


  1. Please check the 6th definition its wrong........
    Dinesh Singh Delhi >>>+918512023149

    1. tell me how you think 6th number is wrong.

  2. This comment has been removed by the author.

  3. instance members are copied to the objects.
    static members are not copied to the objects
    What happen with the constructors???
    If they get copied to the objects.. how can they access static members?
    If they do not get copied to the objects... means they behave like static members. Then how do they access instance members?

    1. Non-static member(instance member) resides with instance, however static member resides with class in class loader area.

  4. I enjoy, result in I found exactly what I used to be looking for. You’ve ended my 4 day long hunt! God Bless you man. Have a nice day. Bye
    Jual Septic Tank
    Tangki Fiberglass

  5. I have read your blog its very attractive and impressive. I like it your blog.

    Java Training in Chennai Java Training in Chennai | Core Java Training in Chennai | Java Training Institutes

    Online Java Training Java Online Training | Java J2EE Online Training | JavaEE Training Institute in Chennai

  6. The blog gave me idea about constructor and methods Thanks for sharing this post
    Java Training in Chennai

  7. Thanks for splitting your comprehension with us. It’s really useful to me & I hope it helps the people who in need of this vital information.

    Core Java Online Training

  8. It is really a great work and the way in which u r sharing the knowledge is excellent.
    Thanks for helping me to understand basic concepts. As a beginner in java programming your post help me a lot.Thanks for your informative training in chennai | java training institutes in chennai | java j2ee training institutes in velachery

  9. perfect explanation about java programming .its very useful.thanks for your valuable information. java training in chennai | java training in velachery

  10. really you have posted an informative blog. it will be really helpful to many peoples. thank you for sharing such kind of an interesting blog. so keep on sharing such kind of an interesting blogs.
    dot net training in chennai

  11. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.

    White Label Website Builder