public static void EncapsulationDemo() { BankAccountPublic bankAcctPub = new BankAccountPublic(); // call a public method decimal amount = bankAcctPub.GetAmount(); Console.WriteLine("Bank Account Amount: " + amount); BankAccountProtected[] bankAccts = new BankAccountProtected[2]; bankAccts[0] = new SavingsAccount(); bankAccts[1] = new CheckingAccount(); foreach (BankAccountProtected acct in bankAccts) { // call public method, which invokes protected virtual methods acct.CloseAccount(); } BankAccountExternal BankAcctExt = new BankAccountExternal(); // call a public method amount = BankAcctExt.GetAmount(); Console.WriteLine("External Bank Account Amount: " + amount); }
// An access modifier allows you to specify the visibility of code outside a type or assembly public static void MainMethod() { Console.WriteLine("Encapsulation"); var bankAcctPub = new BankAccountPublic(); // call a public method decimal amount = bankAcctPub.GetAmount(); var bankAcctPriv = new BankAccountPrivate(); bankAcctPriv.CustomerName = "John Depp"; string customerName = bankAcctPriv.CustomerName; BankAccountProtected[] bankAccts = new BankAccountProtected[2]; bankAccts[0] = new SavingsAccount(); bankAccts[1] = new CheckingAccount(); foreach (BankAccountProtected acct in bankAccts) { // call public method, which invokes protected virtual methods acct.CloseAccount(); } }