Classes and Objects
Multiple Objects
Two objects created from the same class can hold different state.
object state
Object state is the data stored in one object at a moment in time.
Multiple Objects
MultipleObjects.cs
Replay: real traced execution (multi-file project)
using System;
class Player
{
public string Name;
public int Score;
public Player(string name, int score)
{
Name = name;
Score = score;
}
}
class Program
{
static void Main()
{
int secondScore = 7;
Player first = new Player("Ada", 5);
Player second = new Player("Ben", secondScore);
int difference = second.Score - first.Score;
Console.WriteLine($"first={first.Score}");
Console.WriteLine($"second={second.Score}");
Console.WriteLine($"difference={difference}");
}
}
using System;
class Player
{
public string Name;
public int Score;
public Player(string name, int score)
{
Name = name;
Score = score;
}
}
class Program
{
static void Main()
{
int secondScore = 3;
Player first = new Player("Ada", 5);
Player second = new Player("Ben", secondScore);
int difference = second.Score - first.Score;
Console.WriteLine($"first={first.Score}");
Console.WriteLine($"second={second.Score}");
Console.WriteLine($"difference={difference}");
}
}
using System;
class Player
{
public string Name;
public int Score;
public Player(string name, int score)
{
Name = name;
Score = score;
}
}
class Program
{
static void Main()
{
int secondScore = 12;
Player first = new Player("Ada", 5);
Player second = new Player("Ben", secondScore);
int difference = second.Score - first.Score;
Console.WriteLine($"first={first.Score}");
Console.WriteLine($"second={second.Score}");
Console.WriteLine($"difference={difference}");
}
}
secondScore ← 7
16{17 static void Main()18 {19 int secondScore→ 7 = 7; //@secondScore=3, 1220 Player first = new Player("Ada", 5);21 Player second = new Player("Ben", secondScore);public Player(string name, int score)
pass 1 of 28public Player(string nameAda, int score5)9{10 Name = nameAda;11 Score = score5;12}first ← Player
19int secondScore = 7; //@secondScore=3, 1220Player first→ Player = new Player("Ada", 5);21Player second = new Player("Ben", secondScore);22int difference = second.Score - first.Score;public Player(string name, int score)
pass 2 of 28public Player(string nameBen, int score7)9{10 Name = nameBen;11 Score = score7;12}second ← Player, difference ← 2
20 Player first = new Player("Ada", 5);21 Player second→ Player = new Player("Ben", secondScore);22 int difference→ 2 = second.Score7 - first.Score5;2324 Console.WriteLine($"first={first.Score5}");25 Console.WriteLine($"second={second.Score7}");26 Console.WriteLine($"difference={difference2}");27}outputfirst=5 second=7 difference=2
secondScore ← 3
16{17 static void Main()18 {19 int secondScore→ 3 = 3;20 Player first = new Player("Ada", 5);21 Player second = new Player("Ben", secondScore);public Player(string name, int score)
pass 1 of 28public Player(string nameAda, int score5)9{10 Name = nameAda;11 Score = score5;12}first ← Player
19int secondScore = 3;20Player first→ Player = new Player("Ada", 5);21Player second = new Player("Ben", secondScore);22int difference = second.Score - first.Score;public Player(string name, int score)
pass 2 of 28public Player(string nameBen, int score3)9{10 Name = nameBen;11 Score = score3;12}second ← Player, difference ← -2
20 Player first = new Player("Ada", 5);21 Player second→ Player = new Player("Ben", secondScore);22 int difference→ -2 = second.Score3 - first.Score5;2324 Console.WriteLine($"first={first.Score5}");25 Console.WriteLine($"second={second.Score3}");26 Console.WriteLine($"difference={difference-2}");27}outputfirst=5 second=3 difference=-2
secondScore ← 12
16{17 static void Main()18 {19 int secondScore→ 12 = 12;20 Player first = new Player("Ada", 5);21 Player second = new Player("Ben", secondScore);public Player(string name, int score)
pass 1 of 28public Player(string nameAda, int score5)9{10 Name = nameAda;11 Score = score5;12}first ← Player
19int secondScore = 12;20Player first→ Player = new Player("Ada", 5);21Player second = new Player("Ben", secondScore);22int difference = second.Score - first.Score;public Player(string name, int score)
pass 2 of 28public Player(string nameBen, int score12)9{10 Name = nameBen;11 Score = score12;12}second ← Player, difference ← 7
20 Player first = new Player("Ada", 5);21 Player second→ Player = new Player("Ben", secondScore);22 int difference→ 7 = second.Score12 - first.Score5;2324 Console.WriteLine($"first={first.Score5}");25 Console.WriteLine($"second={second.Score12}");26 Console.WriteLine($"difference={difference7}");27}outputfirst=5 second=12 difference=7