What Is Object-Oriented Programming (OOP) ?
What Is Object-Oriented Programming (OOP) ?
What Is Object-Oriented Programming (OOP) ?
2. What is a class?
A class describes all the attributes of objects, as well as the methods that implement
the behavior of member objects. It is a comprehensive data type, which represents a
blue print of objects. It is a template of object.
A class can be defined as the primary building block of OOP. It also serves as a
template that describes the properties, state, and behaviors common to a particular
group of objects.
A class contains data and behavior of an entity. For example, the aircraft class can
contain data, such as model number, category, and color and behavior, such as
duration of flight, speed, and number of passengers. A class inherits the data members
and behaviors of other classes by extending from them.
3. What is an object?
They are instance of classes. It is a basic unit of a system. An object is an entity that
has attributes, behavior, and identity. Attributes and behavior of an object are defined
by the class definition.
A class acts as a blue-print that defines the properties, states, and behaviors that are
common to a number of objects. An object is an instance of the class. For example,
you have a class called Vehicle and Car is the object of that class. You can create any
number of objects for the class named Vehicle, such as Van, Truck, and Auto.
The new operator is used to create an object of a class. When an object of a class is
instantiated, the system allocates memory for every data member that is present in the
class.
5. Explain the basic features of OOPs.
o Abstraction - Refers to the process of exposing only the relevant and essential
data to the users without showing unnecessary information.
o Polymorphism - Allows you to use an entity in multiple forms.
o Encapsulation - Prevents the data from unwanted access by binding of code
and data in a single unit called object.
o Inheritance - Promotes the reusability of code and eliminates the use of
redundant code. It is the property through which a child class obtains all the
features defined in its parent class. When a class inherits the common
properties of another class, the class inheriting the properties is called a
derived class and the class that allows inheritance of its common properties is
called a base class.
6. What is the difference between arrays and collection?
Array:
o You need to specify the size of an array at the time of its declaration. It cannot
be resized dynamically.
o The members of an array should be of the same data type.
Collection:
You can prevent a class from being inherited further by defining it with the sealed
keyword.
5. Can you specify the accessibility modifier for methods inside the interface?
All the methods inside an interface are always public, by default. You cannot specify
any other access modifier for them.
Overriding involves the creation of two or more methods with the same name and
same signature in different classes (one of them should be parent class and other
should be child).
Overloading is a concept of using a method at different places with same name and
different signatures within the same class.
Class:
Structure:
Structures and classes are the two most important data structures that are used by
programmers to build modular programs by using OOP languages, such as Visual
Basic .NET, and Visual C#. The following are some of the similarities between a
class and a structure:
1. Access specifiers, such as public, private, and protected, are identically used
in structures and classes to restrict the access of their data and methods outside
their body.
2. The access level for class members and struct members, including nested
classes and structs, is private by default. Private nested types are not accessible
from outside the containing type.
3. Both can have constructors, methods, properties, fields, constants,
enumerations, events, and event handlers.
4. Both structures and classes can implement interfaces to use multiple-
inheritance in code.
5. Both structures and classes can have constructors with parameter.
6. Both structures and classes can have delegates and events.
o What is a multicast delegate?
Each delegate object holds reference to a single method. However, it is possible for a
delegate object to hold references of and invoke multiple methods. Such delegate
objects are called multicast delegates or combinable delegates.
The virtual keyword is used while defining a class to specify that the methods and the
properties of that class can be overridden in derived classes.
o Can you allow a class to be inherited, but prevent a method from being
overridden in C#?
Yes. Just declare the class public and make the method sealed.
Enumeration is defined as a value type that consists of a set of named values. These
values are constants and are called enumerators. An enumeration type is declared
using the enum keyword. Each enumerator in an enumeration is associated with an
underlying type that is set, by default, on the enumerator. The following is an example
that creates an enumeration to store different varieties of fruits:
Yes, you must handle exceptions in code so that you can deal with any unexpected
situations that occur when a program is running. For example, dividing a number by
zero or passing a string value to a variable that holds an integer value would result in
an exception.
No, you cannot inherit private members of a class because private members are
accessible only to that class and not outside that class.
.NET does not support multiple inheritance directly because in .NET, a class cannot
inherit from more than one class. .NET supports multiple inheritance through
interfaces.
A delegate is similar to a class that is used for storing the reference to a method and
invoking that method at runtime, as required. A delegate can hold the reference of
only those methods whose signatures are same as that of the delegate. Some of the
examples of delegates are type-safe functions, pointers, or callbacks.
When a class is derived from another class, then the members of the base class
become the members of the derived class. The access modifier used while accessing
members of the base class specifies the access status of the base class members inside
the derived class.
An interface is a template that contains only the signature of methods. The signature
of a method consists of the numbers of parameters, the type of parameter (value,
reference, or output), and the order of parameters. An interface has no implementation
on its own because it contains only the definition of methods without any method
body. An interface is defined using the interface keyword. Moreover, you cannot
instantiate an interface. The various features of an interface are as follows:
No, the throws clause cannot be used to raise an exception. The throw statement
signals the occurrence of an exception during the execution of a program. When the
program encounters a throw statement, the method terminates and returns the error to
the calling method.
Methods are the building blocks of a class, in which they are linked together to share
and process data to produce the result. In other words, a method is a block of code
that contains a series of statements and represents the behavior of a class. While
declaring a method you need to specify the access specifier, the return value, the name
of the method, and the method parameters. All these combined together is called the
signature of the method.
The try block encloses those statements that can cause exception and the catch block
handles the exception, if it occurs. Catch block contains the statements that have to be
executed, when an exception occurs. The finally block always executes, irrespective
of the fact whether or not an exception has occurred. The finally block is generally
used to perform the cleanup process. If any exception occurs in the try block, the
program control directly transfers to its corresponding catch block and later to the
finally block. If no exception occurs inside the try block, then the program control
transfers directly to the finally block.
35. How can you prevent a class from overriding in C# and Visual Basic?
You can prevent a class from overriding in C# by using the sealed keyword; whereas,
the NotInheritable keyword is used to prevent a class from overriding in Visual Basic.
36. What are abstract classes? What are the distinct characteristics of an abstract
class?
An abstract class is a class that cannot be instantiated and is always used as a base
class.
The following are the characteristics of an abstract class:
o You cannot instantiate an abstract class directly. This implies that you cannot
create an object of the abstract class; it must be inherited.
o You can have abstract as well as non-abstract members in an abstract class.
o You must declare at least one abstract method in the abstract class.
o An abstract class is always public.
o An abstract class is declared using the abstract keyword.
The basic purpose of an abstract class is to provide a common definition of the base
class that multiple derived classes can share.
37. Give a brief description of properties in C# and the advantages that are obtained by
using them in programs.
In C#, a property is a way to expose an internal data element of a class in a simple and
intuitive manner. In other words, it is a simple extension of data fields. You can create
a property by defining an externally available name and then writing the set and get
property accessors. The get property accessor is used to return the property value. The
set property accessor is used to assign a new value to the property.
o Single inheritance - Contains one base class and one derived class
o Hierarchical inheritance - Contains one base class and multiple derived
classes of the same base class
o Multilevel inheritance - Contains a class derived from a derived class
o Multiple inheritance - Contains several base classes and a derived class
All .NET languages supports single, hierarchical, and multilevel inheritance. They do
not support multiple inheritance because in these languages, a derived class cannot
have more than one base class. However, you can implement multiple inheritance
in.NET through interfaces.
39. You have defined a destructor in a class that you have developed by using the C#
programming language, but the destructor never executed. Why did the
destructor not execute?
The runtime environment automatically invokes the destructor of a class to release the
resources that are occupied by variables and methods of an object. However, in C#,
programmers cannot control the timing for invoking destructors, as Garbage Collector
is only responsible for releasing the resources used by an object. Garbage Collector
automatically gets information about unreferenced objects from .NET's runtime
environment and then invokes the Finalize() method.
You are allowed to include more than one catch block in your program; however, it is
not possible to execute them in one go. Whenever, an exception occurs in your
program, the correct catch block is executed and the control goes to the finally block.
43. What do you mean by data encapsulation?
Data encapsulation is a concept of binding data and code in single unit called object
and hiding all the implementation details of a class from the user. It prevents
unauthorized access of data and restricts the user to use the necessary data only.
Procedural programming is based upon the modular approach in which the larger
programs are broken into procedures. Each procedure is a set of instructions that are
executed one after another. On the other hand, OOP is based upon objects. An object
consists of various elements, such as methods and variables.
Access modifiers are not used in procedural programming, which implies that the
entire data can be accessed freely anywhere in the program. In OOP, you can specify
the scope of a particular data by using access modifiers - public, private, internal,
protected, and protected internal.
A destructor is used to free the dynamic allocated memory and release the resources.
You can, however, implement a custom method that allows you to control object
destruction by calling the destructor.
The classes in a namespace are internal, by default. However, you can explicitly
declare them as public only and not as private, protected, or protected internal. The
nested classes can be declared as private, protected, or protected internal.
Yes, it is true. Like classes, in C#, structures can implement one or more interfaces.
Static constructors are introduced with C# to initialize the static data of a class. CLR
calls the static constructor before the first instance is created.
Abstract Class:
Interface
Stacks refer to a list in which all items are accessed and processed on the Last-In-
First-Out (LIFO) basis. In a stack, elements are inserted (push operation) and deleted
(pop operation) from the same end called top.
Queues refer to a list in which insertion and deletion of an item is done on the First-
In-First-Out (FIFO) basis. The items in a queue are inserted from the one end, called
the rear end, and are deleted from the other end, called the front end of the queue.
Whenever an action takes place in a class, that class provides a notification to other
classes or objects that are assigned to perform particular tasks. These notifications are
called events. For example, when a button is clicked, the class generates an event
called Click. An event can be declared with the help of the event keyword.
struct emp
{
fixed int empID[15];
fixed char name[30];
fixed char addr[50];
fixed char dept[15];
fixed char desig[15];
}
The preceding example defines a structure emp and the members of this structure
specify the information of an employee.
We define abstract classes when we define a template that needs to be followed by all
the derived classes.