Do Something to Class
Let's take a look at following Main code
Compile and run the code, you'll see:
Example from precious code:
But if you work outside the class, you can not access
class Program { static void Main(string[] args) { account myAccount; //instantiating account to myAccount variable myAccount = new account(20, "Yang", "Sopiana"); //allocating memory to myAccount myAccount.checkBalance(); //invoke checkBalance myAccount.store(20); //invoke store myAccount.checkBalance(); myAccount.withdraw(10); //invoke withdraw myAccount.checkBalance(); Console.WriteLine("press any key to close"); Console.Read(); } }
Yang Sopiana has 0
Yang Sopiana store :20
Yang Sopiana has 20
Yang Sopiana withdraw :10
Yang Sopiana has 10
press any key to close
Yang Sopiana store :20
Yang Sopiana has 20
Yang Sopiana withdraw :10
Yang Sopiana has 10
press any key to close
Instantiating Class
As I mentioned before, class is kind of predifined type. To instantiate the class to new object use following syntax:[Access Modifier:Optional] [Class Name] [Object Name]
account myAccount; //instantiating account to myAccount variable
Allocating Memory to new Object
Class is reference type, when instatiating the class to an object, the object's value will be nothing. To allocate memory for the actual data, you use thenew
operator.
-
The
new
operator allocates and initializes memory for an instance of the specified type. It allocates the memory from either the stack or the heap, depending on the type. -
Use the new operator to form an object-creation expression, which consists of the following:
- The keyword new.
- The name of the type of the instance for which memory is to be allocated.
- Matching parentheses, which might or might not include parameters.
myAccount = new account(20, "Yang", "Sopiana"); //allocating memory to myAccount
You can also make an object with initializer. For previous code, you can simplify:
to:
account myAccount; //instantiating account to myAccount variable myAccount = new account(20, "Yang", "Sopiana"); //allocating memory to myAccount
to:
account myAccount = new account(20, "Yang", "Sopiana"); //declaring and allocating memory to myAccount
Accessing Class Member
If you work inside the class, you can access all member of class whatever the access modifier is. Simply just variable, like following:public void withdraw(decimal ammount) //method withdraw { Console.WriteLine(accountFirstName + " " + accountLastName + " withdraw :" + ammount); //accessing members inside class accountBalance -= ammount; //accessing accountBalance inside class }
private
members. You just can access public
member,
and in some condition you can access protected
, internal
members. Use [Object Name].[Class Member] to access
class member outside the class, just like following commands
myAccount.checkBalance(); //invoke checkBalance myAccount.store(20); //invoke store myAccount.checkBalance(); myAccount.withdraw(10); //invoke withdraw myAccount.checkBalance();
Putting It All Together
Here's the complete code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Prog3 { public class account { private uint accoundID; //field accountID private string accountFirstName; //field accountFirstName private string accountLastName; //field accountLastName private decimal accountBalance; //field accountBalance public account(uint ID, string firstName, string LastName) //Class's Constructor { accoundID = ID; accountFirstName = firstName; accountLastName = LastName; } public void store(decimal ammount) //method store { Console.WriteLine(accountFirstName + " " + accountLastName + " store :" + ammount); accountBalance += ammount; } public void withdraw(decimal ammount) //method withdraw { Console.WriteLine(accountFirstName + " " + accountLastName + " withdraw :" + ammount); //accessing members inside class accountBalance -= ammount; //accessing accountBalance inside class } public void checkBalance() //method checkBalance { Console.WriteLine(accountFirstName + " " + accountLastName + " has " + accountBalance); } } class Program { static void Main(string[] args) { account myAccount; //instantiating account to myAccount variable myAccount = new account(20, "Yang", "Sopiana"); //allocating memory to myAccount myAccount.checkBalance(); //invoke checkBalance myAccount.store(20); //invoke store myAccount.checkBalance(); myAccount.withdraw(10); //invoke withdraw myAccount.checkBalance(); Console.WriteLine("press any key to close"); Console.Read(); } } }
0 comments:
Post a Comment