Classes and Objects in C#
Master the fundamentals of C# programming with our comprehensive guide to classes and objects. Learn how to define and use classes, constructors, properties, and methods to build robust and reusable code.
Updated October 18, 2023
In C#, classes and objects are the building blocks of programming. Understanding how to define and use classes, as well as how to create and manipulate objects, is essential for any aspiring C# developer. In this article, we’ll take a closer look at class and object basics in C#.
What are Classes?
A class is a blueprint or template for creating objects. It defines the properties and methods that an object can have, as well as how those properties and methods behave. In other words, a class defines the structure and behavior of an object.
Here’s an example of a simple class in C#:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
In this example, we’ve defined a class called Person
that has two properties: Name
and Age
. These properties are used to store values for the corresponding attributes.
What are Objects?
An object is an instance of a class. It represents a specific entity or concept, such as a person, car, or building. Objects have their own set of properties and methods that can be accessed and manipulated.
Here’s an example of creating an object from the Person
class we defined earlier:
Person person = new Person { Name = "John", Age = 30 };
In this example, we’ve created a new object called person
using the Person
class. We’ve set the values of the Name
and Age
properties to “John” and 30, respectively.
Properties vs. Fields
In C#, classes can have two types of members: properties and fields. Properties are used to encapsulate data and behavior, while fields are used to store data only.
Here’s an example of a class with properties and fields:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
private string _address; // field
}
In this example, we’ve defined three members for the Person
class: Name
, Age
, and _address
. The Name
and Age
properties are used to encapsulate data and behavior, while the _address
field is used to store data only.
Constructors
A constructor is a special method that is called when an object is created. It is used to initialize the object’s properties and prepare it for use.
Here’s an example of a class with a constructor:
public class Person
{
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
In this example, we’ve defined a constructor for the Person
class that takes two parameters: name
and age
. We use these parameters to set the values of the Name
and Age
properties.
Methods
A method is a block of code that performs a specific task. In C#, methods are used to encapsulate behavior and provide functionality to objects.
Here’s an example of a class with a method:
public class Person
{
public void SayHello()
{
Console.WriteLine("Hello!");
}
}
In this example, we’ve defined a method called SayHello
for the Person
class. This method writes “Hello!” to the console.
Inheritance
Inheritance is a concept in which one class inherits the properties and methods of another class. It allows developers to create a new class that builds upon an existing class, while also adding new functionality.
Here’s an example of inheritance in C#:
public class Person : IClearable
{
public void Clear()
{
Console.WriteLine("Cleared!");
}
}
In this example, we’ve defined a new class called Person
that inherits from the IClearable
interface. This allows us to use the Clear
method defined in the interface on any object that implements IClearable
.
Polymorphism
Polymorphism is the ability of an object to take on many forms. It allows developers to create objects that can be treated as if they were of a different type.
Here’s an example of polymorphism in C#:
public interface IClearable
{
void Clear();
}
public class Person : IClearable
{
public void Clear()
{
Console.WriteLine("Cleared!");
}
}
public class Animal : IClearable
{
public void Clear()
{
Console.WriteLine("Cleaned up!");
}
}
In this example, we’ve defined an interface called IClearable
that has a single method: Clear
. We’ve also defined two classes, Person
and Animal
, that implement the IClearable
interface. This allows us to treat objects of type Person
and Animal
as if they were of type IClearable
.
Final Words
In this article, we’ve covered some of the basics of classes and objects in C#. We’ve looked at how to define classes, create objects, use properties and fields, constructors, methods, inheritance, and polymorphism. These concepts are essential for any aspiring C# developer to understand, as they form the foundation upon which all C# programming is built.
We hope this article has been helpful in introducing you to class and object basics in C#. Happy coding!