Classes and Objects
Instance Methods
An instance method works with the fields of one object.
instance method
An instance method is called on an object and can use that object's state.
Instance Methods
InstanceMethods.cs
Replay: real traced execution (multi-file project)
using System;
class BankAccount
{
public int Balance;
public BankAccount(int balance)
{
Balance = balance;
}
public void Deposit(int amount)
{
Balance += amount;
}
}
class Program
{
static void Main()
{
int deposit = 5;
BankAccount account = new BankAccount(10);
account.Deposit(deposit);
Console.WriteLine($"deposit={deposit}");
Console.WriteLine($"balance={account.Balance}");
}
}
using System;
class BankAccount
{
public int Balance;
public BankAccount(int balance)
{
Balance = balance;
}
public void Deposit(int amount)
{
Balance += amount;
}
}
class Program
{
static void Main()
{
int deposit = 0;
BankAccount account = new BankAccount(10);
account.Deposit(deposit);
Console.WriteLine($"deposit={deposit}");
Console.WriteLine($"balance={account.Balance}");
}
}
using System;
class BankAccount
{
public int Balance;
public BankAccount(int balance)
{
Balance = balance;
}
public void Deposit(int amount)
{
Balance += amount;
}
}
class Program
{
static void Main()
{
int deposit = 12;
BankAccount account = new BankAccount(10);
account.Deposit(deposit);
Console.WriteLine($"deposit={deposit}");
Console.WriteLine($"balance={account.Balance}");
}
}
deposit ← 5
19{20 static void Main()21 {22 int deposit→ 5 = 5; //@deposit=0, 1223 BankAccount account = new BankAccount(10);24 account.Deposit(deposit);public BankAccount(int balance)
7public BankAccount(int balance10)8{9 Balance = balance10;10}account ← BankAccount
22int deposit = 5; //@deposit=0, 1223BankAccount account→ BankAccount = new BankAccount(10);24accountBankAccount.Deposit(deposit5);public void Deposit(int amount)
12public void Deposit(int amount5)13{14 Balance += amount5;15}account.Deposit(deposit);
23 BankAccount account = new BankAccount(10);24 accountBankAccount.Deposit(deposit5);2526 Console.WriteLine($"deposit={deposit5}");27 Console.WriteLine($"balance={account.Balance15}");28}outputdeposit=5 balance=15
deposit ← 0
19{20 static void Main()21 {22 int deposit→ 0 = 0;23 BankAccount account = new BankAccount(10);24 account.Deposit(deposit);public BankAccount(int balance)
7public BankAccount(int balance10)8{9 Balance = balance10;10}account ← BankAccount
22int deposit = 0;23BankAccount account→ BankAccount = new BankAccount(10);24accountBankAccount.Deposit(deposit0);public void Deposit(int amount)
12public void Deposit(int amount0)13{14 Balance += amount0;15}account.Deposit(deposit);
23 BankAccount account = new BankAccount(10);24 accountBankAccount.Deposit(deposit0);2526 Console.WriteLine($"deposit={deposit0}");27 Console.WriteLine($"balance={account.Balance10}");28}outputdeposit=0 balance=10
deposit ← 12
19{20 static void Main()21 {22 int deposit→ 12 = 12;23 BankAccount account = new BankAccount(10);24 account.Deposit(deposit);public BankAccount(int balance)
7public BankAccount(int balance10)8{9 Balance = balance10;10}account ← BankAccount
22int deposit = 12;23BankAccount account→ BankAccount = new BankAccount(10);24accountBankAccount.Deposit(deposit12);public void Deposit(int amount)
12public void Deposit(int amount12)13{14 Balance += amount12;15}account.Deposit(deposit);
23 BankAccount account = new BankAccount(10);24 accountBankAccount.Deposit(deposit12);2526 Console.WriteLine($"deposit={deposit12}");27 Console.WriteLine($"balance={account.Balance22}");28}outputdeposit=12 balance=22
Follow the Method
depositstarts as5.new BankAccount(10)creates an account with balance10.account.Deposit(deposit)calls the method on that account.- The method adds
5to the account balance. - The program prints
deposit=5andbalance=15. | starting balance | deposit | final balance | | --- | --- | --- | | 10 | 5 | 15 | | 10 | 0 | 10 | | 10 | 12 | 22 |
Exercise: InstanceMethods.cs
Reproduce deposit=5 and balance=15, then use the pinned deposit variants 0 and 12 to predict balance=10 and balance=22.