C# is an object-oriented programming language and classes and objects are the fundamental components of OOP’s. Everything in C# is built upon classes and objects. Let us learn classes and objects with an example.
C# Class
A class is a user-defined blueprint or prototype for creating Objects. We can say that it is a template for creating objects for a class.
A class can have fields, methods, constructors, etc and these members can be accessed and used by creating an instance of that class that is an object.
Example for defining a class with few fields and methods in C#.
public class Rectangle
{
//field
int length, breadth;
int area;
// method
public void area() {
area = length * breadth;
}
}
The definition of the class starts with the keyword class followed by a class name. The body of the class is enclosed within the curly brace. All the members of the class are declared within the body of the class as shown above.
C# Object
Objects are real-world entities. Example bike, Lamp, pen, table, etc. It is an instance of a class that has states and behavior. It can be physical and logical.
The Class members are accessed by creating an object of that class and is a runtime entity created at runtime.
To create an object of a class we use the keyword new.
//creating an object of class Rectangle
Rectangle rect = new Rectangle();
In the above code, Rectangle is a type and rect is a reference variable that refers to the instance of the Rectangle class. And the new keyword allocates the memory at runtime in a program.
Example1: C# Class and Object
Let see an example where we create a class Rectangle and have a method calculate the area and also display the area value.
using System;
public class Rectangle
{
//field
int length = 2, breadth = 3;
int area;
// method
public void areaFunc()
{
area = length * breadth;
Console.WriteLine("Area: {0}", area);
}
public static void Main(string[] args)
{
Rectangle rect = new Rectangle(); //object
rect.areaFunc();
}
}
Output:
Area: 6
Example1: C# Class and Object
In the example below, we will put the main method at the different classes and create multiple objects for the Student class. Also, display the student information.
using System;
public class Student
{
//field
int roll = 2;
String name;
//Constructor
public Student (int r, String str)
{
this.roll = r;
this.name = str;
}
// method
public void display()
{
Console.WriteLine("Roll: {0}, Name: {1}", roll, name);
}
}
class StudentInfo
{
public static void Main(string[] args)
{
Student std1 = new Student(1, "John Mac"); //object
Student std2 = new Student(2, "Ryan Blanc"); //object
std1.display();
std2.display();
}
}
Output:
Roll: 1, Name: John Mac
Roll: 2, Name: Ryan Blanc
Also, a constructor is included in order to initialize the class field.