Classes and Objects
Class Definition
A class defines a new object type with fields that each object can store.
class
A class is a blueprint for objects.
Class Definition
ClassDefinition.cs
Replay: real traced execution (multi-file project)
using System;
class Pet
{
public string Name = "";
public string Kind = "";
}
class Program
{
static void Main()
{
string name = "Rex";
Pet pet = new Pet();
pet.Name = name;
pet.Kind = "dog";
Console.WriteLine($"name={pet.Name}");
Console.WriteLine($"kind={pet.Kind}");
}
}
using System;
class Pet
{
public string Name = "";
public string Kind = "";
}
class Program
{
static void Main()
{
string name = "Milo";
Pet pet = new Pet();
pet.Name = name;
pet.Kind = "dog";
Console.WriteLine($"name={pet.Name}");
Console.WriteLine($"kind={pet.Kind}");
}
}
using System;
class Pet
{
public string Name = "";
public string Kind = "";
}
class Program
{
static void Main()
{
string name = "Nora";
Pet pet = new Pet();
pet.Name = name;
pet.Kind = "dog";
Console.WriteLine($"name={pet.Name}");
Console.WriteLine($"kind={pet.Kind}");
}
}
name ← Rex, pet ← Pet, pet.Name ← Rex, pet.Kind ← dog
10{11 static void Main()12 {13 string name→ Rex = "Rex"; //@name="Milo", "Nora"14 Pet pet→ Pet = new Pet();15 pet.Name→ Rex = nameRex;16 pet.Kind→ dog = "dog";1718 Console.WriteLine($"name={pet.NameRex}");19 Console.WriteLine($"kind={pet.Kinddog}");20 }outputname=Rex kind=dog
name ← Milo, pet ← Pet, pet.Name ← Milo, pet.Kind ← dog
10{11 static void Main()12 {13 string name→ Milo = "Milo";14 Pet pet→ Pet = new Pet();15 pet.Name→ Milo = nameMilo;16 pet.Kind→ dog = "dog";1718 Console.WriteLine($"name={pet.NameMilo}");19 Console.WriteLine($"kind={pet.Kinddog}");20 }outputname=Milo kind=dog
name ← Nora, pet ← Pet, pet.Name ← Nora, pet.Kind ← dog
10{11 static void Main()12 {13 string name→ Nora = "Nora";14 Pet pet→ Pet = new Pet();15 pet.Name→ Nora = nameNora;16 pet.Kind→ dog = "dog";1718 Console.WriteLine($"name={pet.NameNora}");19 Console.WriteLine($"kind={pet.Kinddog}");20 }outputname=Nora kind=dog
Follow the Object
namestarts asRex.new Pet()creates one object with fields.pet.Name = namestoresRex.pet.Kind = "dog"storesdog.- The program prints
name=Rexandkind=dog. | field | stored value | | --- | --- | |pet.Name| Rex | |pet.Kind| dog |
Exercise: ClassDefinition.cs
Reproduce name=Rex and kind=dog, then use the pinned name variants Milo and Nora to predict name=Milo kind=dog and name=Nora kind=dog.