71 - Clases estáticas


Una clase se la puede hacer estática siempre y cuando todos sus atributos sean estáticos, lo mismo que sus métodos.

No se pueden crear objetos de una clase estática.

Problema 1:

Definir una clase estática llamada Operaciones. Implementar cuatro métodos que permitan sumar,restar,multiplicar y dividir dos enteros.:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClaseEstatica1
{
    static class Operaciones
    {
        public static int Sumar(int valor1, int valor2)
        {
            return valor1 + valor2;
        }
        public static int Restar(int valor1, int valor2)
        {
            return valor1 - valor2;
        }
        public static int Multiplicar(int valor1, int valor2)
        {
            return valor1 * valor2;
        }
        public static int Dividir(int valor1, int valor2)
        {
            return valor1 / valor2;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("10+5 es " + Operaciones.Sumar(10, 5));
            Console.WriteLine("10-5 es " + Operaciones.Restar(10, 5));
            Console.WriteLine("10*5 es " + Operaciones.Multiplicar(10, 5));
            Console.WriteLine("10/5 es " + Operaciones.Dividir(10, 5));
            Console.ReadKey();
        }
    }
}

Como vemos le antecedemos a la declaración de la clase la palabra clave static:

    static class Operaciones

Como definimos la clase de tipo static estamos obligados a definir los cuatro métodos de tipo static:

        public static int Sumar(int valor1, int valor2)
        {
            return valor1 + valor2;
        }
        public static int Restar(int valor1, int valor2)
        {
            return valor1 - valor2;
        }
        public static int Multiplicar(int valor1, int valor2)
        {
            return valor1 * valor2;
        }
        public static int Dividir(int valor1, int valor2)
        {
            return valor1 / valor2;
        }

Luego si queremos definir alguno de los métodos no estático se produce un error en tiempo de compilación:

        public int Sumar(int valor1, int valor2)
        {
            return valor1 + valor2;
        }

ERROR| Sumar: no se puede declarar miembros estáticos en una clase estática.

También se genera un error si queremos crear un objeto de una clase estática:

 Operaciones op = new Operaciones();

ERROR| No se puede crear ninguna instancia de la clase Operaciones.


Retornar