programacion orientada a objetos - unidad 2 clases y objetos

46
Ingeniería en Sistemas Computacionales Programación Orientada a Objetos Unidad 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

Upload: jose-antonio-sandoval-acosta

Post on 13-Jan-2017

60 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: 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

Page 2: Programacion Orientada a Objetos - Unidad 2 clases y objetos

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 3: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 4: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 5: Programacion Orientada a Objetos - Unidad 2 clases y objetos

DECLARACIÓN DE CLASES EN C#Declaración_De_La_Clase { CuerpoDeLaClase

}

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 6: Programacion Orientada a Objetos - Unidad 2 clases y objetos

Ejemplo:

class Cuenta{ long numero;

string nombre;float saldo;

…}

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 7: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 8: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 9: Programacion Orientada a Objetos - Unidad 2 clases y objetos

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.

Page 10: Programacion Orientada a Objetos - Unidad 2 clases y objetos

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

Page 11: Programacion Orientada a Objetos - Unidad 2 clases y objetos

• 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

Page 12: Programacion Orientada a Objetos - Unidad 2 clases y objetos

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 13: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 14: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 15: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 16: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 17: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 18: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 19: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 20: Programacion Orientada a Objetos - Unidad 2 clases y objetos

class Basico { private void main() {

System.Console.Writeline(“Primer programa en C#");

}}

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 21: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 22: Programacion Orientada a Objetos - Unidad 2 clases y objetos

• Sintaxis para declarar métodosTipoValorDevuelto nombre_método (lista_argumentos ) { bloque_de_codigo;}

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 23: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 24: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 25: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 26: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 27: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 28: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 29: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 30: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 31: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 32: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 33: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 34: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 35: Programacion Orientada a Objetos - Unidad 2 clases y objetos

• Ciclo for en c#for (inicia;condición;salto){ …}

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 36: Programacion Orientada a Objetos - Unidad 2 clases y objetos

• Ciclo whileinicia;while (condicion) { …

salto;}

• Ejemplo:int i = 0;while (i <= 10) {

Console.PrintLine(i); i++;}

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 37: Programacion Orientada a Objetos - Unidad 2 clases y objetos

• Condiciones en C#

if (condicion) { …} else { … (parte negativa de la condición)}

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 38: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 39: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 40: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 41: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 42: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 43: Programacion Orientada a Objetos - Unidad 2 clases y 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

Page 44: Programacion Orientada a Objetos - Unidad 2 clases y objetos

• Escribe un programa que calcule la tabla de multiplicar de ese numero desde el 1 hasta el diez.

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 45: Programacion Orientada a Objetos - Unidad 2 clases y objetos

• Escribe un programa que calcule el factorial de un número entero

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 46: Programacion Orientada a Objetos - Unidad 2 clases y 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