ify
te
No
Unit 1 - Resources & Questions
Compiled by : Subhayu
Object Oriented Programming using Java (25CSH-238)
Syllabus
Chapter 1 : Introduction to Java
Introduction to Java, Characteristics, JDK, JVM, JRE, Class fundamentals, Objects, Ab-
straction, Encapsulation, Inheritance, Polymorphism, Dynamic Binding, Static members
Chapter 2 : Operators and Data Types
Java data-types, operators, conditional statements, iteration statements, switch case, Ar-
rays,Recursion, Java Constructor, Parametrized Constructor, Copy Constructor, Finalize
method
Chapter 3 : Java String
Java String, Java String Buffer, Static keyword, Super keyword, This keyword
ify
te
No
Chapter 1
Introduction to Java
1.1 Introduction to Java
1.1.1 What is Java? ify
Java is a high-level, object-oriented, platform-independent programming language devel-
oped by Sun Microsystems (now Oracle) in 1995.
It is designed on the principle:
te
”Write Once, Run Anywhere (WORA)”
No
This means a Java program can run on any operating system that has a Java Virtual Machine
(JVM).
1.1.2 Why Java?
Java is widely used because it is:
• Simple and easy to learn
• Platform independent
• Secure
• Robust
• Object-oriented
• Portable
• Multithreaded
2
Object Oriented Programming using Java (25CSH-238)
1.1.3 Applications of Java
• Desktop applications
• Android application development
• Enterprise software
• Web applications
• Cloud computing
• Big Data technologies
Key Idea
Java source code is first compiled into Bytecode, which is then executed by the JVM.
This makes Java platform independent.
1.2 Characteristics of Java
ify
te
1.2.1 Simple
Java removes many complex features of C++, such as pointers and operator overloading, mak-
ing programs easier to understand.
No
1.2.2 Object-Oriented
Everything in Java revolves around classes and objects, encouraging reusable and modular code.
1.2.3 Platform Independent
Java programs are compiled into bytecode, which can execute on any system having a compat-
ible JVM.
1.2.4 Secure
Java avoids direct memory access and provides built-in security mechanisms like bytecode ver-
ification.
1.2.5 Robust
Features like exception handling and automatic garbage collection reduce runtime errors.
Object Oriented Programming using Java (25CSH-238)
1.2.6 Portable
Programs produce identical results across different operating systems.
1.2.7 Multithreaded
Java supports running multiple tasks simultaneously using threads.
1.2.8 High Performance
Although Java is interpreted by the JVM, Just-In-Time (JIT) compilation significantly improves
execution speed.
1.3 JDK, JRE and JVM
1.3.1 JVM (Java Virtual Machine)
ify
These three terms are closely related but serve different purposes.
te
JVM is the software that executes Java Bytecode.
Its responsibilities include:
• Executing bytecode
No
• Memory management
• Garbage collection
• Platform independence
1.3.2 JRE (Java Runtime Environment)
JRE provides everything required to run Java programs.
It consists of:
• JVM
• Core Java libraries
Object Oriented Programming using Java (25CSH-238)
1.3.3 JDK (Java Development Kit)
JDK contains everything needed to develop Java applications.
It includes:
• JRE
• Java Compiler (javac)
• Debugger
• Development tools
JDK ⊃ JRE ⊃ JVM
Remember
• JVM executes Java programs.
• JRE runs Java programs.
ify
• JDK develops and runs Java programs.
te
1.3.4 Solved Example
A student writes a Java program.
No
1. The javac compiler (JDK) converts it into bytecode.
2. The bytecode is executed by the JVM.
3. JRE provides the necessary runtime libraries.
1.4 Class Fundamentals
1.4.1 What is a Class?
A class is a blueprint for creating objects.
It defines:
• Data (variables)
• Behaviour (methods)
Object Oriented Programming using Java (25CSH-238)
1.4.2 Syntax
class Student
{
int rollNo;
void display()
{
...
}
}
1.4.3 Example
Think of a class as the blueprint of a house.
ify
Many houses can be built from the same blueprint.
Similarly, many objects can be created from one class.
te
1.5 Objects
1.5.1 What is an Object?
No
An object is an instance of a class.
Each object has:
• Identity
• State (attributes)
• Behaviour (methods)
1.5.2 Creating an Object
Student s1 = new Student();
Here,
• Student is the class.
• s1 is the object.
Object Oriented Programming using Java (25CSH-238)
1.5.3 Solved Example
Class:
Car
Objects:
• BMW
• Audi
• Tesla
Each car is a separate object with different properties.
1.6
1.6.1
Abstraction
Definition
ify
Abstraction means showing only the essential features while hiding implementation details.
te
It focuses on:
”What an object does, not how it does it.”
No
1.6.2 Real-Life Example
When driving a car, the driver uses the steering wheel and pedals without knowing the internal
engine mechanism.
1.6.3 Java Support
Abstraction is achieved using:
• Abstract classes
• Interfaces
Key Point
Abstraction hides implementation details from the user.
Object Oriented Programming using Java (25CSH-238)
1.7 Encapsulation
1.7.1 Definition
Encapsulation is the process of combining data and methods into a single unit (class) while
restricting direct access to data.
1.7.2 Purpose
• Data protection
• Better security
• Controlled access
Private variables are accessed using getter and setter methods.
1.7.3 Example
ify
A bank account does not allow users to directly modify the account balance.
te
Instead, methods like
• Deposit()
No
• Withdraw()
control access.
Common Doubt
Encapsulation protects data.
Abstraction hides implementation.
1.8 Inheritance
1.8.1 Definition
Inheritance allows one class to acquire the properties and methods of another class.
It promotes code reuse.
Object Oriented Programming using Java (25CSH-238)
1.8.2 Example
Vehicle
|
Car
The Car class automatically inherits common properties from Vehicle.
1.8.3 Advantages
• Code reuse
• Reduced redundancy
• Easier maintenance
1.9
1.9.1
Polymorphism
Definition
ify
te
Polymorphism means
”One interface, many forms.”
The same method behaves differently for different objects.
No
1.9.2 Types
• Compile-time Polymorphism (Method Overloading)
• Run-time Polymorphism (Method Overriding)
1.9.3 Example
Method:
draw()
Different objects:
• Circle
• Rectangle
• Triangle
Each object implements the method differently.
Object Oriented Programming using Java (25CSH-238)
1.10 Dynamic Binding
1.10.1 Definition
Dynamic Binding (Late Binding) means the method to be executed is determined during run-
time.
It mainly occurs during method overriding.
1.10.2 Example
Suppose
Animal a = new Dog();
[Link]();
Although the reference type is Animal, the Dog version of sound() executes because the
object is a Dog.
1.10.3 Advantage
ify
te
Dynamic Binding enables runtime polymorphism.
Remember
Method Overriding + Runtime = Dynamic Binding
No
1.11 Static Members
1.11.1 Definition
Static members belong to the class itself rather than to individual objects.
Only one copy exists, shared by all objects.
1.11.2 Static Variables
Shared among all objects.
Example:
class Student
{
static String college = "CU";
}
Every student object shares the same college name.
Object Oriented Programming using Java (25CSH-238)
1.11.3 Static Methods
Static methods can be called without creating an object.
Example:
[Link](25);
1.11.4 Key Characteristics
• Belong to the class
• Memory efficient
• Accessed using the class name
1.11.5 Solved Example
If three Student objects are created,
ify
S1 , S2 , S3
te
all of them access the same static variable:
[Link]
No
instead of maintaining separate copies.
1.12 Comparison of OOP Concepts
Concept Purpose
Class Blueprint for objects
Object Instance of a class
Abstraction Hide implementation details
Encapsulation Protect data by wrapping it with methods
Inheritance Reuse existing code
Polymorphism One interface, many implementations
Dynamic Binding Method selection at runtime
Static Members Shared among all objects
Object Oriented Programming using Java (25CSH-238)
Chapter Summary
• Java is an object-oriented, platform-independent programming language.
• JVM executes bytecode, JRE provides the runtime environment, and JDK provides
development tools.
• A class is a blueprint, while an object is its instance.
• Abstraction hides implementation, whereas encapsulation protects data.
• Inheritance enables code reuse.
• Polymorphism allows one interface to have multiple implementations.
• Dynamic Binding selects overridden methods at runtime.
• Static members belong to the class rather than individual objects.
ify
te
No
Chapter 2
Operators and Data Types
2.1 Java Data Types
2.1.1 What is a Data Type? ify
A data type specifies the kind of value a variable can store and the amount of memory allocated
to it.
Example:
te
int age = 20;
double salary = 45000.50;
No
char grade = 'A';
2.1.2 Classification of Data Types
Java data types are broadly classified into:
1. Primitive Data Types
2. Non-Primitive (Reference) Data Types
2.1.3 Primitive Data Types
Primitive data types are predefined by Java and store simple values.
13
Object Oriented Programming using Java (25CSH-238)
Data Type Size Example
byte 1 Byte 100
short 2 Bytes 2500
int 4 Bytes 250000
long 8 Bytes 987654321L
float 4 Bytes 3.14f
double 8 Bytes 3.141592
char 2 Bytes ’A’
boolean 1 Bit (logical) true/false
2.1.4 Non-Primitive Data Types
These store references to objects rather than actual values.
Examples:
• String
• Arrays
• Classes
ify
te
• Interfaces
Key Point
No
Primitive data types store actual values, whereas non-primitive data types store references
to objects.
2.2 Java Operators
2.2.1 What is an Operator?
An operator is a symbol that performs an operation on one or more operands.
Example:
int sum = a + b;
2.2.2 Types of Operators
Arithmetic Operators
+, −, ∗, /, %
Used for mathematical calculations.
Example
Object Oriented Programming using Java (25CSH-238)
10 % 3 = 1
Relational Operators
>, <, >=, <=, ==, ! =
Return either true or false.
Logical Operators
&&, ||, !
Used to combine conditions.
Assignment Operators
=, + =, − =, ∗ =, / =
Unary Operators
ify
++, −−
te
Increment or decrement variable values.
Bitwise Operators
No
&, |,ˆ, <<, >>
Operate directly on binary representations.
2.2.3 Solved Example
Suppose
int a = 10;
int b = 3;
Then
a + b = 13
a/b = 3
a%b = 1
Object Oriented Programming using Java (25CSH-238)
2.3 Conditional Statements
2.3.1 Purpose
Conditional statements allow programs to make decisions based on conditions.
2.3.2 if Statement
Executes a block only if the condition is true.
if(age >= 18)
{
[Link]("Eligible");
}
2.3.3 if-else Statement
Chooses between two alternatives.
ify
te
2.3.4 Nested if
Allows one if statement inside another.
Useful for checking multiple conditions.
No
2.3.5 if-else-if Ladder
Checks several conditions sequentially.
The first true condition is executed.
Remember
Decision-making statements execute only the block whose condition evaluates to true.
2.4 Iteration Statements
2.4.1 Purpose
Iteration statements repeatedly execute a block of code until a condition becomes false.
Object Oriented Programming using Java (25CSH-238)
2.4.2 for Loop
Used when the number of iterations is known.
for(int i=1;i<=5;i++)
{
[Link](i);
}
2.4.3 while Loop
Condition is checked before every iteration.
Useful when the number of iterations is unknown.
2.4.4 do-while Loop
do
{
ify
The loop body executes at least once because the condition is checked after execution.
te
...
}
while(condition);
No
2.4.5 Solved Example
Output of
for(int i=1;i<=3;i++)
is
1 2 3
Common Doubt
A do-while loop executes at least once even if the condition is initially false.
2.5 Switch Case
2.5.1 Introduction
The switch statement selects one block of code from multiple alternatives based on the value
of an expression.
Object Oriented Programming using Java (25CSH-238)
2.5.2 Syntax
switch(choice)
{
case 1:
...
break;
case 2:
...
break;
default:
...
}
2.5.3 Role of break
ify
The break statement exits the switch block.
te
Without break, execution continues into the next case (fall-through).
2.5.4 Advantages
No
• Cleaner than multiple if-else statements.
• Easier to read.
2.6 Arrays
2.6.1 Introduction
An array is a collection of elements of the same data type stored in contiguous memory locations.
2.6.2 Declaration
int marks[] = new int[5];
2.6.3 Initialization
int marks[] = {75,80,90,88,92};
Object Oriented Programming using Java (25CSH-238)
2.6.4 Accessing Elements
Array indexing starts from 0.
marks[0] = 75
marks[4] = 92
2.6.5 Advantages
• Stores multiple values efficiently.
• Easy traversal using loops.
2.6.6 Solved Example
Given
int arr[] = {5,10,15};
ify
te
Then
arr[1] = 10
No
2.7 Recursion
2.7.1 Definition
Recursion is a technique where a method calls itself to solve smaller instances of the same
problem.
Every recursive method must have:
• Base Case
• Recursive Case
2.7.2 Example
Factorial
5! = 5 × 4!
Object Oriented Programming using Java (25CSH-238)
4! = 4 × 3!
Eventually,
1! = 1
which acts as the base case.
2.7.3 Advantages
• Elegant solution for recursive problems.
• Simplifies divide-and-conquer algorithms.
2.7.4 Limitations
ify
• More memory usage due to function calls.
• May cause Stack Overflow if the base case is missing.
te
Key Point
Without a base case, recursion continues indefinitely and eventually causes a Stack Over-
flow Error.
No
2.8 Java Constructor
2.8.1 Definition
A constructor is a special member of a class that initializes objects.
Its name is the same as the class name and it has no return type.
2.8.2 Characteristics
• Automatically called during object creation.
• Used for initialization.
• Can be overloaded.
Example:
Student s = new Student();
The constructor executes automatically.
Object Oriented Programming using Java (25CSH-238)
2.9 Parameterized Constructor
2.9.1 Definition
A parameterized constructor accepts arguments during object creation.
2.9.2 Example
Student(int r, String n)
{
rollNo = r;
name = n;
}
Object creation:
Student s1 = new Student(101,"Rahul");
2.9.3 Advantage
ify
te
Allows different objects to be initialized with different values.
2.10 Copy Constructor
No
2.10.1 Introduction
Unlike C++, Java does not provide a built-in copy constructor.
However, a programmer can create one manually.
2.10.2 Example
Student(Student s)
{
rollNo = [Link];
name = [Link];
}
Now
Student s2 = new Student(s1);
creates a copy of object s1.
Object Oriented Programming using Java (25CSH-238)
2.10.3 Purpose
• Duplicate existing objects.
• Avoid repeated initialization.
Exam Point
Java does not have an automatic copy constructor like C++. It must be implemented
explicitly by the programmer.
2.11 Finalize Method
2.11.1 Definition
The finalize() method is invoked by the Garbage Collector before an object is destroyed.
ify
Its purpose is to release resources if required.
2.11.2 Syntax
te
protected void finalize()
{
...
No
2.11.3 Working
1. Object becomes unreachable.
2. Garbage Collector identifies it.
3. The finalize() method may execute.
4. Memory is reclaimed.
2.11.4 Important Note
Modern Java discourages using finalize() because its execution is unpredictable. Better
alternatives include try-with-resources and explicit resource management.
Object Oriented Programming using Java (25CSH-238)
Common Misconception
The final, finally, and finalize() keywords are completely different:
• final – prevents modification or inheritance.
• finally – executes after a try-catch block.
• finalize() – called before object destruction (deprecated in modern Java).
2.12 Comparison of Constructors
Constructor Type Purpose Arguments
Default Constructor Default initialization None
Parameterized Constructor User-defined initialization Yes
2.13
Copy Constructor
Chapter Summary
ify
Copy an existing object Existing object
Key Takeaways
te
• Java provides primitive and non-primitive data types.
• Operators perform arithmetic, logical, relational, assignment, unary, and bitwise
No
operations.
• Conditional statements control program flow based on logical conditions.
• Iteration statements repeatedly execute code until a stopping condition is met.
• Switch statements simplify multi-way selection.
• Arrays store multiple values of the same type using index-based access.
• Recursion solves problems by repeatedly calling the same method until a base case
is reached.
• Constructors initialize objects automatically during object creation.
• Parameterized constructors initialize objects with user-provided values.
• Java supports programmer-defined copy constructors.
• The finalize() method was traditionally used before garbage collection but is
deprecated in modern Java.
Chapter 3
Java String
3.1 Java String
3.1.1 What is a String? ify
A String is a sequence of characters used to represent text in Java.
Unlike primitive data types, a String is an object of the predefined String class in the
[Link] package.
te
3.1.2 Creating Strings
No
Strings can be created in two ways.
Using String Literal
String name = "Subhayu";
The string is stored in the String Pool, allowing memory sharing.
Using the new Keyword
String name = new String("Subhayu");
A new object is created in heap memory even if the same value already exists.
Key Idea
Strings created using literals are stored in the String Constant Pool, while those created
using new are stored as separate objects in heap memory.
24
Object Oriented Programming using Java (25CSH-238)
3.1.3 String Immutability
Strings in Java are immutable.
Once a String object is created, its value cannot be changed.
Example:
String s = "Java";
s = s + " Programming";
A new String object is created instead of modifying the original one.
3.1.4 Advantages of Immutability
• Improved security
• Better memory utilization
• Thread safety
ify
• Efficient String Pool implementation
te
3.1.5 Common String Methods
Method Purpose
No
length() Returns length of string
charAt() Returns character at index
substring() Extracts part of string
toUpperCase() Converts to uppercase
toLowerCase() Converts to lowercase
equals() Compares string contents
compareTo() Lexicographical comparison
concat() Joins strings
contains() Checks substring
trim() Removes leading/trailing spaces
replace() Replaces characters
3.1.6 Solved Example
Given
String s = "JAVA";
Object Oriented Programming using Java (25CSH-238)
Then
[Link]() = 4
[Link](2) = V
[Link]() = ”java”
3.2 Java StringBuffer
3.2.1 Introduction
StringBuffer is a mutable sequence of characters.
3.2.2 Example
ify
Unlike String, its contents can be modified without creating new objects.
StringBuffer sb = new StringBuffer("Java");
te
[Link](" Programming");
No
Result:
Java Programming
3.2.3 Common Methods
Method Purpose
append() Adds text
insert() Inserts characters
delete() Deletes characters
replace() Replaces characters
reverse() Reverses string
capacity() Returns buffer capacity
3.2.4 Why StringBuffer?
Suppose a loop repeatedly concatenates strings.
Using String:
• Creates many temporary objects.
Object Oriented Programming using Java (25CSH-238)
Using StringBuffer:
• Same object is modified.
• Faster execution.
Remember
String is immutable.
StringBuffer is mutable.
3.3 Static Keyword
3.3.1 Introduction
The static keyword makes a member belong to the class rather than individual objects.
3.3.2 Static Variable
ify
Only one copy of a static member exists.
te
Shared among all objects.
Example:
No
class Student
{
static String college = "CU";
}
All Student objects share the same college name.
3.3.3 Static Method
Can be called without creating an object.
Example:
[Link](25);
3.3.4 Static Block
Executed only once when the class is loaded into memory.
Example:
Object Oriented Programming using Java (25CSH-238)
static
{
[Link]("Class Loaded");
}
3.3.5 Advantages
• Saves memory
• Easy access using class name
• Useful for common data
3.3.6 Solved Example
If five Student objects are created,
all use
ify
S1 , S 2 , S 3 , S 4 , S 5
te
[Link]
instead of maintaining five separate copies.
No
3.4 Super Keyword
3.4.1 Introduction
The super keyword refers to the immediate parent class.
It is mainly used to access parent class members.
3.4.2 Uses of super
Access Parent Class Variables
[Link];
Call Parent Class Method
[Link]();
Object Oriented Programming using Java (25CSH-238)
Invoke Parent Constructor
super();
It should be the first statement inside a constructor.
3.4.3 Example
Suppose
class Animal
{
void sound()
}
class Dog extends Animal
{
void sound()
{
ify
[Link]();
te
}
}
No
Here,
[Link]()
calls the parent class method.
Key Point
The super keyword always refers to the immediate parent class.
3.5 This Keyword
3.5.1 Introduction
The this keyword refers to the current object of the class.
3.5.2 Uses of this
Refer Current Object Variables
[Link] = rollNo;
Object Oriented Programming using Java (25CSH-238)
Useful when local variables have the same name as instance variables.
Call Current Class Constructor
this();
Used for constructor chaining.
Pass Current Object
The current object can be passed as an argument to methods or constructors.
Return Current Object
Methods may return
this;
to support method chaining.
3.5.3 Solved Example
ify
te
class Student
{
int rollNo;
No
Student(int rollNo)
{
[Link] = rollNo;
}
}
Here,
[Link] o
refers to the instance variable, while
rollN o
refers to the constructor parameter.
Common Doubt
If a local variable and an instance variable have the same name, use the this keyword
to distinguish the instance variable.
Object Oriented Programming using Java (25CSH-238)
3.6 Difference Between String and StringBuffer
Feature String StringBuffer
Mutability Immutable Mutable
Memory Usage Creates new objects Modifies same object
Performance Slower for frequent changes Faster for modifications
Thread Safe Yes (immutable) Yes (synchronized)
3.7 Difference Between this and super
Feature this super
Refers To Current object Parent class object
Access Variables Current class Parent class
Call Constructor this() super()
Call Method Current class method Parent class method
3.8 Chapter Summary
ify
Key Takeaways
te
• A String is an immutable object used to store character sequences.
• String literals are stored in the String Constant Pool for memory efficiency.
No
• StringBuffer is mutable and suitable for frequent string modifications.
• The static keyword creates members shared by all objects of a class.
• The super keyword accesses members of the immediate parent class.
• The this keyword refers to the current object and resolves naming conflicts.
• Understanding the differences between String, StringBuffer, this, and super
is fundamental for writing efficient Java programs.
Object Oriented Programming using Java (25CSH-238)
Sample Questions
Section A (2 Marks)
1. Explain why Java is called a platform-independent language by describing the role of
Bytecode and JVM in program execution.
2. A Java application is compiled on Windows and executed on Linux without changing its
source code. Which Java feature makes this possible? Briefly justify.
3. Differentiate between JDK, JRE, and JVM based on their primary responsibilities in Java
program development and execution.
4. A class named Student is used to create 150 student records. Explain the relationship
between the class and its objects.
ify
5. Explain how abstraction and encapsulation together improve software security and main-
tainability in an object-oriented application.
6. A parent class contains a method display(), and the child class provides its own imple-
te
mentation. Which OOP concept is demonstrated, and how is Dynamic Binding involved?
7. State the purpose of the static keyword. Why is a static variable shared among all
No
objects of a class?
8. A variable stores the value 250000. Which primitive Java data type is most suitable?
Justify your answer.
9. Evaluate the following Java expressions:
15%4, 10 > 6 && 5 < 3
10. Explain why a do-while loop executes at least once even if the loop condition is initially
false.
11. A switch statement has three cases but no break statements. What behaviour will occur
during execution?
12. An array is declared as:
int arr[] = {12, 18, 25, 30, 40};
Determine the values stored at indices 0, 2, and 4.
Object Oriented Programming using Java (25CSH-238)
13. Explain the importance of a base case in recursion. What problem occurs if it is omitted?
14. A parameterized constructor receives three arguments during object creation. State its
purpose and one advantage over a default constructor.
15. Differentiate between Java String and StringBuffer based on memory usage and mu-
tability.
Section B (5 Marks)
1. Explain the complete execution process of a Java program from writing the source code
to obtaining the final output. Clearly describe the role of JDK, compiler, Bytecode, JRE,
and JVM using a neat flow diagram.
2. Explain the four pillars of Object-Oriented Programming—Abstraction, Encapsulation,
ify
Inheritance, and Polymorphism—with suitable real-life examples. Also discuss the role
of Dynamic Binding in runtime polymorphism.
3. Explain the different categories of Java operators with suitable examples. Evaluate the
following expressions and justify each result:
te
25%6, (8 > 5) || (4 > 9), + + x where x = 7
No
4. Compare the working of if-else statements and switch-case statements. Write the
logic (or suitable code) to display the day of the week for a given integer between 1 and
7 using a switch statement.
5. Explain the working of arrays in Java. Write an algorithm or Java program to:
(a) Store five integers in an array.
(b) Find the largest element.
(c) Compute the average of all elements.
6. Explain recursion with the help of a recursive function to calculate the factorial of a num-
ber. Trace the recursive calls for:
5!
7. Explain the purpose of constructors in Java. Compare the Default Constructor, Parame-
terized Constructor, and Copy Constructor with suitable examples. Also mention when
each is preferred.
8. Explain the concept of String immutability in Java. Compare String and StringBuffer
with respect to memory allocation, performance, and applications where each is preferred.
Object Oriented Programming using Java (25CSH-238)
9. Explain the purpose and applications of the this, super, and static keywords in Java.
Illustrate their working using suitable class hierarchy examples.
10. A class contains the following members:
• One static variable named college
• Two instance variables: rollNo and name
Three objects are created with different roll numbers and names.
(a) How many copies of each variable exist in memory?
(b) Explain why this memory allocation occurs.
(c) Which keyword enables this behaviour?
ify
te
No
Closing Note
I sincerely hope that these notes and the preparatory questions included alongside them prove
helpful in strengthening your understanding and boosting your confidence for the examination
you are preparing for.
As you revise, try not to rush through the content—pause at examples, work out the numer-
icals on your own, and revisit sections that feel slightly uncomfortable. That discomfort usually
signals learning in progress. Use these notes as a guide and a companion, not as something to
be memorized line by line. ify
Wishing you the very best for your exams—may your preparation feel clear, structured, and
calm when it matters most.
For future updates, refinements, and additional resources, keep checking Noteify:
te
[Link]
No
If you have any doubts, suggestions, or simply wish to connect, feel free to reach out to me
on LinkedIn:
[Link]
You can also use the direct contact options provided on the Noteify website itself.
Regards,
Subhayu
35