Initializer
blocks are used to initialize instance variables.
Syntax
of Initializer Blocks
{
//initialization Blocks code goes
here
}
Java compiler copies initializer blocks into every constructor.
Example
class Box{ int width,height; { width = 10; height = 15; } public static void main(String args[]){ Box b1 = new Box(); System.out.println(b1.width +"\t"+b1.height); } }
Output
10 15
Some
Points to Remember
1. A
class can have more than one initializer block
class Box{ int width,height; String name; { width = 10; height = 15; } { name = "My Box"; } public static void main(String args[]){ Box b1 = new Box(); System.out.println(b1.width +"\t"+b1.height); System.out.println(b1.name); } }
Output
10 15 My Box
2.
The data in initializer blocks copied to every constructor
Example
class Box{ int width,height; String name; { width = 10; height = 15; } { name = "My Box"; } Box(){ } Box(int w){ width = w; } public static void main(String args[]){ Box b1 = new Box(); Box b2 = new Box(100); System.out.println(b1.width +"\t"+b1.height); System.out.println(b1.name); System.out.println(b2.width +"\t"+b2.height); System.out.println(b2.name); } }
Output
10 15 My Box 100 15 My Box
3.
Initializer block are called every time, when you created the
object
Example
class Person{ { System.out.println("I am first"); } { System.out.println("I am second"); } public static void main(String args[]){ Person p1 = new Person(); Person p2 = new Person(); } }
Output
I am first I am second I am first I am second
4.
Initializing static fields in the initialization block is valid, but
don't use it, since the static variable is initialized every time
when a new object created.
Example
class Person{ static int minSalary; { minSalary = 10000; } public static void main(String args[]){ Person p1 = new Person(); Person.minSalary = 50000; System.out.println(Person.minSalary); Person p2 = new Person(); System.out.println(Person.minSalary); } }
Output
50000 10000
No comments:
Post a Comment