Programacion Orientada a Objetos - Unidad 2 clases y objetos
-
Upload
jose-antonio-sandoval-acosta -
Category
Engineering
-
view
61 -
download
4
Transcript of Programacion Orientada a Objetos - Unidad 2 clases y objetos
Ingeniería en Sistemas Computacionales
Programación Orientada a ObjetosUnidad II: Clases y Objetos
Este material está desarrollado para la asignatura Programación Orientada a Objetos, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224.
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
COMPETENCIAS ESPECÍFICAS DE LA UNIDAD
• Implementar clases y objetos cumpliendo las reglas de la programación orientada a objetos.• Implementar constructores y destructores para inicializar atributos y
liberar recursos.• Sobrecargar métodos y operadores para optimizar el código de una
clase.
PROGRAMACIÓN ORIENTADA A OBJETOS
Lenguaje de programación a utilizar
• C#• Bajar el paquete Visual Studio Express desde la página
de Microsoft
PROGRAMACIÓN ORIENTADA A OBJETOS
DECLARACIÓN DE CLASES EN C#Declaración_De_La_Clase { CuerpoDeLaClase
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo:
class Cuenta{ long numero;
string nombre;float saldo;
…}
PROGRAMACIÓN ORIENTADA A OBJETOS
• Los atributos (tipo de variables) pueden ser de los tipos básicos de C#: boolean, char, byte, short, int, float, double y string.• Los elementos de una clase se pueden etiquetar como public en su declaración y los que no deban ser vistos desde otra clase se pueden etiquetar como private.
private long numero;public float saldo;
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
C# Tipo Signed? Rangosbyte Yes -128 a 127short Yes -32768 a 32767int Yes -2147483648 a 2147483647long Yes -9223372036854775808 a 9223372036854775807byte No 0 a 255ushort No 0 a 65535uint No 0 a 4294967295ulong No 0 a 18446744073709551615float Yes Aprox. ±1.5 x 10-45 a ±3.4 x 1038 con 7 decimalesdouble Yes Aprox. ±5.0 x 10-324 a ±1.7 x 10308 con 15 o 16 decimalesdecimal Yes Aprox. ±1.0 x 10-28 a ±7.9 x 1028 con 28 o 29 decimaleschar N/A Cualquier carácter Unicodebool N/A true o false
Operadores Básicos
PROGRAMACIÓN ORIENTADA A OBJETOS
Operador Observaciones+ Representa la suma de dos o más valores o variables.- Representa la resta de dos o más valores o variables.* Representa la multiplicación de dos o más valores o variables./ Representa la división de dos o más valores o variables.
% Representa el modulo (obtención del residuo de una división) de dos o más valores o variables.
Operadores Básicos
PROGRAMACIÓN ORIENTADA A OBJETOS
Operador Observaciones&& Operador AND (Y) quiere decir que todas las condiciones deben ser
verdaderas para que se ejecute una acción.
|| Operador OR (O) quiere decir que de todas las condiciones solo una debe ser verdadera y se asume que con eso es suficiente para hacer determinada acción.
! Operador NOT (NO) quiere decir que se niega la afirmación para cambiar su valor, es decir cambia de verdadero a falso y de falso a verdadero.
== Igual que!= Diferente a> Mayor que< Menor que
>= Mayor igual que<= Menor igual que
• Nombres de Variables: En C# los nombres de las variables y las funciones siguen ciertas reglas, por ejemplo las variables se acostumbra a nombrarlas con todas sus letras en minúsculas, las funciones con la primer palabra que la identifica en minúsculas y las palabras siguientes con la primer letra en mayúsculas y los nombres de las Clases de objetos con la primer letra de cada palabra que la define en mayúsculas.
• Los nombres de variables no pueden iniciar con número, pero si pueden contener el carácter de subrayado “_”.
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
• Inicialización y Finalización: esto se hace por medio de constructores cuyo nombre coincide con la clase.
public class Cuenta {long numero;string nombre;private float saldo;public Cuenta () {numero=0;titular=“ninguno”;saldo=0;}
}
PROGRAMACIÓN ORIENTADA A OBJETOS
• Cuando se finaliza un objeto, se realizan ciertas tareas antes de su destrucción en memoria, para liberarla.
• En C# la liberación de memoria se realiza de manera automática por parte del recolector de basura, por lo tanto la necesidad de crear métodos para destrucción no existe.
PROGRAMACIÓN ORIENTADA A OBJETOS
Creación de Objetos: En C# los objetos se crean utilizando el operador new.Los pasos a seguir en la creación de un objeto son:• Declarar una referencia a la clase• Crear un objeto mediante el operador new invocando al constructor
adecuado• Conectar el objeto con la referencia
PROGRAMACIÓN ORIENTADA A OBJETOS
• La creación de un objeto de la clase Cuenta se realizaría de la siguiente forma:
• Los tipos básicos (int, long, float, etc.) sí pueden ser creados directamente en la pila.
Cuenta c; // Una referencia a un objeto de la clase Cuentac = new Cuenta(18400200, “Pedro Jiménez”, 0.1f);
Cuenta c;float in;long num;in = 0.1f;num = 18400200;c = new Cuenta(num, “Pedro Jiménez”, in);
PROGRAMACIÓN ORIENTADA A OBJETOS
• Las cadenas de caracteres se implementan con una clase (string). Sin embargo no suele ser necesaria su creación de manera explícita, ya que C# lo hace de manera automática al asignar una cadena constante.
string s; // Una referencia a un objeto de la clase Strings = “Pedro”;
PROGRAMACIÓN ORIENTADA A OBJETOS
• Primer programa en C#
class ProgramaInicio { public static void main(String[] args) {
System.Console.Writeline(“Mi primer programa en C#"); }
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Declaración de métodos (subrutinas)
• En C# se pueden declarar diferentes tipos de métodos, es decir las acciones que realiza la clase se definen dentro de un método.
PROGRAMACIÓN ORIENTADA A OBJETOS
class Basico { private void main() {
System.Console.Writeline(“Primer programa en C#");
}}
PROGRAMACIÓN ORIENTADA A OBJETOS
• Para compilar el programa se debe dirigir en la ventana de entorno de desarrollo al botón Start, dicho botón inicia las instrucciones que compilan y ejecutan el programa de consola.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Sintaxis para declarar métodosTipoValorDevuelto nombre_método (lista_argumentos ) { bloque_de_codigo;}
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemploint sumaEnteros (int a, int b) {
int c = a + b; return c;
}• En este ejemplo el método recibe dos parámetros que
fueron enviados desde la línea del programa donde se llamó, y a su vez regresa un valor con la variable c;
PROGRAMACIÓN ORIENTADA A OBJETOS
El termino void• El hecho de que un método devuelva o no un valor es opcional. En caso
de que devuelva un valor se declara el tipo que devuelve. Pero si no necesita ningún valor, se declara como tipo del valor devuelto, la palabra reservada void. Por ejemplo:
void ejemploRutina() { instrucciones de la rutina . . .
}
PROGRAMACIÓN ORIENTADA A OBJETOS
Uso de métodos en un programa• Los métodos se invocan con su nombre, y pasando la lista de
argumentos entre paréntesis. El conjunto se usa como si fuera una variable del Tipo devuelto por el método. • Ejemplo: int x;
x = sumaEnteros(2,3);
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio• Haga el programa de consola que obtenga el cuadrado, el cubo y el
valor absoluto de un número;• Realice las operaciones matemáticas dentro de un método;
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio• Hacer el programa para solucionar el área, el perímetro y la
superficie de un triángulo; fórmulas:
area=(b*h)/2superficie=b*hperimetro=2(b+h)
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio• Hacer un programa que convierta una cantidad de grados Centígrados
a grados Fahrenheit la fórmula es:
GF=GC*(9/5)+32
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio• Hacer programa que convierta los datos de una persona, su peso en
libras y su estatura en pies (medidas americanas) a su peso a kilos y su estatura a metros (medidas métrico-decimales:
1 libra equivale a 0.4536 kilos1 pie equivale a 0.3047 metros
PROGRAMACIÓN ORIENTADA A OBJETOS
Tipos de Métodos static:• Los métodos o variables que son declarados con la clausula static al
ser instanciados en un nuevo objeto no generan una nueva copia sino que hacen referencia al valor contenido en la clase original.• Es decir al utilizar un método tipo static no es posible crear nuevas
instancias usando la palabra reservada new.
PROGRAMACIÓN ORIENTADA A OBJETOS
Tipos de métodos public:• Los métodos y variables declarados public pueden ser accedidos
desde cualquier parte de nuestra clase, es decir desde cualquier método que los necesite
PROGRAMACIÓN ORIENTADA A OBJETOS
Tipos de métodos private:• Los métodos y variables declarados private sólo se
puede acceder al elemento desde métodos de la clase, o sólo puede invocarse el método desde otro método de la clase.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de un programa usando tipos de métodos:public class Suma { static int sumaNumeros (int a, int b) { int c = a+b;
return c; } public static void main(String args[]) { int x; x = sumaNumeros(5,10);
System.console.PrintLine(x); }}
PROGRAMACIÓN ORIENTADA A OBJETOS
Funciones matemáticas en c#: clase Math
• Math.Abs(x): Obtiene el valor absoluto del número x (puede ser float, int, double, etc).• Math.Pow(x,y): Obtiene el valor de x elevado a la potencia
y.• Math.Sqrt(x): Obtiene la raíz cuadrada de x.• Math.Round(x): Obtiene el valor redondeado del número x
(puede ser float, int, double, etc).
PROGRAMACIÓN ORIENTADA A OBJETOS
• Ciclo for en c#for (inicia;condición;salto){ …}
PROGRAMACIÓN ORIENTADA A OBJETOS
• Ciclo whileinicia;while (condicion) { …
salto;}
• Ejemplo:int i = 0;while (i <= 10) {
Console.PrintLine(i); i++;}
PROGRAMACIÓN ORIENTADA A OBJETOS
• Condiciones en C#
if (condicion) { …} else { … (parte negativa de la condición)}
PROGRAMACIÓN ORIENTADA A OBJETOS
Sobrecarga de métodos• Un método sobrecargado se utiliza para reutilizar el nombre de un método
pero con diferentes argumentos (opcionalmente un tipo diferente de retorno). Las reglas para sobrecargar un método son las siguientes:
PROGRAMACIÓN ORIENTADA A OBJETOS
• Los métodos sobrecargados deben de cambiar la lista de argumentos.• Pueden cambiar el tipo de retorno.• Pueden cambiar el modificador de acceso.• Pueden declarar nuevas o más amplias excepciones.• Un método puede ser sobrecargado en la misma clase o
en una subclase.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo Sobrecarga:public class Suma { static int sumaNumeros (int a, int b) {
int c = a+b;return c;
} static int sumaNumeros (int a, int b, int y) {
int c = a+b+y;return c;
} public static void main(String [] args) { int x; x = sumaNumeros(5,10);
System.out.println("suma 2 numeros"+x); x = sumaNumeros(5,10,15);
System.out.println("suma 3 numeros"+x); }}
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio de sobrecarga• Haz un programa que calcule el valor absoluto de un número, este
puede ser int o float, y regrese ese dato a la rutina principal.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio de sobrecarga• Escribe un programa que realice la suma de dos números utilizando
sobrecarga de la siguiente forma:• Sumar entero y entero;• Sumar flotante y flotante;• Sumar flotante y entero;• Sumar entero y flotante.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicios con ciclos y condiciones• Haz un programa que sume los cuadrados de los primeros 100
números naturales comenzado con el 1, el cálculo de la suma debes hacerlo en método aparte del método main.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Escribe un programa que calcule la tabla de multiplicar de ese numero desde el 1 hasta el diez.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Escribe un programa que calcule el factorial de un número entero
PROGRAMACIÓN ORIENTADA A OBJETOS
Programa: Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:
• Si trabaja 40 horas o menos se le paga $16 por hora. • Si trabaja más de 40 horas se le paga $16 por cada una de las
primeras 40 horas y $20 por cada hora extra
PROGRAMACIÓN ORIENTADA A OBJETOS