OOPS in Java
OOPS in Java
Class is a user-defined data type which defines its properties and its functions. Class is the
only logical representation of the data. For example, Human being is a class. The body parts
of a human being are its properties, and the actions performed by the body parts are known
as functions. The class does not occupy any memory space till the time an object is
instantiated.
Object is a run-time entity. It is an instance of the class. An object can represent a person,
place or any other item. An object can operate on both data members and member
functions.
Example 1:
class Student {
String name;
int age;
s2.name = "Shradha";
s2.age = 22;
s2.getInfo();
}
}
Example 2:
class Pen {
String color;
p1.printColor();
p2.printColor();
p3.printColor();
}
}
Note : When an object is created using a new keyword, then space is allocated for the
variable in a heap, and the starting address is stored in the stack memory.
‘this’ keyword : ‘this’ keyword in Java that refers to the current instance of the
class. In OOPS it is used to:
1. pass the current object as a parameter to another method
2. refer to the current class instance variable
Constructor : Constructor is a special method which is invoked automatically at the
time of object creation. It is used to initialize the data members of new objects
generally.
● Constructors have the same name as class or structure.
● Constructors don’t have a return type. (Not even void)
● Constructors are only called once, at object creation.
Student() {
System.out.println("Constructor called");
}
}
2. Parameterized constructor : Constructor which has parameters is called a
Student(Student s2) {
this.name = s2.name;
this.age = s2.age;
}
}
Note : Unlike languages like C++, Java has no Destructor. Instead, Java
has an eficient garbage collector that deallocates memory
automatically.
Polymorphism
class Student {
String name;
int age;
public void displayInfo(String name) {
System.out.println(name);
}
class Shape {
public void area() {
System.out.println("Displays Area of Shape");
}
}
class Triangle extends Shape {
public void area(int h, int b) {
System.out.println((1/2)*b*h);
}
}
class Circle extends Shape {
public void area(int r) {
System.out.println((3.14)*r*r);
}
}
Inheritance
Inheritance is a process in which one object acquires all the properties and
behaviors of its parent object automatically. In such a way, you can reuse,
extend or modify the attributes and behaviors which are defined in other
classes.
In Java, the class which inherits the members of another class is called
derived class and the class whose members are inherited is called base class.
The derived class is the specialized class for the base class.
Types of Inheritance :
1. Single inheritance : When one class inherits another class, it is known
as single level inheritance
class Shape {
}
}
System.out.println((1/2)*b*h);
}
}
2. Hierarchical inheritance: Hierarchical inheritance is defined as the process of
deriving more than one class from a base class.
class Shape {
public void area() {
System.out.println("Displays Area of Shape");
}
}
class Triangle extends Shape {
public void area(int h, int b) {
System.out.println((1/2)*b*h);
}
}
class Circle extends Shape {
public void area(int r) {
System.out.println((3.14)*r*r);
}
}
Package in Java
Package is a group of similar types of classes, interfaces and sub-packages. Packages can
be built-in or user defined.
Built-in packages - java, util, io etc.
import java.util.Scanner;
import java.io.IOException;
Access Modifiers in Java
➢ Private: The access level of a private modifier is only within the class. It cannot be
accessed from outside the class.
➢ Default: The access level of a default modifier is only within the package. It cannot be
accessed from outside the package. If you do not specify any access level, it will be the
default.
➢ Protected: The access level of a protected modifier is within the package and outside
the package through child class. If you do not make the child class, it cannot be
accessed from outside the package.
➢ Public: The access level of a public modifier is everywhere. It can be accessed from
within the class, outside the class, within the package and outside the package.
package newpackage;
class Account {
this.password = password;
}
}
a1.setPassword("abcd");
a1.email = "[email protected]";
Encapsulation
Encapsulation is the process of combining data and functions into a single unit called class.
In Encapsulation, the data is not accessed directly; it is accessed through the functions
present inside the class. In simpler words, attributes of the class are kept private and public
getter and setter methods are provided to manipulate these attributes. Thus, encapsulation
makes the concept of data hiding possible.(Data hiding: a language feature to restrict access
to members of an object, reducing the negative effect due to dependencies. e.g. "protected",
"private" feature in Java).
Abstraction
We try to obtain an abstract view, model or structure of a real life problem, and reduce its unnecessary
details. With definition of properties of problems, including the data which are affected and the
operations which are identified, the model abstracted from problems can be a standard solution to this
type of problems. It is an efficient way since there are nebulous real-life problems that have similar
properties.
In simple terms, it is hiding the unnecessary details & showing only the essential parts/functionalities to
the user.
Data binding : Data binding is a process of binding the application UI and business logic. Any
change made in the business logic will reflect directly to the application UI.
Abstraction is achieved in 2 ways :
- Abstract class
- Interfaces (Pure Abstraction)
1. Abstract Class
● An abstract class must be declared with an abstract keyword.
● It can have abstract and non-abstract methods.
● It cannot be instantiated.
● It can have constructors and static methods also.
● It can have final methods which will force the subclass not to change the body of the method.
interface Animal
{
void walk();
horse.walk();
}
Static Keyword
Static can be :
1. Variable (also known as a class variable)
2. Method (also known as a class method)
3. Block
4. Nested class
class Student {
String name;
s1.name = "Meena";
s2.name = "Beena";
System.out.println(s1.school);
System.out.println(s2.school);
}
}