JAVA OOP Exam

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11
At a glance
Powered by AI
The key takeaways are the main concepts of object-oriented programming such as objects, classes, inheritance, encapsulation, and polymorphism.

The main concepts of object-oriented programming are objects, classes, inheritance, encapsulation, and polymorphism.

The benefits of object-oriented programming include code reuse, easier maintenance, and better representation of real-world entities.

What Is an Object?

An object is a software bundle of related state and behavior.


Software objects are often used to model the real-world objects that
you find in everyday life. This lesson explains how state and
behavior are represented within an object, introduces the concept of
data encapsulation, and explains the benefits of designing your
software in this manner.

What Is a Class?

A class is a blueprint or prototype from which objects are created.


This section defines a class that models the state and behavior of a
real-world object. It intentionally focuses on the basics, showing
how even a simple class can cleanly model state and behavior.

What Is Inheritance?

Inheritance provides a powerful and natural mechanism for


organizing and structuring your software. This section explains how
classes inherit state and behavior from their superclasses, and
explains how to derive one class from another using the simple
syntax provided by the Java programming language.

What Is an Interface?

An interface is a contract between a class and the outside world.


When a class implements an interface, it promises to provide the
behavior published by that interface. This section defines a simple
interface and explains the necessary changes for any class that
implements it.

What Is a Package?

A package is a namespace for organizing classes and interfaces in a


logical manner. Placing your code into packages makes large
software projects easier to manage. This section explains why this
is useful, and introduces you to the Application Programming
Interface (API) provided by the Java platform.

Objectives of OOP
This is a first programming course for Computer Science majors
with a focus on object-oriented programming. The goal of the course
is to develop skills such as program design and testing as well as the
implementation of programs using a graphical IDE. All
programming will be done in Java.
Object-Oriented is a new generation of programming languages. It
comprises the basic of old types of programming languages as well
as a new methods and ways which made the programming easier
and more effective. The student should be introduced to OOP by
studying the basics for a short time and not deeply. After that
introduction, the student should be able to get through the advanced
topics of OOP. Object-Oriented is applied strongly on real world
and student will find a good relation between programs and reality.
Topics like, Inheritance, Vectors, Objects and so on are the mains of
OOP and this module will deal with them very wildly to solve any
problem in programming.

This module is given for students to support and strengthen their


knowledge in programming languages, and especially in Java. It
starts from beginning and gives the main structure for java
programming language. Java was chosen as it is considered a
platform independent and is widely used in the world. It support
most games, applications , mobile applications, and more.
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:

o Object
o Class
o Inheritance
o Polymorphism
o Abstraction
o Encapsulation

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

o Coupling
o Cohesion
o Association
o Aggregation
o 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:
o One to One
o One to Many
o Many to One, and
o 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.
Object-Oriented Programming – Summary of Key Terms

Definitions of some of the key concepts in Object Oriented Programming (OOP)

Examples are given in italics. Cross-references are underlined.

Term Definition

Abstract Data A user-defined data type, including both attributes (its state) and methods
Type (its behaviour). An object oriented language will include means to define
new types (see class) and create instances of those classes (see object). It
will also provide a number of primitive types.

Aggregation Objects that are made up of other objects are known as aggregations. The
relationship is generally of one of two types:

• Composition – the object is composed of other objects. This form


of aggregation is a form of code reuse. E.g. A Car is composed of
Wheels, a Chassis and an Engine
• Collection – the object contains other objects. E.g. a List contains
several Items; A Set several Members.
Attribute A characteristic of an object. Collectively the attributes of an object
describe its state. E.g. a Car may have attributes of Speed, Direction,
Registration Number and Driver.

Class The definition of objects of the same abstract data type. In Java class is
the keyword used to define new types.

Dynamic (Late) The identification at run time of which version of a method is being called
Binding (see polymorphism). When the class of an object cannot be identified at
compile time, it is impossible to use static binding to identify the correct
object method, so dynamic binding must be used.

Encapsulation The combining together of attributes (data) and methods


(behaviour/processes) into a single abstract data type with a public
interface and a private implementation. This allows the implementation to
be altered without affecting the interface.

Inheritance The derivation of one class from another so that the attributes and
methods of one class are part of the definition of another class. The first
class is often referred to the base or parent class. The child is often referred
to as a derived or sub-class.

Derived classes are always ‘a kind of’ their base classes. Derived classes
generally add to the attributes and/or behaviour of the base class.
Inheritance is one form of object-oriented code reuse.

E.g. Both Motorbikes and Cars are kinds of MotorVehicles and therefore
share some common attributes and behaviour but may add their own that
are unique to that particular type.

Interface The behaviour that a class exposes to the outside world; its public face.
Also called its ‘contract’. In Java interface is also a keyword similar to
class. However a Java interface contains no implementation: it simply
describes the behaviour expected of a particular type of object, it doesn’t
so how that behaviour should be implemented.

Member See attribute


Variable

Method The implementation of some behaviour of an object.

Message The invoking of a method of an object. In an object-oriented application


objects send each other messages (i.e. execute each others methods) to
achieve the desired behaviour.

Object An instance of a class. Objects have state, identity and behaviour.

Overloading Allowing the same method name to be used for more than one
implementation. The different versions of the method vary according to
their parameter lists. If this can be determined at compile time then static
binding is used, otherwise dynamic binding is used to select the correct
method as runtime.
Polymorphism Generally, the ability of different classes of object to respond to the same
message in different, class-specific ways. Polymorphic methods are used
which have one name but different implementations for different classes.

E.g. Both the Plane and Car types might be able to respond to a turnLeft
message. While the behaviour is the same, the means of achieving it are
specific to each type.

Primitive Type The basic types which are provided with a given object-oriented
programming language. E.g. int, float, double, char, boolean

Static(Early) The identification at compile time of which version of a polymorphic


Binding method is being called. In order to do this the compiler must identify the
class of an object.

You might also like