5.- Primer contacto con el código

5.- Primer contacto con el código

Por fin vamos a comenzar a escribir código!!! (pero poco, que luego nos liamos)

Hay una gran variedad de lenguajes, pero en principio nos vamos a centrar en .NET y los lenguajes que usamos para .NET.¿Qué es .NET? Es una plataforma a la que las aplicaciones acceden a coger lo que les hace falta, de ese modo cada vez que desarrollamos una aplicación no tiene porque llevar consigo ciertas herramientas. Con esto conseguimos que todo el mundo use las mismas utilidades y del mismo modo.

De los componentes que tiene .NET Framework nos enfocamos en dos, el CLR (Common Language Runtime) y la biblioteca de clases.

El primero es un entorno de ejecución que asegura que el código escrito cumple una serie de reglas, (vamos que es bueno!) y por otra parte compila desde un lenguaje intermedio (MSIL) al código nativo. El CLR nos permite poder crear una clase en Visual Basic, crear dos heredadas de esta en C# y C++. Que cosas!!

La biblioteca de clases contiene todas las clases base, (valga la redundancia), para todos los lenguajes de programación. En definitiva, da igual el lenguaje que utilicemos, todos valen!.

Antes de continuar, vamos a repasar alguna palabra nueva.

¿Que es compilar? es convertir un lenguaje a otro, normalmente a código máquina. ¿Y que es código máquina? es el lenguaje que solamente entiende un microprocesador, el chip principal de nuestro PC.

Por tanto, generamos clases C#, VB, .. el compilador lo convierte a MSIL y posteriormente el CLR se encargará de compilar a código máquina con otro compilador (Just In Time JIT ) lo que vayamos necesitando. (Es bastante más complicado, pero dejémoslo ahí, más o menos).

Y yo ¿qué necesito para crear un programa? pues un editor de texto, por ejemplo el bloc de notas (Notepad.exe) o yo, personalmente utilizo notepad++,  (lo utilizo mucho para HTML) tabula, cambia el color de variables, métodos, tiene múltiples lenguajes, etc, y por último un compilador.

¿Dónde consigo el compilador? Al instalar .NET Framework, se instalan también los compiladores, por lo que podemos compilar desde la línea de comandos (csc para C# y vbc para VB. Ya lo haremos! poco a poco.

Pero entonces, ¿por qué tenemos que instalar Visual Studio? Visual Studio es un IDE (Entorno de Desarrollo Integrado), el cual tiene un conjunto de herramientas para diferentes lenguajes como  C++, C#, Visual Basic .NET, F#, Java, Python, Ruby, PHP y para entornos de desarrollo ASP.NET que te AYUDAN MUCHÍÍÍÍÍÍSIMO a crear aplicaciones, por tanto os insto a usarlo. Microsoft, tiene una versión de Visual Studio Express gratuita, te registras y a programar!

Como dije vamos a aprender dos lenguajes muy comunes C# (la almohadilla se lee Sharp, por tanto C Sharp) o Visual Basic .NET.

Cuando creamos la clase vehículo o camión, yo ponía en el lenguaje «der waki», comienza declaración de clase, pues eso, cuando se genera una clase, hay que poner lo siguiente:

En C#


using Espacio_de_nombres1;
using Espacio_de_nombres1;

namespace espacio_de_nombres
{
public class Class1
{
// aquí va el código    }
}

en VB:NET


Imports espacio_de_nombres1
Imports espacio_de_nombres2

Namespace espacio_de_nombres
Class [MyClass]
' aquí va el código
End Class
End Namespace

En primer lugar ¿Qué es la palabra using o Imports? La biblioteca de clases de .NET Framework tiene un entramado jerárquico de clases enorme y algunos nombres bastante largos. Si tenemos que usar alguna de las clases de alguna biblioteca, tendríamos que escribir continuamente los espacios de nombre a la que pertenecen las clases ( y algunos son largos, largos), pues de este modo, una vez incluidos mediante using o Imports, no es necesario escribir continuamente y si
el compilador no entiende algo que he escrito, se encarga de buscarlo en la
lista de using.

¿Qué es el espacio de nombres? Los espacios de nombres se utilizan en gran medida en la programación de dos maneras. En primer lugar, .NET Framework utiliza los espacios de nombres para organizar sus múltiples clases. En segundo lugar, declarar espacios de nombres propios puede ayudar a controlar el ámbito de clase y nombres de método en proyectos de programación grandes. Concluyendo, son contenedores de clases que nos ayudan a mantenerlas ordenadas y localizadas. Si creo 5 clases distintas pero están todas en el mismo namespace, podré acceder a cualquiera de ellas a través de este por ejemplo escribiendo namespace1.clase3.

Para declarar la clase, utilizamos las llaves en C#, mientras que en VB
Iniciamos con Class y finalizamos con End Class. Dentro de la clase, escribiremos el código.

Donde ponía Nota, en C# es // y después los comentarios y en
VB.NET la comilla simple ‘.

Ojo!!, en C#, las líneas deben acabar con punto y coma «;».

Como consejo, diría que a la hora de escribir código, hay que respetar
escrupulosamente los nombres mediante una notación específica, respetar
tabulaciones, comentar, en definitiva limpieza porque si un programa es grande,
la cosa se puede complicar muy mucho, además, si trabajáramos en un equipo de
trabajo, lo que estoy diciendo se convertiría en condición indispensable. El mantenimiento de las aplicaciones es muy costoso y si no tenemos el código limpio, mal vamos!, dedicaremos un post solo a la notación.

Nos quedamos aquí por hoy, pero recuerden, aún hay mas!!!

Saludos “der waki”

 

 

4.- Y ahora, creo un objeto heredado

4.- Y ahora, creo un objeto heredado

En esta entrega vamos a crear un objeto utilizando la herencia y el polimorfismo, creando una nueva clase que va a heredar las características y las funciones de su «padre» además de añadirle las suyas propias.

Volviendo de nuevo al código «der waki», vamos a utilizar la clase vehículo de la anterior entrega para crear una clase nueva llamada camión.

Un camión como dijimos, sigue siendo un vehículo pero agregándole nuevas características; una era la capacidad de la caja y otra avanzar con reductora (para los que no sepan lo que es reductora es una caja de cambios especial que mediante ruedas dentadas como no podía ser de otro modo, obtiene potencia en perjuicio de velocidad, mas fuerza!!). Comenzamos.Declaro Camión. Heredo de Vehículo. Nota: Herencia!!!

(comienza declaración de clase)

Nota:  Características

propiedad capacidad. Esto es número.

Nota: ahora declaro los métodos

Nota: Este método es igual que el de vehículo, ahora tenemos dos método llamados avanzar, uno el que hemos heredado de vehículo y el otro que estamos creando ahora. Solo hay que especificar cual utilizar.

método Avanzar (¿Hasta que velocidad?)

(comienza método)

Nota: Polimorfismo!!!

Requisitos. El vehículo debe estar arrancado, el vehículo no debe tener el freno de mano echado….

Acciones.  Activar caja de cambios reductora. Llevar el coche a la velocidad del método. Envío más o menos combustible a los inyectores dependiendo de como esté pisado el acelerador y como es automático, el embrague se ha accionado y la caja de cambios engrana con otros métodos internos y … (encapsulación), más acciones que no vemos!!

(finaliza método)

(finaliza declaración de clase)

Ahora ya que tenemos la plantilla, vamos a crear el objeto Camión.

Crear un nuevo Vehículo como Camión que voy a llamar camión «der waki»

Nota: He hecho esto para instanciar un vehículo pero como camión, ¿para que? para que cuando inicie el método avanzar lo haga con la reductora.

la matrícula del camión der waki es 0001 AAA. Nota: Esta propiedad es heredada

el número de bastidor de camión der waki es YYYYYY. Nota: Esta propiedad es heredada

la potencia de camión der waki es 250 CV. Nota: Esta propiedad es heredada

la velocidad de camión der waki es 0 km/h. Nota: Esta propiedad es heredada

la capacidad de camión der waki es 36 metros cúbicos. Nota: Esta propiedad es solo del camión!

Ordeno al camión der waki Arrancar Motor

Ordeno al camión der waki Avanzar. Nota: Avanzará con reductora porque hemos instanciado un vehículo pero como camión, por tanto utilizará el método avanzar de camión, es decir con reductora.

Ordeno al camión der waki  Parar Motor

Bueno, pues en esta clase, hemos intentado adaptar los principios fundamentales de la programación, herencia, encapsulación y polimorfismo creando un nuevo objeto heredado y con funciones sobrescritas.

Saludos «der Waki»

PD. Tengo que hacer un inciso sobre las propiedades de una clase; cuando he declarado una propiedad, le he dicho esto es texto, esto es un número, esto es una fecha, etc… bueno, esto es un aspecto que hay que tener en cuenta, cuando declaramos las propiedades o variables de una clase, tenemos que decirle que son y que van a albergar en su interior de modo que estén preparadas, bueno realmente lo que estamos es instanciar nuevas clases y estas, tiene métodos propios del tipo que sea. Por ejemplo, si incluimos una nueva propiedad a la clase vehículo como fecha de fabricación, no sería válido ponerle el 42 de Febrero de 2014,  ya que la clase de fechas no permitiría tal aberración.