Class And Object
You must understand these basic concepts:
Class
Object
Class Loading Concept
Class
A class is a user-defined data type used to create objects.
It acts as a blueprint/template for creating objects.
class ClassName {
// members
}class→ Java keywordClassName→ Identifier
Members of a Class:
A class can contain:
Variables (data members)
Methods (functions)
Constructors
Blocks (static / instance)
Enums
Inner Classes
Interfaces
class Student {
int sid;
String name;
void display() {
System.out.println("Student Info");
}
} Here, Student defines a category/type.
Object
An object is an instance of a class.
It represents a real-world entity and holds actual data.
Object is created using
newkeywordMemory is allocated in Heap memory
Reference is stored in a reference variable
Created at runtime (dynamic memory allocation)
class Student {
int sid;
String sname;
String semail;
}
public class Main {
public static void main(String[] args) {
Student s1 = new Student();
s1.sid = 101;
s1.sname = "Anil";
s1.semail = "anil@gmail.com";
}
}🔍 Explanation:
Student→ Classnew Student()→ Object created in Heaps1→ Reference variable (stores address of object)
Class Loading Concept
A Class Loader loads classes into JVM memory when required.
It is part of JRE (Java Runtime Environment)
Not all classes are loaded at once
Classes are loaded dynamically when needed
When Class is Loaded?
1. Object Creation
Student s1 = new Student();JVM checks:
If class is not loaded → load first
Then create object
2. Running main() Method
public static void main(String[] args) The class containing main() is loaded first
3. Accessing Static Members
ClassName.staticMethod();If class is not loaded → JVM loads it first
4. Dynamic Class Loading
Java allows loading classes at runtime using Class.forName()
Class.forName("ClassName");It loads class using String name
It is a static method
Belongs to
java.lang.Class
ClassNotFoundExceptionOccurs when:
.classfile is not found
class A {
static {
System.out.println("Static Block in class A");
}
private A() {}
}
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("A");
}
}🔍 Explanation:
Class.forName("A")→ Loads classAStatic block executes when class is loaded
Constructor is private → object cannot be created
Still, class loads successfully