Propiedades, conversiones de variables, variables de 64 bits y constructores.
Una propiedad es una operación como cualquier otra que con el simple hecho de llamarla uno puede agregar un dato o devolver un dato.
Primero en principal, las propiedades no se escriben igual que los métodos (Un método se escribe inicialmente "Public void ElMetodo() " )
La propiedad se escribe con dos comandos que tendremos que aprender a usar: get y set.
El comando set es para dar el valor a una variable, mientras que el comando get es para devolver un valor o el mismo que se declaró en la misma propiedad.
Es usual encontrar en una propiedad los dos comandos juntos, es también usual encontrar propiedades que solo devuelvan valores, pero no es tan común propiedades que adquieran un valor.
Una propiedad se escribe del siguiente modo (obvio, imaginando que estamos posicionados siempre en una clase):
Con esta propiedad escrita nos ubicamos en el programa de consola y lo podemos invocar de la siguiente manera.
La conversión de tipos de variables tiene dos posibilidades de hacerse:
La primera poniendo el comando Convert como antes lo puse en los ejemplos. Otro ejemplo más es:
Otras formas de conversión es pasar de un numero flotante (float o double) a uno entero o alrevés.
En este caso NI va a valer 1.
en este caso GD vale 4.00000000000.
La otra forma de transformar tipo de variables en otras clases es poniendo entre paréntesis que clase de variable es.
Esto lo vamos a usar y mucho bastante más adelante cuando veamos ArrayList. Esta forma de convertir valores se le dice "castear"
Las variables de 64 bits son aquellas que pueden guardar números de gran tamaño o valores grandes.
Hagamos un ejemplo de mal funcionamiento de variables comunes
:
El valor de G luego de esta operación es de 829341696...
pues debería dar 300000000000 ...
He visto este error que incluso da una multiplicación de dos números positivos que da un número negativo, pequeño error para el lenguaje. Pero no se preocupe por que todo tiene una solución:
Para los números flotantes también hay una solución: double con mayúscula en la D.
Si tienen alguna duda de como está escrito fíjense que el tipo de variable se transforma a un color celeste.
Constructores:
Este es un tema tremendamente útil.
Resulta que uno puede poner datos de entrada en una clase sin tener que invocarla y luego agregarle los datos. Uno lo puede hacer de entrada y con eso se puede ahorrar varios pasos y mucho tiempo escribiendo.
El constructor nace de esta manera:
por el otro lado se invoca de esta manera:
Incluso pueden hacer dos opciones para el constructor:
Y del otro lado es:
TAREA: 1.Generen un programa donde se carguen los datos temporales de un cronometro y se saque un promedio de los datos dados.
2. Generen un programa donde se carguen datos numéricos y establezca si son pares o impares (para esto se hace int N = 2, U = 3, R; R = N % U; R es el resto de U, con el símbolo % se saca el resto que es lo que queda de la división de dos números).
3. Generen un programa donde los números ingresados sean mayor a 10.000.000 y que se divida, multiplique, sume y reste con otro numero dado.
4. Genere un programa donde se calcule la superficie de un rectángulo, de un triangulo y de un circulo. Recuerde que las clases son como objetos, por lo tanto es conveniente que haga una clase circulo, una clase triangulo y una clase rectángulo para cada operación. (en la programación por objetos lo bueno es separar los objetos de distintas clases y no hacer una clase del modo "Dios" que solo sirva para ese programa, siendo que la idea de esta forma de programación es poder pasar un objeto a otro programa si sirve).
Una propiedad es una operación como cualquier otra que con el simple hecho de llamarla uno puede agregar un dato o devolver un dato.
Primero en principal, las propiedades no se escriben igual que los métodos (Un método se escribe inicialmente "Public void ElMetodo() " )
La propiedad se escribe con dos comandos que tendremos que aprender a usar: get y set.
El comando set es para dar el valor a una variable, mientras que el comando get es para devolver un valor o el mismo que se declaró en la misma propiedad.
Es usual encontrar en una propiedad los dos comandos juntos, es también usual encontrar propiedades que solo devuelvan valores, pero no es tan común propiedades que adquieran un valor.
Una propiedad se escribe del siguiente modo (obvio, imaginando que estamos posicionados siempre en una clase):
<?
class LaClase
{
private int ElNumero;
public int SetGetNumero
{
get
{
return ElNumero;
}
set
{
ElNumero = value;
}
}
}
>
Con esta propiedad escrita nos ubicamos en el programa de consola y lo podemos invocar de la siguiente manera.
<?
static void Main(string[] args)
{
int Num;
LaClase CL = new LaClase();
Console.WriteLine("Introduzca un número");
Num = Convert.ToInt32(Console.ReadLine());
CL.SetGetNumero = Num; //Doy a la propiedad el valor numerico Num.
Console.WriteLine("El número seleccionado es {0}", CL.SetGetNumero.ToString()); // Acá estoy usando el "get" de la propiedad para
// devolver el número
Console.ReadKey();
}
>
La conversión de tipos de variables tiene dos posibilidades de hacerse:
La primera poniendo el comando Convert como antes lo puse en los ejemplos. Otro ejemplo más es:
<?
bool T = true;
string ElT;
ElT = Convert.ToString(T); // ElT pasa a tener el texto true.
>
Otras formas de conversión es pasar de un numero flotante (float o double) a uno entero o alrevés.
<?
double ND = 1.4;
int NI = Convert.ToInt32(ND);
>
En este caso NI va a valer 1.
<?
int G = 4;
double GD = Convert.ToDouble(G);
>
en este caso GD vale 4.00000000000.
La otra forma de transformar tipo de variables en otras clases es poniendo entre paréntesis que clase de variable es.
<?
double GD = 1.4;
int G = (int)GD;
>
Esto lo vamos a usar y mucho bastante más adelante cuando veamos ArrayList. Esta forma de convertir valores se le dice "castear"
Las variables de 64 bits son aquellas que pueden guardar números de gran tamaño o valores grandes.
Hagamos un ejemplo de mal funcionamiento de variables comunes

:
<?
int G = 10000000;
G = G * 30000000;
>
El valor de G luego de esta operación es de 829341696...

pues debería dar 300000000000 ...
He visto este error que incluso da una multiplicación de dos números positivos que da un número negativo, pequeño error para el lenguaje. Pero no se preocupe por que todo tiene una solución:
<?
Int64 G = 10000000;
G = G * 30000000;
>
Para los números flotantes también hay una solución: double con mayúscula en la D.
Si tienen alguna duda de como está escrito fíjense que el tipo de variable se transforma a un color celeste.
Constructores:
Este es un tema tremendamente útil.
Resulta que uno puede poner datos de entrada en una clase sin tener que invocarla y luego agregarle los datos. Uno lo puede hacer de entrada y con eso se puede ahorrar varios pasos y mucho tiempo escribiendo.
El constructor nace de esta manera:
<?
class LaClase
{
private int Num;
public LaClase(int N)
{
Num = N;
}
public int GetN
{
get
{
return Num;
}
set
{
Num = value;
}
}
}
>
por el otro lado se invoca de esta manera:
<?
static void Main(string[] args)
{
Console.WriteLine("Escriba un Número");
int N = Convert.ToInt32(Console.ReadLine());
LaClase CL = new LaClase(N);
Console.WriteLine("El numero puesto es {0}", CL.GetN.ToString());
Console.WriteLine("Decea colocar algun número más? Si o No");
string SINO = Console.ReadLine();
if (SINO == Si)
{
Console.WriteLine("Escriba un Número");
int N = Convert.ToInt32(Console.ReadLine());
CL.GetN = N;
Console.WriteLine("El numero puesto es {0}", CL.GetN.ToString());
Console.ReadKey();
}
else
Console.ReadKey();
}
>
Incluso pueden hacer dos opciones para el constructor:
<?
class LaClase
{
private int Num;
private double ND;
public LaClase(int N)
{
Num = N;
}
public LaClase(double D)
{
ND = D;
}
public int GetN
{
get
{
return Num;
}
set
{
Num = value;
}
}
public double GetND
{
get
{
return ND;
}
set
{
ND = value;
}
}
}
>
Y del otro lado es:
<?
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Desea colocar algún número flotante o entero? Entero o Flotante");
string SINO = Console.ReadLine();
if (SINO == "Entero")
{
Console.WriteLine("Escriba un Número");
int N = Convert.ToInt32(Console.ReadLine());
LaClase CL = new LaClase(N);
Console.WriteLine("El numero puesto es {0}", CL.GetN.ToString());
Console.ReadKey();
}
else
{
Console.WriteLine("Escriba un Número");
double Dou = Convert.ToDouble(Console.ReadLine());
LaClase CL = new LaClase(Dou);
Console.WriteLine("El numero puesto es {0}", CL.GetND.ToString());
Console.ReadKey();
}
}
}
>
TAREA: 1.Generen un programa donde se carguen los datos temporales de un cronometro y se saque un promedio de los datos dados.
2. Generen un programa donde se carguen datos numéricos y establezca si son pares o impares (para esto se hace int N = 2, U = 3, R; R = N % U; R es el resto de U, con el símbolo % se saca el resto que es lo que queda de la división de dos números).
3. Generen un programa donde los números ingresados sean mayor a 10.000.000 y que se divida, multiplique, sume y reste con otro numero dado.
4. Genere un programa donde se calcule la superficie de un rectángulo, de un triangulo y de un circulo. Recuerde que las clases son como objetos, por lo tanto es conveniente que haga una clase circulo, una clase triangulo y una clase rectángulo para cada operación. (en la programación por objetos lo bueno es separar los objetos de distintas clases y no hacer una clase del modo "Dios" que solo sirva para ese programa, siendo que la idea de esta forma de programación es poder pasar un objeto a otro programa si sirve).