0% found this document useful (0 votes)
166 views14 pages

Oops and CG

Object-oriented programming (OOP) is a type of programming based on objects rather than just functions and procedures. OOP uses key concepts like inheritance, polymorphism, and encapsulation to organize code around real-world entities called objects. Some benefits of OOP include reusability of code through inheritance, simplifying complex problems by dividing them into objects, and binding data with the code that uses it through encapsulation.

Uploaded by

Pranay Bankar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
166 views14 pages

Oops and CG

Object-oriented programming (OOP) is a type of programming based on objects rather than just functions and procedures. OOP uses key concepts like inheritance, polymorphism, and encapsulation to organize code around real-world entities called objects. Some benefits of OOP include reusability of code through inheritance, simplifying complex problems by dividing them into objects, and binding data with the code that uses it through encapsulation.

Uploaded by

Pranay Bankar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

001. What is the difference between OOP and SOP?

Object-Oriented Programming Structural Programming


Object-Oriented Programming is a
Provides logical structure to a
type of programming which is
program where programs are
based on objects rather than just
divided functions
functions and procedures
Bottom-up approach Top-down approach
Provides data hiding Does not provide data hiding
Can solve problems of any
Can solve moderate problems
complexity
Code can be reused thereby
Does not support code reusability
reducing redundancy
2. What is Object Oriented Programming?

Object-Oriented Programming(OOPs) is a type of programming that is


based on objects rather than just functions and procedures. Individual
objects are grouped into classes. OOPs implements real-world entities
like inheritance, polymorphism, hiding, etc into programming. It also
allows binding data and code together.
3. Why use OOPs?

 OOPs allows clarity in programming thereby allowing simplicity in


solving complex problems
 Code can be reused through inheritance thereby reducing
redundancy
 Data and code are bound together by encapsulation
 OOPs allows data hiding, therefore, private data is kept
confidential
 Problems can be divided into different parts making it simple to
solve
 The concept of polymorphism gives flexibility to the program by
allowing the entities to have multiple forms
4. What are the main features of OOPs?

 Inheritance
 Encapsulation
 Polymorphism
 Data Abstraction

To know more about OOPs in JAVA, Python, and C++ you can go
through the following blogs:

 JAVA OOPs Concepts
 Python OOPs Concepts
 C++ OOPs Concepts

5. What is an object?

An object is a real-world entity which is the basic unit of OOPs for


example chair, cat, dog, etc. Different objects have different states or
attributes, and behaviors.
6. What is a class?

A class is a prototype that consists of objects in different states and


with different behaviors. It has a number of methods that are common
the objects present within that class.
7. What is the difference between a class and a structure?

Class: User-defined blueprint from which objects are created. It


consists of methods or set of instructions that are to be performed on
the objects.

Structure: A structure is basically a user-defined collection of


variables which are of different data types.
8. Can you call the base class method without creating an instance?

Yes, you can call the base class without instantiating it if:
 It is a static method
 The base class is inherited by some other subclass

9. What is the difference between a class and an object?

Object Class
A class is basically a template or
A real-world entity which is an
a blueprint within which objects
instance of a class
can be created
An object acts like a variable of Binds methods and data together
the class into a single unit
An object is a physical entity A class is a logical entity
Objects take memory space when A class does not take memory
they are created space when created
Objects can be declared as and
Classes are declared just once
when required
To know more about objects and classes in JAVA, Python, and C++
you can go through the following blogs:

 Objects in Java
 Class in Java
 Objects and classes in Python
 Objects in C++

10. What is inheritance?

Inheritance is a feature of OOPs which allows classes inherit common


properties from other classes. For example, if there is a class such as
‘vehicle’, other classes like ‘car’, ‘bike’, etc can inherit common
properties from the vehicle class. This property helps you get rid of
redundant code thereby reducing the overall size of the code.

11. What are the different types of inheritance?

 Single inheritance
 Multiple inheritance
 Multilevel inheritance
 Hierarchical inheritance
 Hybrid inheritance

12. What is the difference between multiple and multilevel


inheritance?

Multiple Inheritance Multilevel Inheritance


Multilevel inheritance means a
Multiple inheritance comes into
class inherits from another class
picture when a class inherits more
which itself is a subclass of some
than one base class
other base class
Example: A class describing a
Example: A class defining a child
sports car will inherit from a base
inherits from two base classes
class Car which inturn inherits
Mother and Father
another class Vehicle
13. What is hybrid inheritance?

Hybrid inheritance is a combination of multiple and multi-level


inheritance.

14. What is hierarchical inheritance?

Hierarchical inheritance refers to inheritance where one base class


has more than one subclasses. For example, the vehicle class can
have ‘car’, ‘bike’, etc as its subclasses.

15. What are the limitations of inheritance?

 Increases the time and effort required to execute a program as it


requires jumping back and forth between different classes
 The parent class and the child class get tightly coupled
 Any modifications to the program would require changes both in
the parent as well as the child class
 Needs careful implementation else would lead to incorrect
results
To know more about inheritance in Java and Python, read the below
articles:

 Inheritance in Java
 Inheritance in Python

16. What is a superclass?

A superclass or base class is a class that acts as a parent to some


other class or classes. For example, the Vehicle class is a superclass
of class Car.

17. What is a subclass?

A class that inherits from another class is called the subclass. For
example, the class Car is a subclass or a derived of Vehicle class.

18. What is polymorphism?

Polymorphism refers to the ability to exist in multiple forms. Multiple


definitions can be given to a single interface. For example, if you have
a class named Vehicle, it can have a method named speed but you
cannot define it because different vehicles have different speed. This
method will be defined in the subclasses with different definitions for
different vehicles.

19. What is static polymorphism?

Static polymorphism (static binding) is a kind of polymorphism that


occurs at compile time. An example of compile-time polymorphism is
method overloading.

20. What is dynamic polymorphism?

Runtime polymorphism or dynamic polymorphism (dynamic binding) is


a type of polymorphism which is resolved during runtime. An example
of runtime polymorphism is method overriding.
21. What is method overloading?

Method overloading is a feature of OOPs which makes it possible to


give the same name to more than one methods within a class if the
arguments passed differ.

22. What is method overriding?

Method overriding is a feature of OOPs by which the child class or the


subclass can redefine methods present in the base class or parent
class. Here, the method that is overridden has the same name as well
as the signature meaning the arguments passed and the return type.

23. What is operator overloading?

Operator overloading refers to implementing operators using user-


defined types based on the arguments passed along with it.

24. Differentiate between overloading and overriding.

Overloading Overriding
Two or more methods having the Child class redefining methods
same name but different present in the base class with the
parameters or signature same parameters/ signature
Resolved during compile-time Resolved during runtime
To know more about polymorphism in Java and Python, read the
below articles:

 Polymorphism in Java
 Polymorphism in Python

25. What is encapsulation?

Encapsulation refers to binding the data and the code that works on
that together in a single unit. For example, a class. Encapsulation also
allows data-hiding as the data specified in one class is hidden from
other classes.
26. What are ‘access specifiers’?

Access specifiers or access modifiers are keywords that determine the


accessibility of methods, classes, etc in OOPs. These access
specifiers allow the implementation of encapsulation. The most
common access specifiers are public, private and protected. However,
there are a few more which are specific to the programming
languages.

27. What is the difference between public, private and protected


access modifiers?

Accessibility
Accessibility Accessibility
Name from derived
from own class from world
class
Public Yes Yes Yes
Private Yes No No
Protected Yes Yes No
To know more about encapsulation read along:

 Encapsulation in Java
 Encapsulation in C++
 Encapsulation in Python

Data abstraction

28. What is data abstraction?

Data abstraction is a very important feature of OOPs that allows


displaying only the important information and hiding the
implementation details. For example, while riding a bike, you know
that if you raise the accelerator, the speed will increase, but you don’t
know how it actually happens. This is data abstraction as the
implementation details are hidden from the rider.

29. How to achieve data abstraction?


Data abstraction can be achieved through:

 Abstract class
 Abstract method

30. What is an abstract class?

An abstract class is a class that consists of abstract methods. These


methods are basically declared but not defined. If these methods are
to be used in some subclass, they need to be exclusively defined in
the subclass.

31. Can you create an instance of an abstract class?

No. Instances of an abstract class cannot be created because it does


not have a complete implementation. However, instances of subclass
inheriting the abstract class can be created.

32. What is an interface?

It is a concept of OOPs that allows you to declare methods without


defining them. Interfaces, unlike classes, are not blueprints because
they do not contain detailed instructions or actions to be performed.
Any class that implements an interface defines the methods of the
interface.

33. Differentiate between data abstraction and encapsulation.

Data abstraction Encapsulation


Solves the problem at the design Solves the problem at the
level implementation level
Allows showing important aspects Binds code and data together into
while hiding implementation a single unit and hides it from the
details world
To know more about data abstraction, below articles might help you:
 Abstraction in Java
 Abstraction in Python

Methods and Functions OOPs interview questions

34. What are virtual functions?

Virtual functions are functions that are present in the parent class and
are overridden by the subclass. These functions are used to achieve
runtime polymorphism.

35. What are pure virtual functions?

Pure virtual functions or abstract functions are functions that are only


declared in the base class. This means that they do not contain any
definition in the base class and need to be redefined in the subclass.

36. What is a constructor?

A constructor is a special type of method that has the same name as


the class and is used to initialize objects of that class.

37. What is a destructor?

A destructor is a method that is automatically invoked when an object


is destroyed. The destructor also recovers the heap space that was
allocated to the destroyed object, closes the files and database
connections of the object, etc.

38. Types of constructors

Types of constructors differ from language to language. However, all


the possible constructors are:

 Default constructor
 Parameterized constructor
 Copy constructor
 Static constructor
 Private constructor
39. What is a copy constructor?

A copy constructor creates objects by copying variables from another


object of the same class. The main aim of a copy constructor is to
create a new object from an existing one.

40. What is the use of ‘finalize’?

Finalize as an object method used to free up unmanaged resources


and cleanup before Garbage Collection(GC). It performs memory
management tasks.

41. What is Garbage Collection(GC)?

GC is an implementation of automatic memory management. The


Garbage collector frees up space occupied by objects that are no
longer in existence.

42. Differentiate between a class and a method.

Class Method
A class is basically a template
Callable set of instructions also
that binds the code and data
called a procedure or function that
together into a single unit.
are to be performed on the given
Classes consist of methods,
data
variables, etc
43. Differentiate between an abstract class and an interface?

Basis for comparison Abstract Class Interface


Can have abstract as
Methods Only abstract methods
well as other methods
May contain final and Variables declared are
Final Variables
non-final variables final by default
Accessibility of Data Can be private, public,
Public by default
Members etc
Can provide the Cannot provide the
Implementation implementation of an implementation of an
interface abstract class
44. What is an exception?

An exception is a kind of notification that interrupts the normal


execution of a program. Exceptions provide a pattern to the error and
transfer the error to the exception handler to resolve it. The state of
the program is saved as soon as an exception is raised.
45. What is exception handling?

Exception handling in Object-Oriented Programming is a very


important concept that is used to manage errors. An exception handler
allows errors to be thrown and caught and implements a centralized
mechanism to resolve them.
46. What is the difference between an error and an exception?

Error Exception
Errors are problems that should not be Conditions that an application might try to
encountered by applications catch
47. What is a try/ catch block?

A try/ catch block is used to handle exceptions. The try block defines a set of
statements that may lead to an error. The catch block basically catches the exception.

48. What is a finally block?

A finally block consists of code that is used to execute important code such as closing a
connection, etc. This block executes when the try block exits. It also makes sure that
finally block executes even in case some unexpected exception is encountered.

49. What are the limitations of OOPs?

 Usually not suitable for small problems


 Requires intensive testing
 Takes more time to solve the problem
 Requires proper planning
 The programmer should think of solving a problem in terms of objects

Algorthim:-  “a process or set of rules to be followed in calculations or other problem-solving


operations”.

Output Primitives :
 DDA Line generation Algorithm in Computer Graphics.
 Bresenham's Line Generation Algorithm.
 Mid-Point Line Generation Algorithm.
 Program to find line passing through 2 Points.
 Bresenham's circle drawing algorithm.
 Anti-aliased Line | Xiaolin Wu's algorithm.

Algorithm types we will consider include:


 Simple recursive algorithms.
 Backtracking algorithms.
 Divide and conquer algorithms.
 Dynamic programming algorithms.
 Greedy algorithms.
 Branch and bound algorithms.
 Brute force algorithms.
 Randomized algorithms.

DDA:- a digital differential analyzer (DDA) is hardware or software used for interpolation of
variables over an interval between start and end point. ... DDAs are used for rasterization
of lines, triangles and polygons.

Breshanhams Drawing Algorithum:- Bresenham's line algorithm is a line drawing


algorithm that determines the points of an n-dimensional raster that should be selected in order to
form a close approximation to a straight line between two points.
Bresenham's Circle Drawing Algorithm is a circle drawing algorithm that selects the nearest
pixel position to complete the arc. The unique part of this algorithm is that is uses only integer
arithmetic which makes it, significantly, faster than other algorithms using floating point
arithmetic in classical processors.

Polygons are used in computer graphics to compose images that are three-dimensional in


appearance. Types:- Covex,concave and complex.

Polygon filling:- filling polygons with particular colors, you need to determine the pixels falling
on the border of the polygon and those which fall inside the polygon. Types:- Flood fill, Seed
fill, Scan line fill.

Polygon Clipping:- The Sutherland–Hodgman algorithm is an algorithm used for clipping


polygons. It works by extending each line of the convex clip polygon in turn and selecting only
vertices from the subject polygon that are on the visible side.

 line clipping is the process of removing lines or portions of lines outside an area of interest.


Typically, any line or part there of which is outside of the viewing area is removed. There are
two common algorithms for line clipping: Cohen–Sutherland and Liang–Barsky.

2-D transformation:-  Transformation means changing some graphics into something else by


applying rules. We can have various types of transformations such as translation, scaling up
or down, rotation, shearing, etc. When a transformation takes place on a 2D plane, it is
called 2D transformation.

3-D Transformation:- Transformation is a process of modifying and re-positioning the


existing graphics. 3D Transformations take place in a three dimensional
plane. ... Transformations are helpful in changing the position, size, orientation, shape etc of
the object.

what are shading algorithm

Shading model is used to compute the intensities and colors to display the surface.
The shading model has two primary ingredients: properties of the surface and properties of the
illumination falling on it. The principal surface property is its reflectance, which determines how
much of the incident light is reflected.

 B-splines:- have knots that are equidistant from each other. B-splines can be used for curve-
fitting and numerical differentiation of experimental data. In computer-aided design
and computer graphics, spline functions are constructed as linear combinations of B-
splines with a set of control points.

Bezier curves:- are used in computer graphics to produce curves which appear reasonably


smooth at all scales (as opposed to polygonal lines, which will not scale nicely). ... * The
entire curve is contained in the quadrilateral whose corners are the four given points (their
convex hull).
Triadic curve:- The triadic Koch curve is constructed as the limit of a sequence of simple
iterative steps. ... Proceeding for an infinite number of steps, one obtains
the triadic Koch curve. At the bottom of the figure stage 3 appears rescaled into a unit square,
see the text for other details.

A Hilbert curve' is a particular space-filling curve which, besides possessing aesthetic


qualities, seems to have some applications in computer graphics. ' Such
a curve is defined by a function which maps a parameter t onto pairs of values (x,y), where t is
the length along the curve.

You might also like