Un lenguaje totalmente orientado a objetos significa que todo se representa como un objeto, pero no puede diferenciar entre tipos primitivos y objetos de clases, pero C# no está puramente orientado a objetos, ya que admite muchos conceptos de programación de procedimientos, como punteros, hasta cierto punto. Un objeto es una unidad básica de la Programación Orientada a Objetos y representa las entidades de la vida real. Un programa típico de C# crea muchos objetos que, como sabe, interactúan invocando métodos. Podemos Crear objetos en C# de las siguientes maneras:
1) Usando el operador ‘nuevo’: Una clase es un tipo de referencia y en tiempo de ejecución, a cualquier objeto del tipo de referencia se le asigna un valor nulo a menos que se declare usando el nuevo operador. El operador new asigna espacio en la memoria al objeto solo durante el tiempo de ejecución, lo que significa que la asignación es dinámica.
Sintaxis:
// The className() is a call // to the constructor className ObjectName = new className();
Nota: El constructor puede ser un constructor predeterminado o uno definido por el usuario.
Ejemplo:
csharp
// C# Program to show the use // of the new Operator using System; namespace NewOperator { class Rectangle { public int length, breadth; // Parameterized Constructor // User defined public Rectangle(int l, int b) { length = l; breadth = b; } // Method to Calculate Area // of the rectangle public int Area() { return length * breadth; } } // Driver Class class Program { // Main Method static void Main(string[] args) { // Creating an object using 'new' // Calling the parameterized constructor // With parameters 10 and 12 Rectangle rect1 = new Rectangle(10, 12); // To display are of the Rectangle int area = rect1.Area(); Console.WriteLine("The area of the"+ " Rectangle is " + area); } } }
The area of the Rectangle is 120
2) Creación de una referencia a un objeto existente: la referencia solo se puede declarar con el nombre de la clase y el nombre de la referencia. La referencia no puede existir de forma independiente. Tiene que ser asignado a un objeto ya existente de la misma clase. Cualquier cambio realizado en la referencia se guardará en el objeto al que se refiere. Es como un alias.
Sintaxis:
className RefName; RefName = objectName;
Ejemplo:
csharp
// C# Program to show the use // of references using System; namespace Reference { class Triangle { public int side, altitude; // Not defining a constructor // Method to calculate area // of the Triangle public double Area() { return (double)0.5 * side * altitude; } } // Driver Class class Program { // Main Method static void Main(string[] args) { // Creating an object using new // calls the default constructor Triangle tri1 = new Triangle(); // Only creates a reference of // type Triangle Triangle tri2; // Displaying area of tri1 Console.WriteLine("Area of tri1 is " + tri1.Area()); // Assigns the reference to tri1 tri2 = tri1; // Making changes in tri2 tri2.side = 5; tri2.altitude = 7; // Displaying area of tri1 // Changes made in the reference tri2 // are reflected in tri1 also Console.WriteLine("Area of tri1 is " + tri1.Area()); } } }
Area of tri1 is 0 Area of tri1 is 17.5
3) Creación de una array de objetos: si necesita varios números de objetos de la misma clase, puede crear una array de objetos. Esto requerirá que primero declare la array y luego inicialice cada elemento {objeto en este caso}. Puede usar for loop para la inicialización.
Sintaxis:
className[] arrayName = new className[size];
csharp
// C# Program to illustrate how to // create the array of objects using System; namespace ArrayofObjects { class Circle { public int radius; // Defining Constructor public Circle() { radius = 0; } // Method to set value of radius public void setValue(int r) { radius = r; } // Method to calculate the // area of the Circle public double Area() { return (double)3.14 * radius * radius; } } // Driver Class class Program { // Main Method static void Main(string[] args) { // To declare an array of two objects Circle[] circleArray = new Circle[2]; // Initialize the objects circleArray[0] = new Circle(); circleArray[1] = new Circle(); // to set values for the radius circleArray[0].setValue(1); circleArray[1].setValue(2); // for loop to display areas for (int i = 0; i < circleArray.Length; i++) { Console.Write("Area of circle with radius " + (i + 1)); Console.Write(" is " + circleArray[i].Area() + "\n"); } } } }
Area of circle with radius 1 is 3.14 Area of circle with radius 2 is 12.56
Publicación traducida automáticamente
Artículo escrito por ManasiKirloskar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA