Una clase es un proyecto o prototipo definido por el usuario a partir del cual se crean objetos. Básicamente, una clase combina los campos y métodos (función miembro que define acciones) en una sola unidad.
Ejemplo:
// C# program to illustrate the // concept of class using System; // Class Declaration public class Author { // Data members of class public string name; public string language; public int article_no; public int improv_no; // Method of class public void Details(string name, string language, int article_no, int improv_no) { this.name = name; this.language = language; this.article_no = article_no; this.improv_no = improv_no; Console.WriteLine("The name of the author is : " + name + "\nThe name of language is : " + language + "\nTotal number of article published " + article_no + "\nTotal number of Improvements:" +" done by author is : " + improv_no); } // Main Method public static void Main(String[] args) { // Creating object Author obj = new Author(); // Calling method of class // using class object obj.Details("Ankita", "C#", 80, 50); } }
Producción:
The name of the author is : Ankita The name of language is : C# Total number of article published 80 Total number of Improvements: done by author is : 50
Una estructura es una colección de variables de diferentes tipos de datos bajo una sola unidad. Es casi similar a una clase porque ambos son tipos de datos definidos por el usuario y ambos contienen muchos tipos de datos diferentes.
Ejemplo:
// C# program to illustrate the // concept of structure using System; // Defining structure public struct Car { // Declaring different data types public string Brand; public string Model; public string Color; } class GFG { // Main Method static void Main(string[] args) { // Declare c1 of type Car // no need to create an // instance using 'new' keyword Car c1; // c1's data c1.Brand = "Bugatti"; c1.Model = "Bugatti Veyron EB 16.4"; c1.Color = "Gray"; // Displaying the values Console.WriteLine("Name of brand: " + c1.Brand + "\nModel name: " + c1.Model + "\nColor of car: " + c1.Color); } }
Producción:
Name of brand: Bugatti Model name: Bugatti Veyron EB 16.4 Color of car: Gray
Diferencia entre clase y estructura
Clase | Estructura |
---|---|
Las clases son de tipos de referencia. | Las estructuras son de tipos de valor. |
Todos los tipos de referencia se asignan en la memoria del montón. | Todos los tipos de valores se asignan en la memoria de pila. |
La asignación del tipo de referencia grande es más económica que la asignación del tipo de valor grande. | La asignación y la desasignación son más baratas en el tipo de valor en comparación con el tipo de referencia. |
La clase tiene características ilimitadas. | Struct tiene características limitadas. |
La clase se usa generalmente en programas grandes. | Las estructuras se utilizan en programas pequeños. |
Las clases pueden contener constructor o destructor. | La estructura no contiene un constructor o destructor sin parámetros, pero puede contener un constructor parametrizado o un constructor estático. |
Las clases usaron nueva palabra clave para crear instancias. | Struct puede crear una instancia, con o sin nueva palabra clave. |
Una clase puede heredar de otra clase. | No se permite que una estructura herede de otra estructura o clase. |
El miembro de datos de una clase se puede proteger. | El miembro de datos de la estructura no se puede proteger. |
La función miembro de la clase puede ser virtual o abstracta. | El miembro de función de la estructura no puede ser virtual ni abstracto. |
Dos variables de clase pueden contener la referencia del mismo objeto y cualquier operación sobre una variable puede afectar a otra variable. | Cada variable en estructura contiene su propia copia de datos (excepto en la variable de parámetro ref y out) y cualquier operación en una variable no puede afectar a otra variable. |
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA