miércoles, 21 de abril de 2010

Programacion orientada a objetos

Programación Orientada a Objetos:

La POO es un paradigma de programación que intenta abstraer los módulos de cada programa en objetos. Los objetos son instancias de clases, en las que se declaran/especifican al menos dos cosas: los atributos, los métodos y opcionalmente los constructores.

Los atributos son las variables que posee el objeto, mientras que los métodos son las funciones o procedimientos que podemos invocar para realizar operaciones especí­ficas sobre los atributos.

Como en Java, en C Sharp utilizamos siempre clases y objetos, aún cuando no tengamos claro el concepto. Por ejemplo, el simple hola mundo:

1using System;
2class Hola{
3 static void Main(string[] args){
4 Console.WriteLine("Hola parce!");
5 }
6}

En cada lí­nea de código estamos usando la programación orientada a objetos: lí­nea 1, creamos una clase (llamada Hola); lí­nea 2, declaramos un método (función) para nuestra clase; lí­nea 3, usando la clase Console invocamos el método WriteLine. Todo, programación orientada a objetos.

Objeto:

Los objetos son construcciones de programación que se componen de datos, comportamiento e identidad. Los datos del objeto se encuentran en los campos, propiedades y eventos del objeto; los métodos e interfaces del objeto definen los comportamientos del objeto.

Los objetos tienen identidad, es decir, dos objetos con el mismo conjunto de datos no son necesariamente el mismo objeto.

En C#, los objetos se definen mediante classes y structs, que conforman el plano único a partir del cual operan todos los objetos de ese tipo.

Los objetos tienen las propiedades siguientes:

  • Todo lo que se utiliza en C# es un objeto, incluidos los formularios Windows Forms y los controles.

  • Se crean instancias de objetos; es decir, éstos se crean a partir de plantillas definidas por clases y estructuras.

  • Los objetos utilizan propiedades para obtener y cambiar la información que contienen.

  • A menudo, los objetos tienen métodos y eventos que les permiten realizar acciones.

  • Visual Studio proporciona herramientas para manipular objetos: la propiedades (ventana) permite cambiar los atributos de los objetos, como formularios Windows Forms. El examinador de objetos permite examinar el contenido de un objeto.

  • Todos los objetos de C# heredan de object.

Campo:

Un campo es una variable de cualquier tipo que se declara directamente en una clase o estructura. Los campos son miembros de su tipo contenedor.

Una clase o estructura puede tener campos de instancia, campos estáticos o ambos. Los campos de instancia son específicos de una instancia de un tipo. Si tiene una clase T, con un campo de instancia F, puede crear dos objetos de tipo T y modificar el valor de F en cada objeto sin afectar al valor del otro objeto. Por el contrario, un campo estático pertenece a la propia clase y se comparte entre todas las instancias de dicha clase. Los cambios realizados en la instancia A serán inmediatamente visibles en las instancias B y C si tienen acceso al campo.

Por regla general, solo debe utilizar campos para variables con accesibilidad privada o protegida. Los datos que la clase expone al código de cliente se deben proporcionar a través de métodos, propiedades e indizadores. Si se utilizan estas construcciones para el acceso indirecto a campos internos, se establece una protección ante valores de entrada no válidos. Un campo privado que almacena los datos expuestos por una propiedad pública se denomina dispositivo de copia de seguridad o campo de respaldo.

Habitualmente los campos almacenan los datos a los que deben tener acceso más de un método de clase y que se deben almacenar durante más tiempo que el período de duración de un único método. Por ejemplo, una clase que representa una fecha del calendario podría tener tres campos enteros: uno para el mes, otro para el día y un tercero para el año. Las variables que no se utilizan fuera del ámbito de un único método se deben declarar como variables locales dentro del propio cuerpo del método.

Los campos se declaran en el bloque de clase especificando el nivel de acceso del campo, seguido por el tipo de campo y después por el nombre del mismo. Por ejemplo:

public class CalendarEntry
{
// private field
private DateTime date;

// public field (Generally not recommended)
public string day;

// Public property exposes date field safely.
public DateTime Date
{
get
{
return date;
}
set
{
if(value.Year > 1980 || value.Year <= 2008) { date = value; } else
throw new ArgumentOutOfRangeException();
}

}

// Public method also exposes date field safely.
public void SetDate(string dateString)
{
DateTime dt = Convert.ToDateTime(dateString);

if (dt.Year > 1980 || dt.Year <= 2008) { date = dt; } else
throw new ArgumentOutOfRangeException();
}

public TimeSpan GetTimeSpan(string dateString)
{
DateTime dt = Convert.ToDateTime(dateString);

if (dt != null && dt.Ticks < style="color:Blue;">return date - dt;
}
else
throw new ArgumentOutOfRangeException();

}
}


Para obtener acceso a un campo en un objeto, agregue un punto después del nombre de objeto, seguido del nombre del campo, como en objectname.fieldname. Por ejemplo:

CalendarEntry birthday = new CalendarEntry();
birthday.day = "Saturday";


Se puede proporcionar un valor inicial a un campo utilizando el operador de asignación cuando se declara el campo. Para asignar automáticamente al campo day el valor "Monday", por ejemplo, declararía day como en el ejemplo siguiente:

public class CalendarDateWithInitialization
{
public string day = "Monday";
//...
}

Los campos se inicializan inmediatamente antes de llamar al constructor para la instancia de objeto. Si el constructor asigna el valor de un campo, sobrescribirá cualquier valor dado durante la declaración del campo.

Los campos se pueden marcar como public, private, protected, internal o protected internal. Estos modificadores de acceso definen cómo pueden tener acceso a los campos los usuarios de la clase.

Un campo puede declararse de forma opcional como static. Esto hace que el campo esté siempre disponible para los llamadores, aunque no exista ninguna instancia de la clase.

Un campo puede declararse como readonly. Solo es posible asignar un valor a un campo de tipo readonly durante la inicialización o en un constructor. Un campo staticreadonly es muy similar a una constante, excepto en que el compilador de C# no tiene acceso a él en tiempo de compilación, solo en tiempo de ejecución.

Método:
Un método es un bloque de código que contiene una serie de instrucciones. Los programas hacen que las instrucciones se ejecuten mediante una llamada al método y la especificación de los argumentos de método necesarios. En C#, cada instrucción se ejecuta en el contexto de un método. El método Main es el punto de entrada de cada aplicación C# al que llama Common Language Runtime (CLR) cuando se inicia el programa.

Los métodos se declaran en una clase o estructura mediante la especificación del nivel de acceso como public o private, modificadores opcionales como abstract o sealed, el valor devuelto, el nombre del método y cualquier parámetro de método. Todos esos elementos constituyen la firma del método.

Los parámetros del método se encierran entre paréntesis y se separan por comas. Los paréntesis vacíos indican que el método no requiere ningún parámetro. Esta clase contiene tres métodos:

abstract class Motorcycle
{
// Anyone can call this.
public void StartEngine() {/* Method statements here */ }

// Only derived classes can call this.
protected void AddGas(int gallons) { /* Method statements here */ }

// Derived classes can override the base class implementation.
public virtual int Drive(int miles, int speed) { /* Method statements here */ return 1; }

// Derived classes must implement this.
public abstract double GetTopSpeed();
Función:
En programación orientada a objetos (POO), una función virtual o método virtual es una función cuyo comportamiento, al ser declarado "virtual", es determinado por la definición de una función con la misma cabecera en alguna de sus subclases. Este concepto es una parte muy importante del polimorfismo en la POO.
En .POO, cuando una clase derivada hereda de una clase base, un objeto de la clase derivada puede ser referido (o coercionado)tanto como del tipo de la clase base como del tipo de la clase derivada. Si hay funciones de la clase base redefinidas por la clase derivada, aparece un problema cuando un objeto derivado ha sido cohercionado como del tipo de la clase base. Cuando un objeto derivado es referido como del tipo de la base, el comportamiento de la llamada a la función deseado es ambiguo
Procedimiento:
Son unidades de código compuestas por una o más sentencias y que son almacenados en el servidor.

miércoles, 24 de marzo de 2010

lunes, 1 de marzo de 2010

int
la palabra clave int denota un tipo integral que almacena valores según el tamaño

string

El tipo string representa una secuencia de cero o más caracteres Unicode. string es un alias de String en .NET Framework.

Aunque string es un tipo de referencia, los operadores de igualdad (== y !=) se definen para comparar los valores de objetos string, no las referencias. De esta forma, es más intuitivo comprobar la igualdad entre cadenas.

short

La palabra clave short denota un tipo de datos integral que almacena valores según el tamaño y el intervalo que se indican en la tabla siguiente.


long
La palabra clave long denota un tipo integral que almacena valores según el tamaño y el intervalo que se indican en la tabla siguiente.
char
La palabra clave char se utiliza para declarar un carácter Unicode en el intervalo indicado en la siguiente tabla. Los caracteres Unicode son caracteres de 16 bits que se utilizan para representar la mayoría de los lenguajes escritos de todo el mundo.

float
La palabra clave float denota un tipo simple que almacena valores de punto flotante de 32 bits. La siguiente tabla muestra la precisión y el intervalo de valores aproximado para el tipo float.

double
La palabra clave double denota un tipo simple que almacena valores de punto flotante de 64 bits. La siguiente tabla muestra la precisión y el intervalo de valores aproximado para el tipo double.

bool
La palabra clave bool es un alias de System.Boolean. Se utiliza para declarar variables que almacenan los valores booleanos, true y false.

Metodos para leer datos

Variable=Pocicion o m¡nombre de memoria en donde se pociciona un valor de un cierto tipo de dato y puede ser modificado. Las variables puedden almacenar cadenas, numeros y estructuras. tiene un nombre( un identificador) que describe su proposito

Constante= Variable cuyo valor no puede ser modificado


Variable Console.Read(); //lee un caracter
Constante Console.ReadLine();//Lee una cadena

Metodos para escribir datos

1.- Write= Escribe sin añadir en caracter de fin de linea a la cadena
2.- Write Line= Si añade el caracter de fin de linea a la cadena, de modo que lo siguiente que se escriba se colocara en la sig linea

ejemplo
Console.Write("Hola");
Console.WriteLine("Pepe");
Console.Write("Como estas, ");
Console.WriteLine("¿bien?);

Ofreceria este resultado en la consola

Hola Pepe
Como estas, ¿bien?

Clases

Unidad basica en la programacion orientada a objetos. Todo programa en c# se organiza en clases que encapsulan datos y comportamientos.

Una clase se compone de la palabra clas seguido del nombre de la clase y el simbolo de inicio y fin de un bloque para delimitar la codificacion de sus mienbros.

Sintaxis

clas NombreClase
{
//aqui se codifican los miembros de la clase
}