Q) Does constructor return any value?
Yes, it is the current class instance (You cannot use
return type yet it returns a value).
Can constructor perform other tasks instead of initialization?
Yes, like object creation, starting a thread, calling a
method, etc. You can perform any operation in the
constructor as you perform in the method.
Is there Constructor class in Java?
Yes.
What is the purpose of Constructor class?
Java provides a Constructor class which can be used to
get the internal information of a constructor in the class.
It is found in the java.lang.reflect package.
Next Topicstatic keyword in java
Java static keyword
1. Static variable
2. Program of the counter without static variable
3. Program of the counter with static variable
4. Static method
5. Restrictions for the static method
6. Why is the main method static?
7. Static block
8. Can we execute a program without main method?
The static keyword in Java is used for memory
management mainly. We can apply static keyword
with variables, methods, blocks and nested classes. The
static keyword belongs to the class than an instance of
the class.
The static can be:
1. Variable (also known as a class variable)
2. Method (also known as a class method)
3. Block
4. Nested class
1) Java static variable
If you declare any variable as static, it is known as a
static variable.
o The static variable can be used to refer to the
common property of all objects (which is not unique
for each object), for example, the company name of
employees, college name of students, etc.
o The static variable gets memory only once in the
class area at the time of class loading.
Advantages of static variable
It makes your program memory efficient (i.e., it saves
memory).
Understanding the problem without static variable
1. class Student{
2. int rollno;
3. String name;
4. String college="ITS";
5. }
Suppose there are 500 students in my college, now all
instance data members will get memory each time when
the object is created. All students have its unique rollno
and name, so instance data member is good in such
case. Here, "college" refers to the common property of
all objects. If we make it static, this field will get the
memory only once.
Java static property is shared to all objects.
Example of static variable
1. //Java Program to demonstrate the use of static vari
able
2. class Student{
3. int rollno;//instance variable
4. String name;
5. static String college ="ITS";//static variable
6. //constructor
7. Student(int r, String n){
8. rollno = r;
9. name = n;
10. }
11. //method to display the values
12. void display (){System.out.println(rollno+"
"+name+" "+college);}
13. }
14. //Test class to show the values of objects
15. public class TestStaticVariable1{
16. public static void main(String args[]){
17. Student s1 = new Student(111,"Karan");
18. Student s2 = new Student(222,"Aryan");
19. //we can change the college of all objects by the sin
gle line of code
20. //Student.college="BBDIT";
21. s1.display();
22. s2.display();
23. }
24. }
Test it Now
Output:
111 Karan ITS
222 Aryan ITS
Program of the counter without static variable
In this example, we have created an instance variable
named count which is incremented in the constructor.
Since instance variable gets the memory at the time of
object creation, each object will have the copy of the
instance variable. If it is incremented, it won't reflect
other objects. So each object will have the value 1 in the
count variable.
1. //Java Program to demonstrate the use of an instanc
e variable
2. //which get memory each time when we create an o
bject of the class.
3. class Counter{
4. int count=0;//will get memory each time when the i
nstance is created
5.
6. Counter(){
7. count++;//incrementing value
8. System.out.println(count);
9. }
10.
11. public static void main(String args[]){
12. //Creating objects
13. Counter c1=new Counter();
14. Counter c2=new Counter();
15. Counter c3=new Counter();
16. }
17. }
Test it Now
Output:
1
1
1
Program of counter by static variable
As we have mentioned above, static variable will get the
memory only once, if any object changes the value of the
static variable, it will retain its value.
1. //Java Program to illustrate the use of static variable
which
2. //is shared with all objects.
3. class Counter2{
4. static int count=0;//will get memory only once and
retain its value
5.
6. Counter2(){
7. count++;//incrementing the value of static variable
8. System.out.println(count);
9. }
10.
11. public static void main(String args[]){
12. //creating objects
13. Counter2 c1=new Counter2();
14. Counter2 c2=new Counter2();
15. Counter2 c3=new Counter2();
16. }
17. }
Test it Now
Output:
1
2
3