SlideShare a Scribd company logo
Using Objects and Classes
Defining Simple Classes
Objects and Classes
Software University
http://softuni.bg
SoftUni Team
Technical Trainers
Table of Contents
1. Objects
2. Classes
3. Built in Classes
4. Defining Simple Classes
 Properties
 Methods
 Constructors
2
sli.do
#fund-csharp
Have a Question?
3
Objects and Classes
What is an Object? What is a Class?
Objects
 An object holds a set of named values
 E.g. birthday object holds day, month and year
 Creating a birthday object:
5
var birthday = new { Day = 22, Month = 6, Year = 1990 };
Birthday
Day = 22
Month = 6
Year = 1990 The new operator creates
a new object
var day = new DateTime(
2019, 2, 25);
Console.WriteLine(day);
Object
properties
Object
name
Create a new object
of type DateTime
Classes
 In programming, classes provide the structure for objects
 Act as template for objects of the same type
 Classes define:
 Data (properties), e.g. Day, Month, Year
 Actions (behaviour), e.g. AddDays(count),
Subtract(date)
 One class may have many instances (objects)
 Sample class: DateTime
 Sample objects: peterBirthday, mariaBirthday
6
Objects - Instances of Classes
 Creating the object of a defined class is
called instantiation
 The instance is the object itself, which is
created runtime
 All instances have common behaviour
7
DateTime date1 = new DateTime(2018, 5, 5);
DateTime date2 = new DateTime(2016, 3, 5);
DateTime date3 = new DateTime(2013, 12, 31);
Objects and Classes – Example
8
DateTime peterBirthday = new DateTime(1996, 11, 27);
DateTime mariaBirthday = new DateTime(1995, 6, 14);
Console.WriteLine("Peter's birth date: {0:d-MMM-yyyy}",
peterBirthday); // 27-Nov-1996
Console.WriteLine("Maria's birth date: {0:d-MMM-yyyy}",
mariaBirthday); // 14-Jun-1995
var mariaAfter18Months = mariaBirthday.AddMonths(18);
Console.WriteLine("Maria after 18 months: {0:d-MMM-yyyy}",
mariaAfter18Months); // 14-Dec-1996
TimeSpan ageDiff = peterBirthday.Subtract(mariaBirthday);
Console.WriteLine("Maria older than Peter by: {0} days",
ageDiff.Days); // 532 days
Classes vs. Objects
 Classes provide structure for
creating objects
 An object is a single
instance of a class
9
class
DateTime
Day: int
Month: int
Year: int
AddDays(…)
Subtract(…)
Class actions
(methods)
Class name
Class data
(properties)
object
peterBirthday
Day = 27
Month = 11
Year = 1996
Object
name
Object
data
 You are given a date in format day-month-year
 Calculate and print the day of week in English
Problem: Day of Week
10
18-04-2016 Monday 27-11-1996
string dateAsText = Console.ReadLine();
DateTime date = DateTime.ParseExact(dateAsText, "d-M-yyyy",
CultureInfo.InvariantCulture);
Console.WriteLine(date.DayOfWeek);
ParseExact(…) needs a
format string + culture
(locale)
Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
Wednesday
Using the Built-in API Classes
Math, Random, BigInteger, ...
 .NET Core provides thousands of ready-to-use classes
 Packaged into namespaces like System, System.Text,
System.Collections, System.Linq, System.Net, etc.
 Using static .NET class members:
 Using non-static .NET classes
Built-in API Classes in .NET Core
12
DateTime today = DateTime.Now;
double cosine = Math.Cos(Math.PI);
Random rnd = new Random();
int randomNumber = rnd.Next(1, 99);
 You are given a list of words
 Randomize their order and print each word at a separate line
Problem: Randomize Words
13
Note: The output is a sample. It
should always be different!
a b
b
a
PHP Java C#
Java
PHP
C#
Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
Solution: Randomize Words
14
string[] words = Console.ReadLine().Split(' ');
Random rnd = new Random();
for (int pos1 = 0; pos1 < words.Length; pos1++)
{
int pos2 = rnd.Next(words.Length);
// TODO: Swap words[pos1] with words[pos2]
}
Console.WriteLine(string.Join(Environment.NewLine, words));
Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
 Calculate n! (n factorial) for very big n (e.g. 1000)
Problem: Big Factorial
15
50
3041409320171337804361260816606476884437764156
8960512000000000000
5 120 10 3628800 12 479001600
88
1854826422573984391147968456455462843802209689
4939934668442158098688956218402819931910014124
4804501828416633516851200000000000000000000
Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
Solution: Big Factorial
16
using System.Numerics;
...
int n = int.Parse(Console.ReadLine());
BigInteger f = 1;
for (int i = 2; i <= n; i++)
f *= i;
Console.WriteLine(f);
Use the .NET API class
System.Numerics
.BigInteger
N!Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
Defining Classes
Creating Custom Classes
 Specification of a given type of objects from
the real-world
 Classes provide structure for describing
and creating objects
Defining Simple Classes
class Dice
{
…
}
Class name
Class body
Keyword
18
Naming Classes
 Use PascalCase naming
 Use descriptive nouns
 Avoid abbreviations (except widely known, e.g. URL,
HTTP, etc.)
19
class Dice { … }
class BankAccount { … }
class IntegerCalculator { … }
class TPMF { … }
class bankaccount { … }
class intcalc { … }
 Class is made up of state and behavior
 Properties store state
 Methods describe behaviour
Class Members
20
class Dice
{
public int Sides { get; set; }
public string Type { get; set; }
public void Roll() { }
}
Properties
Method
 A class can have many instances (objects)
Creating an Object
21
class Program
{
public static void Main()
{
Dice diceD6 = new Dice();
Dice diceD8 = new Dice();
}
}
Use the new
keyword
 Describe the characteristics of a given class
Properties
22
class Student
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
The getter provides
access to the field
The setter provides
field change
 Store executable code (algorithm)
Methods
23
class Dice
{
public int Sides { get; set; }
public int Roll()
{
Random rnd = new Random();
return rnd.Next(1, Sides + 1);
}
}
 Special methods, executed during object creation
Constructors
24
class Dice
{
public int Sides { get; set; }
public Dice()
{
this.Sides = 6;
}
}
Overloading default
constructor
Constructor name is
the same as the name
of the class
 You can have multiple constructors in the same class
Constructors (2)
25
class Dice
{
public Dice() { }
public Dice(int sides)
{
this.Sides = sides;
}
p int Sides { get; set; }
}
class StartUp
{
public static void Main()
{
Dice dice1 = new Dice();
Dice dice2 = new Dice(7);
}
}
 Classes can define data (state) and operations (actions)
Class Operations
26
class Rectangle
{
public int Top { get; set; }
public int Left { get; set; }
public int Width { get; set; }
public int Height { get; set; }
int CalcArea()
{
return Width * Height;
}
Classes may hold
data (properties)
Classes may hold
operations
(methods)
Class Operations (2)
27
public int Bottom
{
get
{
return Top + Height;
}
}
public int Right
{
get
{
return Left + Width;
}
}
Calculated
property
Calculated
property
public bool IsInside(Rectangle r)
{
return (r.Left <= Left) && (r.Right >= Right) &&
(r.Top <= Top) && (r.Bottom >= Bottom);
}
Boolean
method
 …
 …
 …
Summary
28
 Objects
 Holds a set of named values
 Instance of a class
 Classes define templates for object
 Methods
 Constructors
 Properties
 https://softuni.bg/courses/technology-fundamentals 29
SoftUni Diamond Partners
30
SoftUni Organizational Partners
31
 Software University – High-Quality Education and
Employment Opportunities
 softuni.bg
 Software University Foundation
 http://softuni.foundation/
 Software University @ Facebook
 facebook.com/SoftwareUniversity
 Software University Forums
 forum.softuni.bg
Trainings @ Software University (SoftUni)
32
 This course (slides, examples, demos, videos, homework, etc.)
is licensed under the "Creative Commons Attribution-NonCom
mercial-ShareAlike 4.0 International" license
License
33

More Related Content

PPTX
11. Java Objects and classes
PPTX
14 Defining Classes
PPTX
Java Foundations: Objects and Classes
PPTX
14. Java defining classes
PPTX
20.2 Java inheritance
PPT
14. Defining Classes
PPTX
Java Foundations: Basic Syntax, Conditions, Loops
PPTX
20.5 Java polymorphism
11. Java Objects and classes
14 Defining Classes
Java Foundations: Objects and Classes
14. Java defining classes
20.2 Java inheritance
14. Defining Classes
Java Foundations: Basic Syntax, Conditions, Loops
20.5 Java polymorphism

What's hot (20)

PPTX
05. Java Loops Methods and Classes
PPTX
Java Foundations: Data Types and Type Conversion
PPTX
03 and 04 .Operators, Expressions, working with the console and conditional s...
PPT
C++ classes tutorials
PPT
Basic c#
PDF
C# Summer course - Lecture 4
PDF
C# Summer course - Lecture 3
PPTX
15. Streams Files and Directories
PPTX
07. Java Array, Set and Maps
PPT
java tutorial 2
PPTX
Classes in c++ (OOP Presentation)
PPTX
Java Foundations: Methods
PPT
java tutorial 3
PPTX
classes and objects in C++
PPTX
11. java methods
PPT
Visula C# Programming Lecture 6
PPTX
13. Java text processing
PPTX
19. Java data structures algorithms and complexity
PPTX
SPF Getting Started - Console Program
PPTX
Class object method constructors in java
05. Java Loops Methods and Classes
Java Foundations: Data Types and Type Conversion
03 and 04 .Operators, Expressions, working with the console and conditional s...
C++ classes tutorials
Basic c#
C# Summer course - Lecture 4
C# Summer course - Lecture 3
15. Streams Files and Directories
07. Java Array, Set and Maps
java tutorial 2
Classes in c++ (OOP Presentation)
Java Foundations: Methods
java tutorial 3
classes and objects in C++
11. java methods
Visula C# Programming Lecture 6
13. Java text processing
19. Java data structures algorithms and complexity
SPF Getting Started - Console Program
Class object method constructors in java
Ad

Similar to 11. Objects and Classes (20)

PPTX
Object-Oriented Programming with C#
PPT
Classes1
PPT
11 Using classes and objects
PPT
Using class and object java
PPTX
03 classes interfaces_principlesofoop
PDF
Lecture08 computer applicationsie1_dratifshahzad
PPTX
Software development fundamentals
DOCX
Question and answer Programming
PPT
Oops concept in c#
DOC
C# by Zaheer Abbas Aghani
DOC
C# by Zaheer Abbas Aghani
PDF
how to design classes
DOCX
Skip to content· Safari· Recommended· Queue· · Recent.docx
PPTX
Data Types & Objects .pptx
DOCX
C# Unit 2 notes
PPTX
.Net Framework 2 fundamentals
PPTX
5. c sharp language overview part ii
PPTX
C# overview part 2
PPTX
Object Oriented Programming using C++: Ch06 Objects and Classes.pptx
PPTX
Is2215 lecture2 student(2)
Object-Oriented Programming with C#
Classes1
11 Using classes and objects
Using class and object java
03 classes interfaces_principlesofoop
Lecture08 computer applicationsie1_dratifshahzad
Software development fundamentals
Question and answer Programming
Oops concept in c#
C# by Zaheer Abbas Aghani
C# by Zaheer Abbas Aghani
how to design classes
Skip to content· Safari· Recommended· Queue· · Recent.docx
Data Types & Objects .pptx
C# Unit 2 notes
.Net Framework 2 fundamentals
5. c sharp language overview part ii
C# overview part 2
Object Oriented Programming using C++: Ch06 Objects and Classes.pptx
Is2215 lecture2 student(2)
Ad

More from Intro C# Book (19)

PPTX
17. Java data structures trees representation and traversal
PPTX
Java Problem solving
PPTX
21. Java High Quality Programming Code
PPTX
20.4 Java interfaces and abstraction
PPTX
20.3 Java encapsulation
PPTX
20.1 Java working with abstraction
PPTX
18. Java associative arrays
PPTX
16. Java stacks and queues
PPTX
12. Java Exceptions and error handling
PPTX
09. Java Methods
PPTX
02. Data Types and variables
PPTX
01. Introduction to programming with java
PPTX
23. Methodology of Problem Solving
PPTX
Chapter 22. Lambda Expressions and LINQ
PPTX
21. High-Quality Programming Code
PPTX
19. Data Structures and Algorithm Complexity
PPTX
18. Dictionaries, Hash-Tables and Set
PPTX
16. Arrays Lists Stacks Queues
PPTX
17. Trees and Tree Like Structures
17. Java data structures trees representation and traversal
Java Problem solving
21. Java High Quality Programming Code
20.4 Java interfaces and abstraction
20.3 Java encapsulation
20.1 Java working with abstraction
18. Java associative arrays
16. Java stacks and queues
12. Java Exceptions and error handling
09. Java Methods
02. Data Types and variables
01. Introduction to programming with java
23. Methodology of Problem Solving
Chapter 22. Lambda Expressions and LINQ
21. High-Quality Programming Code
19. Data Structures and Algorithm Complexity
18. Dictionaries, Hash-Tables and Set
16. Arrays Lists Stacks Queues
17. Trees and Tree Like Structures

Recently uploaded (20)

PDF
WebRTC in SignalWire - troubleshooting media negotiation
PPTX
innovation process that make everything different.pptx
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
PPTX
CSharp_Syntax_Basics.pptxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PDF
Centralized Business Email Management_ How Admin Controls Boost Efficiency & ...
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PDF
www-codemechsolutions-com-whatwedo-cloud-application-migration-services.pdf
PPTX
ENCOR_Chapter_11 - ‌BGP implementation.pptx
PDF
Triggering QUIC, presented by Geoff Huston at IETF 123
PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PPTX
Internet___Basics___Styled_ presentation
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PDF
Paper PDF World Game (s) Great Redesign.pdf
PDF
Behind the Smile Unmasking Ken Childs and the Quiet Trail of Deceit Left in H...
PPTX
nagasai stick diagrams in very large scale integratiom.pptx
PPTX
ppt for upby gurvinder singh padamload.pptx
PDF
The Internet -By the Numbers, Sri Lanka Edition
PDF
LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1
PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
WebRTC in SignalWire - troubleshooting media negotiation
innovation process that make everything different.pptx
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
CSharp_Syntax_Basics.pptxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Centralized Business Email Management_ How Admin Controls Boost Efficiency & ...
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
www-codemechsolutions-com-whatwedo-cloud-application-migration-services.pdf
ENCOR_Chapter_11 - ‌BGP implementation.pptx
Triggering QUIC, presented by Geoff Huston at IETF 123
Unit-1 introduction to cyber security discuss about how to secure a system
Slides PPTX World Game (s) Eco Economic Epochs.pptx
Internet___Basics___Styled_ presentation
introduction about ICD -10 & ICD-11 ppt.pptx
Paper PDF World Game (s) Great Redesign.pdf
Behind the Smile Unmasking Ken Childs and the Quiet Trail of Deceit Left in H...
nagasai stick diagrams in very large scale integratiom.pptx
ppt for upby gurvinder singh padamload.pptx
The Internet -By the Numbers, Sri Lanka Edition
LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf

11. Objects and Classes

  • 1. Using Objects and Classes Defining Simple Classes Objects and Classes Software University http://softuni.bg SoftUni Team Technical Trainers
  • 2. Table of Contents 1. Objects 2. Classes 3. Built in Classes 4. Defining Simple Classes  Properties  Methods  Constructors 2
  • 4. Objects and Classes What is an Object? What is a Class?
  • 5. Objects  An object holds a set of named values  E.g. birthday object holds day, month and year  Creating a birthday object: 5 var birthday = new { Day = 22, Month = 6, Year = 1990 }; Birthday Day = 22 Month = 6 Year = 1990 The new operator creates a new object var day = new DateTime( 2019, 2, 25); Console.WriteLine(day); Object properties Object name Create a new object of type DateTime
  • 6. Classes  In programming, classes provide the structure for objects  Act as template for objects of the same type  Classes define:  Data (properties), e.g. Day, Month, Year  Actions (behaviour), e.g. AddDays(count), Subtract(date)  One class may have many instances (objects)  Sample class: DateTime  Sample objects: peterBirthday, mariaBirthday 6
  • 7. Objects - Instances of Classes  Creating the object of a defined class is called instantiation  The instance is the object itself, which is created runtime  All instances have common behaviour 7 DateTime date1 = new DateTime(2018, 5, 5); DateTime date2 = new DateTime(2016, 3, 5); DateTime date3 = new DateTime(2013, 12, 31);
  • 8. Objects and Classes – Example 8 DateTime peterBirthday = new DateTime(1996, 11, 27); DateTime mariaBirthday = new DateTime(1995, 6, 14); Console.WriteLine("Peter's birth date: {0:d-MMM-yyyy}", peterBirthday); // 27-Nov-1996 Console.WriteLine("Maria's birth date: {0:d-MMM-yyyy}", mariaBirthday); // 14-Jun-1995 var mariaAfter18Months = mariaBirthday.AddMonths(18); Console.WriteLine("Maria after 18 months: {0:d-MMM-yyyy}", mariaAfter18Months); // 14-Dec-1996 TimeSpan ageDiff = peterBirthday.Subtract(mariaBirthday); Console.WriteLine("Maria older than Peter by: {0} days", ageDiff.Days); // 532 days
  • 9. Classes vs. Objects  Classes provide structure for creating objects  An object is a single instance of a class 9 class DateTime Day: int Month: int Year: int AddDays(…) Subtract(…) Class actions (methods) Class name Class data (properties) object peterBirthday Day = 27 Month = 11 Year = 1996 Object name Object data
  • 10.  You are given a date in format day-month-year  Calculate and print the day of week in English Problem: Day of Week 10 18-04-2016 Monday 27-11-1996 string dateAsText = Console.ReadLine(); DateTime date = DateTime.ParseExact(dateAsText, "d-M-yyyy", CultureInfo.InvariantCulture); Console.WriteLine(date.DayOfWeek); ParseExact(…) needs a format string + culture (locale) Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab Wednesday
  • 11. Using the Built-in API Classes Math, Random, BigInteger, ...
  • 12.  .NET Core provides thousands of ready-to-use classes  Packaged into namespaces like System, System.Text, System.Collections, System.Linq, System.Net, etc.  Using static .NET class members:  Using non-static .NET classes Built-in API Classes in .NET Core 12 DateTime today = DateTime.Now; double cosine = Math.Cos(Math.PI); Random rnd = new Random(); int randomNumber = rnd.Next(1, 99);
  • 13.  You are given a list of words  Randomize their order and print each word at a separate line Problem: Randomize Words 13 Note: The output is a sample. It should always be different! a b b a PHP Java C# Java PHP C# Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
  • 14. Solution: Randomize Words 14 string[] words = Console.ReadLine().Split(' '); Random rnd = new Random(); for (int pos1 = 0; pos1 < words.Length; pos1++) { int pos2 = rnd.Next(words.Length); // TODO: Swap words[pos1] with words[pos2] } Console.WriteLine(string.Join(Environment.NewLine, words)); Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
  • 15.  Calculate n! (n factorial) for very big n (e.g. 1000) Problem: Big Factorial 15 50 3041409320171337804361260816606476884437764156 8960512000000000000 5 120 10 3628800 12 479001600 88 1854826422573984391147968456455462843802209689 4939934668442158098688956218402819931910014124 4804501828416633516851200000000000000000000 Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
  • 16. Solution: Big Factorial 16 using System.Numerics; ... int n = int.Parse(Console.ReadLine()); BigInteger f = 1; for (int i = 2; i <= n; i++) f *= i; Console.WriteLine(f); Use the .NET API class System.Numerics .BigInteger N!Check your solution here: https://judge.softuni.bg/Contests/1214/Objects-and-Classes-Lab
  • 18.  Specification of a given type of objects from the real-world  Classes provide structure for describing and creating objects Defining Simple Classes class Dice { … } Class name Class body Keyword 18
  • 19. Naming Classes  Use PascalCase naming  Use descriptive nouns  Avoid abbreviations (except widely known, e.g. URL, HTTP, etc.) 19 class Dice { … } class BankAccount { … } class IntegerCalculator { … } class TPMF { … } class bankaccount { … } class intcalc { … }
  • 20.  Class is made up of state and behavior  Properties store state  Methods describe behaviour Class Members 20 class Dice { public int Sides { get; set; } public string Type { get; set; } public void Roll() { } } Properties Method
  • 21.  A class can have many instances (objects) Creating an Object 21 class Program { public static void Main() { Dice diceD6 = new Dice(); Dice diceD8 = new Dice(); } } Use the new keyword
  • 22.  Describe the characteristics of a given class Properties 22 class Student { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } } The getter provides access to the field The setter provides field change
  • 23.  Store executable code (algorithm) Methods 23 class Dice { public int Sides { get; set; } public int Roll() { Random rnd = new Random(); return rnd.Next(1, Sides + 1); } }
  • 24.  Special methods, executed during object creation Constructors 24 class Dice { public int Sides { get; set; } public Dice() { this.Sides = 6; } } Overloading default constructor Constructor name is the same as the name of the class
  • 25.  You can have multiple constructors in the same class Constructors (2) 25 class Dice { public Dice() { } public Dice(int sides) { this.Sides = sides; } p int Sides { get; set; } } class StartUp { public static void Main() { Dice dice1 = new Dice(); Dice dice2 = new Dice(7); } }
  • 26.  Classes can define data (state) and operations (actions) Class Operations 26 class Rectangle { public int Top { get; set; } public int Left { get; set; } public int Width { get; set; } public int Height { get; set; } int CalcArea() { return Width * Height; } Classes may hold data (properties) Classes may hold operations (methods)
  • 27. Class Operations (2) 27 public int Bottom { get { return Top + Height; } } public int Right { get { return Left + Width; } } Calculated property Calculated property public bool IsInside(Rectangle r) { return (r.Left <= Left) && (r.Right >= Right) && (r.Top <= Top) && (r.Bottom >= Bottom); } Boolean method
  • 28.  …  …  … Summary 28  Objects  Holds a set of named values  Instance of a class  Classes define templates for object  Methods  Constructors  Properties
  • 32.  Software University – High-Quality Education and Employment Opportunities  softuni.bg  Software University Foundation  http://softuni.foundation/  Software University @ Facebook  facebook.com/SoftwareUniversity  Software University Forums  forum.softuni.bg Trainings @ Software University (SoftUni) 32
  • 33.  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution-NonCom mercial-ShareAlike 4.0 International" license License 33