0% found this document useful (0 votes)
11 views

Oops

This document provides an overview of object-oriented programming concepts in Java. It defines key OOPs concepts like class, object, inheritance, polymorphism, encapsulation, and abstraction. It also discusses the advantages of OOPs over procedural programming and the differences between object-oriented and object-based languages. Key OOPs features in Java like constructors, static methods, the this keyword, inheritance, aggregation, method overriding, and runtime polymorphism are also explained.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Oops

This document provides an overview of object-oriented programming concepts in Java. It defines key OOPs concepts like class, object, inheritance, polymorphism, encapsulation, and abstraction. It also discusses the advantages of OOPs over procedural programming and the differences between object-oriented and object-based languages. Key OOPs features in Java like constructors, static methods, the this keyword, inheritance, aggregation, method overriding, and runtime polymorphism are also explained.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Java OOPs Concepts

https://www.javatpoint.com/java-oops-concepts

next → ← prev

1. Object-Oriented Programming
2. Advantage of OOPs over Procedure-oriented programming language
3. Difference between Object-oriented and Object-based programming
language.

In this page, we will learn about the basics of OOPs. Object-Oriented


Programming is a paradigm that provides many concepts, such as
inheritance, data binding, polymorphism, etc.

Simula is considered the first object-oriented programming language. The


programming paradigm where everything is represented as an object is
known as a truly object-oriented programming language.

Smalltalk is considered the first truly object-oriented programming


language.

The popular object-oriented languages are Java, C#, PHP, Python, C++, etc.

The main aim of object-oriented programming is to implement real-world


entities, for example, object, classes, abstraction, inheritance,
polymorphism, etc.

OOPs (Object-Oriented Programming System)

Object means a real-world entity such as a pen, chair, table, computer,


watch, etc. Object-Oriented Programming is a methodology or paradigm
to design a program using classes and objects. It simplifies software
development and maintenance by providing some concepts:

Object
Class
Inheritance
Polymorphism
Abstraction
Encapsulation

Apart from these concepts, there are some other terms which are used in
Object-Oriented design:

Coupling
Cohesion
Association
Aggregation
Composition
Object

Any entity that has state and behavior is known as an object. For example, a
chair, pen, table, keyboard, bike, etc. It can be physical or logical.

An Object can be defined as an instance of a class. An object contains an


address and takes up some space in memory. Objects can communicate
without knowing the details of each other's data or code. The only
necessary thing is the type of message accepted and the type of response
returned by the objects.
Example: A dog is an object because it has states like color, name, breed,
etc. as well as behaviors like wagging the tail, barking, eating, etc.

Class

Collection of objects is called class. It is a logical entity.

A class can also be defined as a blueprint from which you can create an
individual object. Class doesn't consume any space.

Inheritance

When one object acquires all the properties and behaviors of a parent object,
it is known as inheritance. It provides code reusability. It is used to achieve
runtime polymorphism.
Polymorphism

If one task is performed in different ways, it is known as polymorphism. For


example: to convince the customer differently, to draw something, for
example, shape, triangle, rectangle, etc.

In Java, we use method overloading and method overriding to achieve


polymorphism.

Another example can be to speak something; for example, a cat speaks


meow, dog barks woof, etc.
Abstraction

Hiding internal details and showing functionality is known as abstraction.


For example phone call, we don't know the internal processing.

In Java, we use abstract class and interface to achieve abstraction.

Encapsulation

Binding (or wrapping) code and data together into a single unit are known as
encapsulation. For example, a capsule, it is wrapped with different
medicines.

A java class is the example of encapsulation. Java bean is the fully


encapsulated class because all the data members are private here.

Coupling

Coupling refers to the knowledge or information or dependency of another


class. It arises when classes are aware of each other. If a class has the
details information of another class, there is strong coupling. In Java, we
use private, protected, and public modifiers to display the visibility level of
a class, method, and field. You can use interfaces for the weaker coupling
because there is no concrete implementation.

Cohesion

Cohesion refers to the level of a component which performs a single well-


defined task. A single well-defined task is done by a highly cohesive
method. The weakly cohesive method will split the task into separate parts.
The java.io package is a highly cohesive package because it has I/O related
classes and interface. However, the java.util package is a weakly cohesive
package because it has unrelated classes and interfaces.

Association

Association represents the relationship between the objects. Here, one


object can be associated with one object or many objects. There can be four
types of association between the objects:

One to One
One to Many
Many to One, and
Many to Many

Let's understand the relationship with real-time examples. For example,


One country can have one prime minister (one to one), and a prime
minister can have many ministers (one to many). Also, many MP's can have
one prime minister (many to one), and many ministers can have many
departments (many to many).

Association can be undirectional or bidirectional.

Aggregation

Aggregation is a way to achieve Association. Aggregation represents the


relationship where one object contains other objects as a part of its state. It
represents the weak relationship between objects. It is also termed as a has-
a relationship in Java. Like, inheritance represents the is-a relationship. It is
another way to reuse objects.

Composition

The composition is also a way to achieve Association. The composition


represents the relationship where one object contains other objects as a
part of its state. There is a strong relationship between the containing
object and the dependent object. It is the state where containing objects do
not have an independent existence. If you delete the parent object, all the
child objects will be deleted automatically.

Advantage of OOPs over Procedure-oriented programming


language

1) OOPs makes development and maintenance easier, whereas, in a


procedure-oriented programming language, it is not easy to manage if code
grows as project size increases.

2) OOPs provides data hiding, whereas, in a procedure-oriented


programming language, global data can be accessed from anywhere.
Figure: Data Representation in Procedure-Oriented Programming

Figure: Data Representation in Object-Oriented Programming

3) OOPs provides the ability to simulate real-world event much more


effectively. We can provide the solution of real word problem if we are
using the Object-Oriented Programming language.

What is the difference between an object-oriented


programming language and object-based programming
language?

Object-based programming language follows all the features of OOPs except


Inheritance. JavaScript and VBScript are examples of object-based
programming languages.

Can we overload the main method?


A Java Constructor returns a value but, what?
Can we create a program without main method?
What are the six ways to use this keyword?
Why is multiple inheritance not supported in Java?
Why use aggregation?
Can we override the static method?
What is the covariant return type?
What are the three usages of Java super keyword?
Why use instance initializer block?
What is the usage of a blank final variable?
What is a marker or tagged interface?
What is runtime polymorphism or dynamic method dispatch?
What is the difference between static and dynamic binding?
How downcasting is possible in Java?
What is the purpose of a private constructor?
What is object cloning?

What will we learn in OOPs Concepts?

Advantage of OOPs
Naming Convention
Object and class
Method overloading
Constructor
static keyword
this keyword with six usage
Inheritance
Aggregation
Method Overriding
Covariant Return Type
super keyword
Instance Initializer block
final keyword
Abstract class
Interface
Runtime Polymorphism
Static and Dynamic Binding
Downcasting with instanceof operator
Package
Access Modifiers
Encapsulation
Object Cloning

Next Topic Naming Convention in Java


← prev next →

You might also like