1. Object-Oriented Programming Using C#
Objectives
In this session, you will learn to:
Define abstraction and encapsulation
Implement encapsulation by using access specifiers
Use methods
Ver. 1.0 Session 4 Slide 1 of 26
2. Object-Oriented Programming Using C#
Introducing Abstraction and Encapsulation
Abstraction and encapsulation are important features of any
object-oriented programming language.
Abstraction involves extracting only the relevant information.
Encapsulation involves packaging one or more components
together.
Ver. 1.0 Session 4 Slide 2 of 26
3. Object-Oriented Programming Using C#
Defining Abstraction
An automobile salesperson is aware that different people
have different preferences.
Some people are interested in the speed of a car, some in its
price, some in the engine, and the some in its style.
Although all of them want to buy a car, each of them is
interested in a specific attribute or feature.
The salesman knows all the details of a car, but he presents
only the relevant information to a potential customer.
As a result, a the salesman practices abstraction and presents
only relevant details to customer.
Ver. 1.0 Session 4 Slide 3 of 26
4. Object-Oriented Programming Using C#
Defining Encapsulation
Encapsulation literally means ‘to enclose in or as if in a
capsule’.
Encapsulation is defined as the process of enclosing one or
more items within a physical or logical package.
It involves preventing access to nonessential details.
Ver. 1.0 Session 4 Slide 4 of 26
5. Object-Oriented Programming Using C#
Implementing Encapsulation by Using Access Specifiers
An access specifier defines the scope of a class member.
A class member refers to the variables and functions in a
class.
A program can have one or more classes.
You may want some members of a class to be accessible to
other classes.
But, you may not want some other members of the class to
be accessible outside the class.
Ver. 1.0 Session 4 Slide 5 of 26
6. Object-Oriented Programming Using C#
Types of Access Specifiers
C# supports the following access specifiers:
public
private
protected
internal
protected internal
Ver. 1.0 Session 4 Slide 6 of 26
7. Object-Oriented Programming Using C#
Demo: Calculating Area and Volume by Using Access Specifiers
Problem Statement:
Write a program to calculate the area of a rectangle and a
square.
Ver. 1.0 Session 4 Slide 7 of 26
8. Object-Oriented Programming Using C#
Using Methods
A method is a set of one or more program statements,
which can be executed by referring to the method name.
To use methods, you need to:
Define methods
Call methods
Ver. 1.0 Session 4 Slide 8 of 26
9. Object-Oriented Programming Using C#
Defining Methods
Defining a method means declaring the elements of its
structure.
Consider the syntax of defining a method:
<Access specifier> <Return Type> <Method
Name>(Parameter List)
{
Method Body
}
Ver. 1.0 Session 4 Slide 9 of 26
10. Object-Oriented Programming Using C#
Defining Methods (Contd.)
The elements of the method declaration include the method
name, the parameters list, the return type, and the method
body.
The following are the elements of a method:
Access specifier
Return type
Method name
Parameter list
Method body
Let us understand each of the element of the method
declaration.
Ver. 1.0 Session 4 Slide 10 of 26
11. Object-Oriented Programming Using C#
Defining Methods (Contd.)
Defining a method means declaring the
This determines the
elements of its structure. extent to which a
Consider the syntax of defining avariable or method
method: can be accessed
<Access specifier> <Return Type> from another class.
<Method Name>(Parameter List)
{
Method Body
}
Ver. 1.0 Session 4 Slide 11 of 26
12. Object-Oriented Programming Using C#
Defining Methods (Contd.)
A method can return
Defining a method means declaring the
elements of its structure. a value of any type.
Consider the syntax of defining aIf the method is not
method: returning any value,
<Access specifier> <Return Type> use void as the
<Method Name>(Parameter List) return type.
{
Method Body
}
Ver. 1.0 Session 4 Slide 12 of 26
13. Object-Oriented Programming Using C#
Defining Methods (Contd.)
Defining a method means declaring the This is a unique
elements of its structure. identifier and is
Consider the syntax of defining a method: case-sensitive.
<Access specifier> <Return Type> The method name
<Method Name>(Parameter List) cannot be the
{ same as the
Method Body
variable name or
any other
}
non-method item
declared in the
class.
Ver. 1.0 Session 4 Slide 13 of 26
14. Object-Oriented Programming Using C#
Defining Methods (Contd.)
Defining a method means declaring the This is used to
elements of its structure. pass and receive
Consider the syntax of defining a method: the data from a
<Access specifier> <Return Type> method. It is
<Method Name>(Parameter List) enclosed between
{ parentheses. The
Method Body
parentheses are
included even if
}
there are no
parameters.
Ver. 1.0 Session 4 Slide 14 of 26
15. Object-Oriented Programming Using C#
Defining Methods (Contd.)
Defining a method means declaring the This contains the
elements of its structure. set of instructions
Consider the syntax of defining a needed to complete
method: the required activity.
<Access specifier> <Return Type>
<Method Name>(Parameter List)
{
Method Body
}
Ver. 1.0 Session 4 Slide 15 of 26
16. Object-Oriented Programming Using C#
Calling Methods
After defining the method, you can execute it by calling it.
You can call a method by using the name of the method.
The method name is followed by parentheses even if the
method call has no parameters, as shown in the following
example:
MethodName();
Ver. 1.0 Session 4 Slide 16 of 26
17. Object-Oriented Programming Using C#
Calling Methods (Contd.)
The following is an example of calling methods:
using System;
class Calculator
{
public int AddNumber(int num1, int num2)
{
int result;
result = num1 + num2;
return result;
}
static void Main(string[] args)
Ver. 1.0 Session 4 Slide 17 of 26
18. Object-Oriented Programming Using C#
Calling Methods (Contd.)
{
Calculator cal = new Calculator();
// The following statement is calling the
// AddNumber method and passing 10 and
// 20 as the parameter list.
int value=cal.AddNumber(10, 20);
Console.WriteLine("The result is
{0}", value);
Console.ReadLine();
}
}
Ver. 1.0 Session 4 Slide 18 of 26
19. Object-Oriented Programming Using C#
Using Methods with Parameters
Methods can also be declared with parameters. Consider
the example of declared a method with parameters:
void DisplayResult (int result)
{
//…..
}
When the methods are declared with parameters, they
should be called with parameters. The methods with
parameters are called by passing the value using the
following mechanism:
Value
Reference
Output
Ver. 1.0 Session 4 Slide 19 of 26
20. Object-Oriented Programming Using C#
Using Methods with Parameters (Contd.)
• Value: The parameters passed by value creates a separate
copy in the memory. The following example shows the
parameters passed by value:
void CalculateSum( int num1, int num2)
{
//…
}
void Accept()
{
int val1=10;
int val2=2;
CalculateSum(val1,val2);
}
Ver. 1.0 Session 4 Slide 20 of 26
21. Object-Oriented Programming Using C#
Using Methods with Parameters (Contd.)
• Reference: The parameters passed by reference does not
creates a separate copy of the variable in the memory. A
reference parameter stores the memory address of the data
member passed. The following example shows the
parameters passed by reference:
void CalculateSum( ref int num1,ref int num2)
{
//…
}
void Accept()
{
int val1=10;
int val2=2;
CalculateSum( ref val1,ref val2);
}
Ver. 1.0 Session 4 Slide 21 of 26
22. Object-Oriented Programming Using C#
Using Methods with Parameters (Contd.)
• Output: The output parameters are used to pass the value
out of the method. The following example shows the
parameters passed by reference:
void CalculateSum( ref int num1,ref int num2, out
int result)
{
result=num1+num2;
}
void Accept()
{
int val1=10;
int val2=2;
int recieveVal;
CalculateSum( ref val1,ref val2,out
recieveVal);
}
Ver. 1.0 Session 4 Slide 22 of 26
23. Object-Oriented Programming Using C#
Demo: Swapping Two Numbers by Using Methods with Parameters
Problem Statement:
Write a program to swap two numbers by using reference type
parameters in a method.
Ver. 1.0 Session 4 Slide 23 of 26
24. Object-Oriented Programming Using C#
Summary
In this session, you learned that:
Abstraction is the process of reducing information content in
order to retain only the relevant information for a particular
purpose.
Encapsulation is the process of hiding all the details of an
object that do not contribute to its essential characteristics.
An access specifier is used to determine whether any other
class or function can access the member variables and
functions of a particular class.
The public access specifier allows a class to expose its
member variables and member functions to other functions
and objects.
The private access specifier allows a class to hide its member
variables and member functions from other class functions and
objects.
Ver. 1.0 Session 4 Slide 24 of 26
25. Object-Oriented Programming Using C#
Summary (Contd.)
The protected access specifier allows a class to hide its
member variables and member functions from other class
objects and functions, just like the private access specifier
while implementing inheritance.
A method is a set of one or more program statements that can
be executed by referring to the method name.
Defining a method means declaring the elements of its
structure.
The access modifiers that can be used with methods are
public, protected, internal, protected internal, and private.
Parameters allow information to be passed into and out of a
method. When you define a method, you can include a list of
parameters in parentheses.
Ver. 1.0 Session 4 Slide 25 of 26
26. Object-Oriented Programming Using C#
Summary (Contd.)
Parameters can be passed by using any one of the following
parameters types:
• Value
• Reference
• Output
– Pass by value is the default mechanism for passing
parameters in C#.
– A reference parameter is a reference to a memory location of a
data member.
– Output parameters are like reference parameters, except that
they transfer data out of the method rather than into it.
– The return statement is used to return the control to the caller.
Ver. 1.0 Session 4 Slide 26 of 26
Editor's Notes
Students have learnt the structure of different types of dimensions and the importance of surrogate keys in Module I. In this session, students will learn to load the data into the dimension tables after the data has been transformed in the transformation phase. In addition, students will also learn to update data into these dimension tables. Students already know about different types of dimension tables. Therefore, you can start the session by recapitulating the concepts. Initiate the class by asking the following questions: 1. What are the different types of dimensions? 2. Define flat dimension. 3. What are conformed dimension? 4. Define large dimension. 5. Define small dimension. 6. What is the importance of surrogate key in a dimension table? Students will learn the loading and update strategies theoretically in this session. The demonstration to load and update the data in the dimension table will be covered in next session.
Students know the importance of surrogate keys. In this session students will learn the strategy to generate the surrogate key. Give an example to explain the strategy to generate the surrogate keys by concatenating the primary key of the source table with the date stamp. For example, data from a Product table has to be loaded into the Product_Dim dimension table on Feb 09, 2006. The product_code is the primary key column in the Product table. To insert the surrogate key values before loading the data into the dimension table, you can combine the primary key value with the date on which the data has to be loaded. In this case the surrogate key value can be product_code+09022006.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Students know what is the structure of Flat dimension. You can initiate the session by asking the following questions: 1. What are flat dimension tables? 2. What is the structure of flat dimension? 3. Given examples of a flat dimension? Next, tell the strategy to load the data into the flat dimension table. You can explain the loading strategy with the help of the example given in SG. Continue this session by asking the following questions: 4. What are large flat dimension tables? 5. Give examples of large flat dimensions? Then, explain the strategy to load data into the large flat dimension table. Before explaining the strategy to load data into the small dimension table ask the following questions and the tell the strategy to load the data into the dimension table. 6. What are small flat dimension tables? 7. Give examples of small flat dimension tables. With the help of these questions, students will be able to recall about flat dimensions, they have learnt in Module I. Explain this topic with the help of an example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 1 SCDs? Given an example to explain type 1 SCDs. This will recapitulate what they have learnt about type 1 SCD in Module 1. Now explain the strategy to load the data into these dimension tables with help of the given diagram. Relate this diagram to the example given in SG.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
Student already have learnt about type 2 SCDs in Module I. Therefore, you can start this topic by asking the following questions to students: What are type 2 SCDs? Given an example to explain type 2 SCDs. This will recapitulate what they have learnt about type 2 SCD in Module 1. Now explain the strategy to update the data into these dimension tables with help the example given in SG. After explaining the examples, you can ask students to think of an example of a type 2 SCD and then tell the strategy to update the data into this dimension table.
You can summarize the session by running through the summary given in SG. In addition, you can also ask students summarize what they have learnt in this session.
You can summarize the session by running through the summary given in SG. In addition, you can also ask students summarize what they have learnt in this session.
You can summarize the session by running through the summary given in SG. In addition, you can also ask students summarize what they have learnt in this session.