C# - Classes and Objects
C# is an object-oriented programming language. Everything in C# is associated with classes and objects, along with its member fields and methods. C# allows us to create objects. To create an object, first of all, the object should be defined in the program which is done by creating a class. A class is a code template that is used to define a new object type. Within a class, the object's member fields and methods are defined and when an object is created, its member fields and methods are determined by the class in which it is created.
Create Class
To create a class in C#, class keyword is used. It starts with the keyword followed by class name and a pair of curly braces { }. All its member fields and methods goes inside the braces:
Syntax
//defining a class class className { access_specifier field; access_specifier method; };
access_specifier: It defines the access type of the class member fields and methods. There are four access specifier (public, protected, internal, private) which defines the six accessibility levels as follows:
- public
- protected
- internal
- protected internal
- private
- private protected
The following table shows the access to members permitted by each level:
Accessibility Level | public | protected | internal | protected internal | private | private protected |
---|---|---|---|---|---|---|
Entire Program | Y | N | N | N | N | N |
Containing Class | Y | Y | Y | Y | Y | Y |
Current Assembly | Y | N | Y | Y | N | N |
Derived Types | Y | Y | N | Y | N | N |
Derived Types within current Assembly | Y | Y | Y | Y | N | Y |
Create Object
To create an object, new keyword followed by class name must be assigned to a variable (object name). To access the member of the class, dot . operator is used. See the syntax below:
Syntax
//creating an object className objectName = new className(); //access class member (member fields and methods) objectName.field objectName.method(parameters)
Example:
In the example below, a class (new object type) called Circle is created. An object called MyCircle of the class Circle is created in the main method. The object has only one integer field radius which is accessed in the main method using dot . operator.
using System; class Circle { //class field int radius = 10; static void Main(string[] args) { Circle MyCircle = new Circle(); Console.WriteLine(MyCircle.radius); } }
The output of the above code will be:
10
Class Methods
Class method must be defined inside the class definition. It is defined in the same way as a normal method is defined in C#.
Example: Class method defined inside class
In the example below, a class method called area is defined inside the class Circle. A class method is accessed in the same way as a class field, i.e, using dot . operator. Here, the area() class method returns the area of the circle object.
using System; class Circle { //class field int radius = 10; //class method public double area() { return 22/7.0*radius*radius; } static void Main(string[] args) { Circle MyCircle = new Circle(); Console.WriteLine(MyCircle.area()); } }
The output of the above code will be:
314.285714285714