En C#, se permite crear una clase estática mediante el uso de la palabra clave estática . Una clase estática solo puede contener miembros de datos estáticos, métodos estáticos y un constructor estático. No está permitido crear objetos de la clase estática. Las clases estáticas están selladas , lo que significa que no puede heredar una clase estática de otra clase .
Sintaxis:
static class Class_Name { // static data members // static method }
En C#, la clase estática contiene dos tipos de miembros estáticos de la siguiente manera:
- Miembros de datos estáticos: como la clase estática siempre contiene miembros de datos estáticos, los miembros de datos estáticos se declaran usando la palabra clave estática y se accede directamente a ellos usando el nombre de la clase. La memoria de los miembros de datos estáticos se asigna individualmente sin ninguna relación con el objeto.
Sintaxis:
static class Class_name { public static nameofdatamember; }
- Métodos estáticos: como la clase estática siempre contiene métodos estáticos, los métodos estáticos se declaran utilizando la palabra clave estática. Estos métodos solo acceden a miembros de datos estáticos, no pueden acceder a miembros de datos no estáticos.
Sintaxis:
static class Class_name { public static nameofmethod() { // code } }
Ejemplo 1:
C#
// C# program to illustrate the // concept of static class using System; namespace ExampleOfStaticClass { // Creating static class // Using static keyword static class Author { // Static data members of Author public static string A_name = "Ankita"; public static string L_name = "CSharp"; public static int T_no = 84; // Static method of Author public static void details() { Console.WriteLine("The details of Author is:"); } } // Driver Class public class GFG { // Main Method static public void Main() { // Calling static method of Author Author.details(); // Accessing the static data members of Author Console.WriteLine("Author name : {0} ", Author.A_name); Console.WriteLine("Language : {0} ", Author.L_name); Console.WriteLine("Total number of articles : {0} ", Author.T_no); } } }
The details of Author is: Author name : Ankita Language : CSharp Total number of articles : 84
Ejemplo 2:
C#
// C# program to demonstrate // the concept of static class using System; // declaring a static class public static class GFG { // declaring static Method static void display() { Console.WriteLine("Static Method of class GFG"); } } // trying to inherit the class GFG // it will give error as static // class can't be inherited class GFG2 : GFG { public static void Main(String[] args) { } }
Error de tiempo de compilación:
prog.cs(20,7): error CS0709: `GFG2′: no se puede derivar de la clase estática `GFG’
Explicación: En el ejemplo anterior, tenemos una clase estática denominada Autor mediante el uso de la palabra clave estática. La clase Author contiene miembros de datos estáticos denominados A_name , L_name y T_no , y un método estático denominado details() . El método de una clase estática simplemente se llama usando su nombre de clase como Author.details(); . Como sabemos que la clase estática no consiste en un objeto, se accede al miembro de datos de la clase Author por su nombre de clase, como Author.A_name , Author.L_name y Author.T_no .
Diferencia entre clase estática y no estática
Clase estática | Clase no estática |
---|---|
La clase estática se define mediante la palabra clave estática. | La clase no estática no se define mediante el uso de la palabra clave estática. |
En la clase estática, no se le permite crear objetos. | En la clase no estática, puede crear objetos usando una nueva palabra clave. |
Se puede acceder directamente a los miembros de datos de la clase estática por su nombre de clase. | No se accede directamente a los miembros de datos de la clase no estática por su nombre de clase. |
La clase estática siempre contiene miembros estáticos. | La clase no estática puede contener métodos estáticos y no estáticos. |
La clase estática no contiene un constructor de instancias. | La clase no estática contiene un constructor de instancias. |
La clase estática no puede heredar de otra clase. | La clase no estática se puede heredar de otra clase. |
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