DEV Community

Prasanth
Prasanth

Posted on • Edited on

Java -> class & object

what is a Class in java?

  • A class in java is a blueprint/template/design ,it used to create objects.
  • It defines data(variable) and behaviors(method) that object can have.An object has its own copy of those variables, and it can run the methods.

  • No memory is allocated when a class is defined.

  • only memory allocated object create at runtime program execution.Written using class keyword.

  • Class is Logical Entity,it means

    • A logical entity is checked by the compiler when we write code ,like just writing structure or blue print of the program. this structure is called logical entity.
    • Only the compiler checks it
    • it does not take any memory until we create an object. class is idea/design/plan

example

class car{

String color; // declared , but no value stored yet
}

object

Car mycar =new Car();
mycar.color = "red"; // Real instance (holds real values and uses memory at runtime)

Enter fullscreen mode Exit fullscreen mode

Just think car:-

  • What it has Variables (data) ->color,brand,speed
  • What it does Methods (behaviors) -> drive,stop,honk.
  • Object is the real thing created using the class.

  • It does not occupy memory  like object do , it just defines structure(variable + methods) but the actual values are not created or stored in memory until you make an object.
    
  • A class is compile-time entity .it means compiler sees and checks before the program runs like check syntax correct or not and variable type and method signature correct or not ,data type matching and rules of java followed .

  • class it the core concept of object-oriented programming(oops) in java.

example

public class Car
{
    // Data members (fields)- hold  the actual value

String brand;
int speed;
    // Behavior (method)
void drive()

{
System.out.println("driving a car");
}


}
//But it’s not a real car yet. It’s just the plan.

Enter fullscreen mode Exit fullscreen mode

Class Name Rules:

  • 1.Must start with a Uppercase first letter or (_) underscore Or dollar sign ($).
  • 2.can not start with a number
  • 3.can not contain spaces or special characters
  • 4.use Pascal-case for naming

example

class EmployeeDetails

Access Modifier in class

  • Class is public accessible form anywhere,it default( not modifier) accessible only within the same package ( class have final,abstract) , class can not to use protected and private access modifier but inner class you can use all access modified we can see example.

example 1 : inner class

public class OuterClass {

    private class InnerPrivate
    {
        void show()
        {
            System.out.println("private inner class");
        }
    }

protected class InnerProtected
    {
        void show()
        {
            System.out.println("protected inner class");
        }
    }

class InnerDefault
{
    void show()
    {
        System.out.println("Default inner class");
    }
}


public class InnerPublic
{
    void show()
    {
        System.out.println("public  inner class");
    }
}


}
// we can see later inner-private class member how to access outer class.(Accessing Private Inner Class Inside Outer Class)

Top-Level Class

    Can use only:

-  public
-     default (no modifier)
-     Cannot use private or protected

Inner Class (class inside another class)

  Yes, inner classes can be:
-         private
-         protected
-         public
-         default

Because inner classes are members of the outer class (just like variables), they can have any access modifier.
Enter fullscreen mode Exit fullscreen mode

example 2 : private in outer class

private  class PrivateClass
{
    public static void main(String[] args) {
    {
        System.out.println("private outer class ");
        //top-level classes (outer classes) cannot be private. Only inner classes can be private.

//modifier  private not allowed here, outer class is private, no other class can access it, even same package.it is useless that's why java does not allow  private outer class. 
    }
    }
}


Enter fullscreen mode Exit fullscreen mode

// Simple term:-

private means: only accessible inside the same class
→ But if the class is private, no other class can use it, which defeats the purpose of defining it.

example 3 :- protected in outer class

protected class ProtectedClass {

    public static void main(String[] args) {

        System.out.println(" protected  outer class ");



    }

}
//protected is only useful for

- same package access
- subclass access  and even in another package,but top-level class can not be inherited if it is  protected in  another package.
- So, Java does not allow protected for top-level classes either.
Enter fullscreen mode Exit fullscreen mode

why protected top-level class is not allowed?

*protected is for members and inner classes only
*top-level class need to be accessible by compiler
*subclass from another package can not even access it.

simple say:-

protected means: accessible to subclasses and same package
→ But you can't inherit or access a class that’s protected from another package, so Java does not allow it.

what a class can contain

  • *variable, methods ,constructors,blocks,inner classes,interface
  • *Only One Public Class Only one public class per .java file

File name rule

  • if the class is public , the file name must match the class name.
  • if the class is default( no access modifer) the file name does not match the class name.

correct
`// File: Car.java
public class Car { }

Incorrect
// File: Vehicle.java
public class Car { } // Error!
`

what is object ?

  • object is an instance of a class. It means example of the class.object created from the class that Uses the variables and methods of the class & Holds actual values in its variables.Memory is allocated when object is created.

  • A object is created runtime(while the program runs) is called runtime entity.Is created using the new keyword,Take memory and holds data(variable) and behavior(methods) from the class.

  • object is runtime entity ,real instance that uses class features.

  • object also called physical entity,it means
    *object created in memory when program runs(runtime)and allocated memory runtime,
    It holds real values (variable) and performs actions (methods).
    *data hold the real values and action can call methods.

  • multiple object can be created from class and each have different value.

  • Each object has its own copy of instance variables

    ` Car car1 = new Car();
    Car car2 = new Car();

    car1.color = "Red";
    car2.color = "Blue";
    

    `
    Objects can use the functions (methods) that are defined inside their class

class Car {
    void drive() {
        System.out.println("The car is driving.");
    }
}

public class Test {
    public static void main(String[] args) {
        Car myCar = new Car();   // object created
        myCar.drive();           // object calling the method
    }
}

Enter fullscreen mode Exit fullscreen mode

Car myCar = new Car();

Car = class
myCar = reference variable
new Car(); = create a new object in memory.

Runtime -> mean when the program is actually running.
Enitity -> means something that exists

=> A runtime entity is something that is created and exists only while the program is running.

class & object

A class is a blueprint of an object. It defines variables and methods. The object uses those variables and methods, and holds actual values. For example, a car is a class may have variables like brand, color, and type, and methods like drive, stop,etc.

Example

public class Car {
    //Data = variables → what the object has.
    String color;
    String brand;

       //Behavior = methods → what the object does.
    void  drive()
    {
        System.out.println("The " + color + " " + brand + " is driving.");
    }
    void stop() {
        System.out.println("The car has stopped.");
    }


    public static void main(String[] args) {
        Car mycar = new Car ();
        mycar.color="Red";
        mycar.brand="Honda";
        mycar.drive();
        mycar.stop();

    }

}

Enter fullscreen mode Exit fullscreen mode

runtime and compile time

syntax check - compile time
object-creation ,method execution ,value holding( in memory) -runtime

variable

  • variables is used to store data values like number,text,etc.access variable when needed,you can change the values until you set final. (or)

A variable is a container(name) used to store data values in memory. like label for a memory location that hold some values.

variables called fields, instance variables ,data members ,properties ,Attributes

syntax
datatype variablename = value;

example

int age = 25;           // declaring and initializing variable
String name = "Prasanth";
System.out.println(age); // using variable

Enter fullscreen mode Exit fullscreen mode

Types of variables in java

  1. Local Variable Declared inside a method or block.Accessible only within that block

memory location : stack
Access: inside method only
Example: int sum =10;

2.Instance variable
Declared inside a class but outside methods, belongs to objects.
memory location : Heap
Example: obj.name

3.Static variable
Declared using static keyword.Belongs to class,not instance
memory location : method area
Example: class name.count or obj.count

// we will next blog heap,stack.

Important
*only static and instance variables get default values when you printing those variables not local variables ,you must initialize it, or you will get a compilation error.

public class car {

static String company ="honda"; // static varibale
string model; // instance variable

void setModel(String modelName)
{
String prefix ="Model: "; // local variable 
model= prefix + modelName;
}

}

// static is class specific
// non-static(instance) object specific 

Enter fullscreen mode Exit fullscreen mode

Method-Used to Perform Actions (Behavior/Logic)

  • Define logic or instructions inside a method
  • Call the method to execute that logic
  • Pass values (arguments) to it

example

void greet() {
    System.out.println("Hello, Java!");
}

greet();  // calling the method

Enter fullscreen mode Exit fullscreen mode

class vs object

Image description

Image description

Top comments (0)