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)
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.
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.
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.
}
}
}
// 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.
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
}
}
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();
}
}
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
Types of variables in java
- 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
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
Top comments (0)