Initiative: To visualize the object lifecycle through static blocks, instance blocks, and constructors.
public class StudentBlueprint { // Define the class representing a student entity template
private String name; // Declare a private instance variable for the student's name
private static int nextId = 1001; // Declare a static variable shared across all instances for IDs
static { // Static initialization block for class-level setup
System.out.println("[CLASS] Blueprint loaded into memory."); // Log the class loading event
System.out.println("[CLASS] Initializing shared ID generator..."); // Log class setup progress
} // End of static block (runs only once)
{ // Instance initialization block for individual object setup
System.out.println("[OBJECT] Allocating memory for a new student..."); // Log object creation start
} // End of instance block (runs for every 'new' call)
public StudentBlueprint() { // Default constructor for creating empty student objects
this.name = "Unknown"; // Assign default name string to the object
System.out.println("[CONS] Default constructor applied."); // Log the constructor activity
} // End of default constructor
public StudentBlueprint(String name) { // Parameterized constructor for custom student data
this.name = name; // Assign the provided name to the instance variable
System.out.println("[CONS] Custom constructor applied for: " + name); // Log specific object creation
} // End of parameterized constructor
public void show() { // Instance method to display the student's internal data
System.out.println("ID: " + nextId++ + " | Name: " + this.name); // Print ID and name, then increment ID
} // End of show method
public static void main(String[] args) { // Main method to execute the blueprint test
System.out.println("--- Starting Main Execution ---"); // Log the start of the main thread
StudentBlueprint s1 = new StudentBlueprint(); // Instantiate a student using default constructor
s1.show(); // Call display method for the first student
System.out.println("--------------------------------"); // Print separator for clarity
StudentBlueprint s2 = new StudentBlueprint("Aarav"); // Instantiate a student with custom name
s2.show(); // Call display method for the second student
System.out.println("--------------------------------"); // Print separator for clarity
StudentBlueprint s3 = new StudentBlueprint("Ishani"); // Instantiate another student with custom name
s3.show(); // Call display method for the third student
System.out.println("--- End of Blueprint Test ---"); // Final log for the program termination
} // End of main method
} // End of StudentBlueprint class