Está en la página 1de 51

Programacin Orientado a Objetos (POO)

ING. MANUEL ABANTO MORALES Sesin: 6

Flujograma
Inicio Saberes Previos
Principios y fundamentos

Competencias Sistematizacin de programa bsico

Fundamentos POO

Aplicacin de un programa bsico


FIN

Objetivos de la sesion


Objetivos:


Conocer los principios, fundamentos y conceptualizar la programacin orientada a objetos (POO) manejando la clase String Abstraer el concepto de clase del mundo real y su aplicacin en la programacin orientada a objetos (POO) Alinear el concepto de la Clase String con el lenguaje de programacin Java.

Introduccin
 Dentro

de un objeto de la clases String o StringBuffer, Java crea un array de caracteres de una forma similar a como lo hace el lenguaje C++. A este array se accede a travs de las funciones miembro de la clase.

Creacin de un String
 Los

strings u objetos de la clase String se pueden crear explcitamente o implcitamente.  Para crear un String implcitamente basta poner una cadena de caracteres entre comillas dobles. Por ejemplo: System.out.println("El primer programa"); Java crea un objeto de la clase String automticamente.

Creacin de un string
 Para

crear un string explcitamente escribimos:

String str=new String("El primer programa");

Tambin se puede alternativamente String str="El primer programa";

escribir,

Creacin de un string
 Para

crear un string nulo se puede hacer de estas dos formas String str=""; String str=new String(); Un string nulo es aqul que no contiene caracteres, pero es un objeto de la clase String..

Creacin de un string
Sin embargo, String str; est declarando un objeto str de la clase String, pero an no se ha creado ningn objeto de esta clase

Informacin de un string
 podemos

obtener informacin relevante acerca del objeto String a travs de las funciones miembro.  Para obtener el nmero de caracteres que guarda un string se llama a la funcin miembro length.
String str="El primer programa"; int longitud=str.length(); System.out.println("longitud cadena: "+longitud)

Informacin de un string
 Una

vez creado un objeto de la clase String podemos obtener informacin relevante acerca del objeto a travs de las funciones miembro.  Para obtener el nmero de caracteres que guarda un string se llama a la funcin miembro length. String str="El primer programa"; int longitud=str.length();

Informacin de un string
 Podemos

conocer si un string comienza con un determinado prefijo, llamando al mtodo startsWith, que devuelve true o false, segn que el string comience o no por dicho prefijo String str="El primer programa"; boolean resultado=str.startsWith("El"); En este ejemplo la variable resultado tomar el valor true.

Informacin de un string
 Ejemplo

de codigo: String str="El primer programa"; boolean resultado=str.startsWith("El"); if(resultado){System.out.println("si comineza");} else {System.out.println("no comienza");}

Informacin de un string
 De

modo similar, podemos saber si un string finaliza con un conjunto dado de caracteres, mediante la funcin miembro endsWith. String str="El primer programa";
boolean resultado=str.endsWith("programa"); if(resultado){System.out.println("si finaliza");} else{System.out.println(no finaliza");}

Informacin de un string
 Si

se quiere obtener la posicin de la primera ocurrencia de la letra p, se usa la funcin indexOf. String str="El primer programa"; int pos=str.indexOf('p'); System.out.println("Posicion de p"+pos);

Informacin de un string
 Para

obtener las sucesivas posiciones de la letra p, se llama a otra versin de la misma funcin pos=str.indexOf('p', pos+1); El segundo argumento le dice a la funcin indexOf que empiece a buscar la primera ocurrencia de la letra p a partir de la posicin pos+1.

Informacin de un string
 Codigo:

String str="El primer programa"; int pos=str.indexOf('p'); System.out.println("Posicion de p: "+pos); pos=str.indexOf('p', pos+1); System.out.println("Posicion de p: "+pos);

Informacin de un string
 Otra

versin de indexOf busca la primera ocurrencia de un substring dentro del string. String str="El primer programa"; int pos=str.indexOf("pro");

Informacin de un string
 Codigo:

String str="El primer programa"; int pos=str.indexOf("pro"); System.out.println("Pos. de pro: "+pos);

comparacin de un string
 As

pues, el mtodo equals compara un string con un objeto cualquiera que puede ser otro string, y devuelve true cuando dos strings son iguales o false si son distintos. String str="El lenguaje Java";
boolean resultado=str.equals("El lenguaje Java");

La variable resultado tomar el valor true.

comparacin de un string
String str1="El lenguaje Java"; String str2=new String("El lenguaje Java"); if(str1==str2){ System.out.println("Los mismos objetos) }else{ System.out.println("Distintos objetos"); }

comparacin de un string
Codigo: String str1="El lenguaje Java"; String str2=new String("El lenguaje Java"); String str3="El Lenguaje Java";
if(str1==str2){ System.out.println("Los mismos objetos"); } else{System.out.println("Distintos objetos"); }

comparacin de un string
if(str1.equals(str2)){System.out.println("son la misma cadena");} else{System.out.println("son cadenas diferentes");} if(str1.equals(str3)){System.out.println("son la misma cadena");} else{System.out.println("son cadenas diferentes");} if(str1.equalsIgnoreCase(str3)){System.out.println("son la misma cadena");} else{System.out.println("son cadenas diferentes");}

comparacin de un string
La funcin miembro compareTo devuelve un entero menor que cero si el objeto string es menor (en orden alfabtico) que el string dado, cero si son iguales, y mayor que cero si el objeto string es mayor que el string dado.

comparacin de un string
Codigo:
int resultado; String str1="El lenguaje Java"; String str2=new String("El lenguaje Java"); String str3="El Lenguaje Java"; resultado=str1.compareTo(str2); if(resultado==0){System.out.println("son la misma cadena");} else{System.out.println("son cadenas diferentes");} System.out.println("Valor de Resultado: "+resultado);

comparacin de un string
Codigo:
//opcion 2 resultado=str1.compareTo(str3); if(resultado==0){System.out.println("son la misma cadena");} else{System.out.println("son cadenas diferentes");} System.out.println("Valor de Resultado: "+resultado);

Extraer un substring de un string


Para extraer un substring (porcin del string) desde una posicin determinada hasta el final del string escribimos: String str="El lenguaje Java"; String subStr=str.substring(12); System.out.println("subcadena: "+subStr); Se obtendr el substring "Java".

Extraer un substring de un string


Una segunda versin de la funcin miembro substring, nos permite extraer un substring especificando la posicin de comienzo y la el final. String str="El lenguaje Java"; String subStr=str.substring(3, 11); Se obtendr el substring "lenguaje".

Extraer un substring de un string


Codigo: String str="El lenguaje Java"; String subStr=str.substring(12); System.out.println("subcadena: "+subStr); String subStr1=str.substring(3, 11); System.out.println("subcadena1: "+subStr1);

Convertir un numero a un string


Para convertir un nmero en string se emplea la funcin miembro esttica valueOf (ms adelante explicaremos este tipo de funciones). int valor=10; String str=String.valueOf(valor); La clase String proporciona versiones de valueOf para convertir los datos primitivos: int, long, float, double.

Convertir un numero a un string


codigo:
int valor=10; String str=String.valueOf(valor); System.out.println("Cadena: "+str); float valorf=10.09f; String strf=String.valueOf(valorf); System.out.println("Cadena: "+strf); double valord=10.19; String strd=String.valueOf(valord); System.out.println("Cadena: "+strd);

Eliminar espacios en un String


Para eliminar los espacios (al comienzo o al final) tenemos la funcin miembro trim String str=" 12 "; String str1=str.trim();

Eliminar espacios en un String


codigo: String str=" h o l a "; String str1=str.trim(); System.out.println("str :"+str+"***"); System.out.println("str1:"+str1+"***");

Convertir un String a numero


Para convertir un string en nmero entero, primero quitamos los espacios en blanco al principio y al final y luego, llamamos a la funcin miembro esttica parseInt de la clase Integer (clase envolvente que describe los nmeros enteros) String str=" 12 "; int numero=Integer.parseInt(str.trim());

Convertir un String a numero


Codigo:
String str=" 1299 "; int numero=Integer.parseInt(str.trim()); System.out.println("Numero entero: "+numero); String str1=" 12.99 "; double num=Double.parseDouble(str1.trim()); System.out.println("Numero double: "+num);

Caso de aplicacion
Problema:
Se desea calcular el sueldo del personal que labora en la empresa sabiendo que el sueldo bsico y los descuentos varan segn se indica:
Cargo Gerente Jefe Analista Contador SueldoBasico 8000 5000 3000 4000 Dcto 4% 3% 2% 3% Horas Extras ----------3% mas Hora Nor. 2% mas Hora Nor.

Esta informacin es por mes y el sueldo se calcula segn el cargo y las horas trabajadas en la semana.

Programacin orientada a objetos


Anlisis del problema:
1. Planteamiento del problema:
Calcular el sueldo segn el cargo y numero de horas trabajadas segn se indica:

Salida: sueldo Entrada: cargo,NumHor

Programacin orientada a objetos


Anlisis del problema:
1.

Proceso: si (cargo==Gerente){ sueHor= 8000/(30*8); sueldoBru = sueHor*numHor; descto = sueldoBru *0.04; sueldo=sueldoBru descto;} si (cargo==Jefe){ sueHor= 5000/(30*8); sueldoBru = sueHor*numHor; descto = sueldoBru *0.03; sueldo=sueldoBru descto;}

Programacin orientada a objetos


Anlisis del problema:
Proceso: si (cargo==Analista){ sueHor= 3000/(30*8); sueHex=sueHor*1.03; si(numHor <=40){sueldoBru = sueHor*numHor;} sino{sueldoBru=sueHor*40; sueldoBru=sueldoBru+sueHex*(numHor-40)} descto = sueldoBru *0.02; sueldo=sueldoBru descto;}
1.

Programacin orientada a objetos


Anlisis del problema:
Proceso: si (cargo==Contador){ sueHor= 4000/(30*8); sueHex=sueHor*1.02; si(numHor <=40){sueldoBru = sueHor*numHor;} sino{sueldoBru=sueHor*40; sueldoBru=sueldoBru+sueHex*(numHor-40)} descto = sueldoBru *0.03; sueldo=sueldoBru descto;}
1.

Programacin orientada a objetos


Anlisis del problema:
2. Identificar Objetos:
Como se identifican los objetos? se buscan los sustantivos presentes en especificacin, los sustantivos son los objetos. la

En el caso planteado solo se encuentra un sustantivo: Factorial

Programacin orientada a objetos


Objeto: Sueldo Cargo numHor Objeto: Sueldo Cargo numHor

Objeto: Sueldo Cargo numHor

Objeto: Sueldo Cargo numHor

establecerCargo() establecerNumHor() CalculaSueldo() MuestraSueldo():real

establecerCargo() establecerNumHor() CalculaSueldo() MuestraSueldo():real

establecerCargo() establecerNumHor() CalculaSueldo() MuestraSueldo():real

establecerCargo() establecerNumHor() CalculaSueldo() MuestraSueldo():real

Programacin orientada a objetos


Representacin de clases:
Sueldo

Programacin orientada a objetos


Representacin de la clase y sus instancias:
Sueldo
La linea punteada indica Relacion Instancia

Objeto: Sueldo Cargo numHor establecerCargo() establecerNumHor() CalculaSueldo() MuestraSueldo():real

Objeto: Sueldo Cargo numHor establecerCargo() establecerNumHor() CalculaSueldo() MuestraSueldo():real

Objeto: Sueldo Cargo numHor establecerCargo() establecerNumHor() CalculaSueldo() MuestraSueldo():real

Objeto: Sueldo Cargo numHor establecerCargo() establecerNumHor() CalculaSueldo() MuestraSueldo():real

Calcular El Factorial de un numero


Clase Sueldo
1. Declaraciones Datos Cargo:Cadena; numHor:Real; Sueldo, sueldoBru, horNor, HorExt: real; 2. Metodo establecerCargo(Car: Cadena) a. Cargo = Car; b. Fin Metodo establecerCargo 3. Metodo establecerNumHor(nh: Cadena) a. numHor = nh; b. Fin Metodo establecerNumHor

Calcular Sueldo de un empleado


Clase Sueldo
si (cargo==Gerente){ sueHor= 8000/(30*8); sueldoBru = sueHor*numHor; descto = sueldoBru *0.04; sueldo=sueldoBru descto;} si (cargo==Jefe){ sueHor= 5000/(30*8); sueldoBru = sueHor*numHor; descto = sueldoBru *0.03; sueldo=sueldoBru descto;}

Calcular Sueldo de un empleado


Clase Sueldo
si (cargo==Analista){ sueHor= 3000/(30*8); sueHex=sueHor*1.03; si(numHor <=40){sueldoBru = sueHor*numHor;} sino{sueldoBru=sueHor*40; sueldoBru=sueldoBru+sueHex*(numHor-40)} descto = sueldoBru *0.02; sueldo=sueldoBru descto;}

Calcular Sueldo de un empleado


Clase Sueldo
si (cargo==Contador){ sueHor= 4000/(30*8); sueHex=sueHor*1.02; si(numHor <=40){sueldoBru = sueHor*numHor;} sino{sueldoBru=sueHor*40; sueldoBru=sueldoBru+sueHex*(numHor-40)} descto = sueldoBru *0.03; sueldo=sueldoBru descto;} FinCalcularSueldo

Calcular Sueldo de un empleado


Clase Sueldo
6. Metodo obtenerSueldo( ) : Entero a. return sueldo; b. Fin Metodo obtenerSueldo

Calcular Factorial de un numero


Clase EjecutaSueldo
1. Metodo principal a. Declaraciones Variables cargo: Cadena numHor: Real b. Declarar, crear, e iniciar objeto sueldo objsueldo = new sueldo() c. Solicitar cargo d. Solicitar NumHoras

Calcular Factorial de un numero


Clase EjecutaSueldo
1. Metodo principal e. Establecer objSueldo.establecerCargo(cargo) f. Establecer objSueldo.establecerNumHor(numHor) g. Calcular objSueldo.calcularSueldo() h. Imprimir objSueldo.obtenerSueldo() i. Fin Metodo Principal Fin Clase EjecutaFactorial

Fin de la Exposicin
Muchas Gracias

También podría gustarte