Lesson

Class And Object

Opps/Java

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.

java
class ClassName {
    // members
}
  • class → Java keyword

  • ClassName → Identifier

Members of a Class:

A class can contain:

  • Variables (data members)

  • Methods (functions)

  • Constructors

  • Blocks (static / instance)

  • Enums

  • Inner Classes

  • Interfaces

java
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 new keyword

  • Memory is allocated in Heap memory

  • Reference is stored in a reference variable

  • Created at runtime (dynamic memory allocation)

java
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 → Class

  • new Student() → Object created in Heap

  • s1 → 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

java
Student s1 = new Student();

JVM checks:

  • If class is not loaded → load first

  • Then create object

2. Running main() Method

java
public static void main(String[] args)

The class containing main() is loaded first


3. Accessing Static Members

java
ClassName.staticMethod();

If class is not loaded → JVM loads it first


4. Dynamic Class Loading

Java allows loading classes at runtime using Class.forName()

java
Class.forName("ClassName");
  • It loads class using String name

  • It is a static method

  • Belongs to java.lang.Class

java
ClassNotFoundException

Occurs when:

  • .class file is not found

java
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 class A

  • Static block executes when class is loaded

  • Constructor is private → object cannot be created

  • Still, class loads successfully

Class And Object | Java | Softcrayons Tech Solutions