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

secondScore
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}");
    }
}
  1. 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);
  2. public Player(string name, int score)

    pass 1 of 2
    8public Player(string nameAda, int score5)9{10    Name = nameAda;11    Score = score5;12}
  3. 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;
  4. public Player(string name, int score)

    pass 2 of 2
    8public Player(string nameBen, int score7)9{10    Name = nameBen;11    Score = score7;12}
  5. 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
  1. 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);
  2. public Player(string name, int score)

    pass 1 of 2
    8public Player(string nameAda, int score5)9{10    Name = nameAda;11    Score = score5;12}
  3. first ← Player

    19int secondScore = 3;20Player first→ Player = new Player("Ada", 5);21Player second = new Player("Ben", secondScore);22int difference = second.Score - first.Score;
  4. public Player(string name, int score)

    pass 2 of 2
    8public Player(string nameBen, int score3)9{10    Name = nameBen;11    Score = score3;12}
  5. 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
  1. 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);
  2. public Player(string name, int score)

    pass 1 of 2
    8public Player(string nameAda, int score5)9{10    Name = nameAda;11    Score = score5;12}
  3. first ← Player

    19int secondScore = 12;20Player first→ Player = new Player("Ada", 5);21Player second = new Player("Ben", secondScore);22int difference = second.Score - first.Score;
  4. public Player(string name, int score)

    pass 2 of 2
    8public Player(string nameBen, int score12)9{10    Name = nameBen;11    Score = score12;12}
  5. 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