Programación Orientada A Objetos
Enviado por megamanz • 13 de Noviembre de 2013 • 1.180 Palabras (5 Páginas) • 237 Visitas
INSTITUTO TECNOLÓGICO DE TUXTLA GUTIERREZ
MATERIA: PROGRAMACIÓN ORIENTADA A OBJETOS.
Atributo Static
Utilice el modificador static para declarar un miembro estático, que pertenece al propio tipo en vez de a un objeto específico. El modificador static puede utilizarse con clases, campos, métodos, propiedades operadores y eventos, pero no puede utilizarse con indizadores, destructores o tipos que no sean clases. Por ejemplo, la siguiente clase se declara como static y solo contiene métodos static:
static class CompanyEmployee
{
public static string GetCompanyName (string name) {...}
public static string GetCompanyAddress (string address) {...}
}
• Una declaración de constante o tipo constituye, implícitamente, un miembro estático.
• No se puede hacer referencia a un miembro estático por medio de una instancia. En vez de ello, se debe hacer referencia por medio del nombre de tipo. Por ejemplo, considere la siguiente clase:
• public class MyBaseC
• {
• public struct MyStruct
• {
• public static int x = 100;
• }
• }
Para referirse al miembro estático x, use el nombre completo (a menos que sea accesible desde el mismo ámbito):
MyBaseC.MyStruct.x
• Mientras que una instancia de una clase contiene una copia independiente de todos los campos de instancia de la clase, sólo existe una copia de cada campo estático.
• No es posible utilizar this para hacer referencia a descriptores de acceso de propiedades o métodos static.
• Si la palabra clave static se aplica a una clase, todos los miembros de la clase deben ser estáticos.
• Las clases, incluidas las clases estáticas, pueden tener constructores estáticos. Se llama a los constructores estáticos en algún momento comprendido entre el inicio del programa y la creación de instancias de la clase.
Nota
El uso de la palabra clave static es más limitado que en C++. Para comparar con la palabra clave de C++, vea static.
Para comprender el uso de miembros estáticos, considere una clase que representa al empleado de una compañía. Suponga que la clase contiene un método que cuenta empleados y un campo que almacena el número de empleados. Ni el método ni el campo pertenecen a ninguna instancia de empleado. En vez de ello, pertenecen a la clase compañía. Por tanto, se deberían declarar como miembros estáticos de la clase.
Este ejemplo lee el nombre y el identificador de un nuevo empleado, incrementa en uno el contador de empleados y muestra la información del nuevo empleado, así como el nuevo número de empleados. Por motivos de simplicidad, el programa lee el número actual de empleados desde el teclado. En una aplicación real, esta información se leería desde un archivo.
// cs_static_keyword.cs
using System;
public class Employee
{
public string id;
public string name;
public Employee ()
{
}
public Employee (string name, string id)
{
this.name = name;
this.id = id;
}
public static int employeeCounter;
public static int AddEmployee()
{
return ++employeeCounter;
}
}
class MainClass : Employee
{
static void Main()
{
Console.Write("Enter the employee's name: ");
string name = Console.ReadLine();
Console.Write("Enter the employee's ID: ");
string id = Console.ReadLine();
// Create and configure the employee object:
Employee e = new Employee(name,
...