Creación de clases en VB.Net y C#

Valoración del artículo:
Explicación de la creación de clases y objetos en los dos principales lenguajes de la plataforma .Net.
Publicado: 10/12/03
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Para explicar la creación de clases usaremos un ejemplo sencillo basado en una clase principal "bicicleta".

Para crear una clase debemos definir sus propiedades y sus métodos, en este ejemplo se usan los siguientes términos como propiedades de la clase bicicleta: Modelo, Precio, NumeroDeVelocidades y Velocidad; como métodos de la clase se usan: Acelerar(km) , Frenar() y ConsultarVelocidad().


VB.NET
Public Class Bicicleta
    Public Modelo as String
    Public Precio as Double
    Public NumeroDeVelocidades as Integer
    Private Velocidad as Integer

    Public Sub Acelerar(ByVal km As Integer)
       Velocidad = Velocidad + km
    End Sub

    Public Sub Frenar()
       If Velocidad > 0 Then
          Velocidad = Velocidad -1
       End If
    End Sub

    Public Function ConsutarVelocidad() As Integer
       Return Velocidad
    End Function
End Class

C#
Class Bicicleta
{
    public string Modelo;
    public double Precio;
    public int NumeroDeVelocidades
    private int Velocidad

    public void Acelerar(int km)
    {
       Velocidad = Velocidad + km;
    }

    public void Frenar()
    {
       if (Velocidad > 0)
       {
          Velocidad = Velocidad - 1;
       }
    }

    public int ConsultarVelocidad()
    {
       return Velocidad;
    }
}


Nuestra clase bicicleta consta de varias propiedades y métodos, las palabras Private y Public definen la accesibilidad de las propiedades, funciones o subrutinas. La definición de una propiedad o método de tipo privado indica que sólo podrá ser usada dentro del código de la misma clase, si creásemos un objeto de tipo bicicleta, las especificaciones de la clase no nos permitirían acceder a la propiedad velocidad para consultarla o modificarla, ya que esta definida como privada. En cambio se pueden usar las subrutinas Acelerar() y Frenar() ya que son de tipo Public, y desde dentro de ellas se interactua con las propiedades privadas, con esto conseguimos encapsular el código y hacer accesible solo aquello que queramos.

Una vez está construida la clase ya se pueden instanciar objetos de la misma.


VB.NET
Dim objBicicleta as Bicicleta = New Bicicleta

Dim VelocidadActual as Integer

objBicileta.Modelo = "Montaña"
objBicicleta.Precio = 200
objBicicleta.NumeroDeVelocidades = 21

objBicicleta.Acelerar(5)
objBicicleta.Frenar()

VelocidadActual = objBicicleta.ConsultarVelocidad

C#
Bicicleta objBicicleta = new Bicicleta();

int VelocidadActual;

objBicicleta.Modelo = "Montaña";
objBicicleta.Precio = 200;
objBicicleta.NumeroDeVelocidades = 21;

objBicicleta.Acelerar(5);
objBicicleta.Frenar();

VelocidadActual = objBicicleta.ConsultarVelocidad();


Tras la creación del objeto objBicicleta a partir de la clase, se pueden modificar los valores de las propiedades de tipo Public, y llamar a los métodos de tipo Public.

En el ejemplo se llama a los métodos Acelerar(5), pasándole el numero de km que queremos acelerar a través del parámetro "km" que está definido en la subrutina.

Luego se llama al método Frenar() que decrementa en una unidad el valor de la propiedad Velocidad.

Por último se usa la función ConsultarVelocidad(), que retorna el valor de la propiedad Velocidad para introducirlo en la variable VelocidadActual.

Comentarios
Fueron enviados 8 comentarios al artículo
1 comentario no revisado
7 comentarios revisados:
Por: Marcos
04/1/04
Existe un error en el código, si lo que se pretente es acelerar una cantidad de Km determinados.
El método Acelerar incrementa en 1 la velocidad, no en Km Kilómetros, como indica la explicación.
El método Acelerar quedaría, para incrementar la aceleración en la cantidad pasada como parámetro:

Public Sub Acelerar(ByVal km As Integer)
    Velocidad = Velocidad + km
End Sub

CORREGIDO! Muchas gracias por tu ayuda.

Por: Arcadio
07/4/04
Faltaría dar un valor inicial a velocidad para poder llamar a los métodos y que devuelvan un resultado consistente
Por: Moisés
05/11/04
Por la construcción de C# (no soy especialista en VB) de la clase Bicicleta, es necesario añadir un método que permita escribir un valor para el atributo Velocidad tomando en cuenta que es privado o también considerar una inicialización del mismo a través de un constructor de la clase, pero de la forma en que se propone Velocidad no tiene valor inicial deseado y el usuario no lo puede inicializar desde el programa por la encapsulación concebida
Por: Airis
26/9/05
Una de las cosas que no entiendo es cómo se puede dar una explicacion tan infantil de las clases. Vale que en C++ sean asi pero en VB.NEt ni se parecen. A ver, en VB.NET hay un amnipulador de eentos y las clases tienen que soportar estos eventos... Donde esta la explicacion de esto??
Por: isaac arevalo
23/3/06
hola a todos no soy experto en C# pero en el ejemplo de la clase es evidente que falta una variable ke inicialize el valor ke tendra la velocidad en este caso sera 0
Por: Juan Felipe
24/11/06
Bueno, como aporte a este ejemplo quiero decir que más que encontrarle errores al codigo en cuanto a la logica se refiere, lo que el ejemplo quiere mostrar es la forma de utilizar clases en .Net, sin importar la clase de codigo que utilicemos, me parece un sencillo pero util ejemplo de como implementar clases en .Net
Por: Caro
22/10/08
Me sirvió mucho la explicación y le agradezco a la persona que se tomó la molestia de redactar el artículo.

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Alojados en el grupo