Upload
rudy-hacker-tamayo-guardia
View
257
Download
4
Embed Size (px)
Citation preview
INTRODUCCIN
a) Presentacin y contextualizacin
En esta Unidad trataremos los temas de fundamento que te permitan comprender la
filosofa e importancia de la programacin orientada a objetos como un estndar
actual en el desarrollo de aplicaciones informticas.
Adicionalmente, tambin aprenders a expresar tu percepcin de la realidad en
objetos, para luego a partir de esta percepcin crear tus primeras clases e
implementarlas con mtodos y propiedades.
Finalmente, en esta Unidad aprenders dos de las clases importantes de Java: La
clase String y la Clase Math.
b) Competencia
Analiza, y plantea las funcionalidades y propiedades de un objeto con relacin a su clase.
c) Capacidades
1. Analiza una realidad, se abstrae y lo formula en un modelo de objetos. 2. Diferencia las variables y mtodos estticos de las propiedades y mtodos de instancia
(miembros) y los aplica al desarrollar una aplicacin. 3. Diferencia la capa de la Lgica de Presentacin y Lgica de Negocios y los utiliza al
desarrollar aplicaciones en dos capas.
4. Distingue la utilidad de los mtodos estticos de la clase Math y String
d) Actitudes
Desarrolla una actitud analtica y sistmica, a partir de la cual expone diversos planteamientos en relacin con la actividad asignada.
Acta con responsabilidad personal, al cumplir con los cronogramas establecidos y la metodologa del plan de estudio virtual.
Disposicin emprendedora
e) Presentacin de ideas bsicas y contenido esenciales de la Unidad. La Unidad de Aprendizaje 1: FUNDAMENTOS DE LA PROGRAMACION ORIENTADA A OBJETOS comprende el desarrollo de los siguientes temas:
Tema 01: Conceptos Bsicos de la Programacin Orientada a Objetos Tema 02: Variables y Mtodos Estticos Tema 03: Modelamiento de Clases Tema 04: La Clase Math y La Clase String
Tema 01: Conceptos Bsicos de la Programacin Orientada a Objetos
1. Antecendentes de la Programacin Orientada a Objetos
La Programacin Orientada a Objetos (POO) es una forma especial de programar,
ms cercana a como expresaramos las cosas en la vida real,
que otros tipos de programacin.
Durante aos, los programadores se han dedicado a construir
aplicaciones muy parecidas que resolvan una y otra vez los mismos
problemas. Para conseguir que los esfuerzos de los programadores
puedan ser reutilizados por otras personas se cre la POO, la cual usa
una serie de normas y estndares para cumplir este objetivo.
POO no es difcil, pero es una manera especial de pensar, a veces subjetiva de quien la
programa, de manera que la forma de hacer las cosas puede ser diferente entre uno u otro
programador, aunque podamos hacer los programas de formas distintas, no todas ellas son
correctas, lo difcil no es programar orientado a objetos sino programar bien. Programar bien
es importante, porque as podemos aprovechar de todas las ventajas de la POO.
Programacin Estructurada Vs Programacin Orientada a Objetos (POO):
El desarrollo de la POO empieza a destacar durante la dcada de los 80
tomando en cuenta la programacin estructurada, a la que engloba y
dota de nuevos elementos para el anlisis y desarrollo de software.
La POO permite a los programadores desarrollar software, de forma que
est organizado en la misma manera como el problema que se trata de
modelizar (analizar).
La programacin estructurada es una programacin de diseo ARRIBA ABAJO
(Top-Down), donde las instrucciones del programa se van ejecutando una detrs de
otra secuencialmente desde un inicio hasta un fin. En esta forma de diseo se
descomponen los requerimientos del programa paso a paso (secuencialmente),
hasta llegar a un nivel que permite expresarlos mediante procedimientos y
funciones. (Ejemplo: un Diagrama de Flujo, Pseudocdigo)
En cambio, la POO estructura los datos en objetos que pueden almacenar,
manipular y combinar informacin de modo analtico, lgico y funcional
En la actualidad, la POO es el estndar de programacin utilizado por la gran
mayora de programadores y las distintas herramientas de anlisis y diseo de
sistemas utilizado por los profesionales en informtica. Por otro lado, los lenguajes
de programacin de la actualidad son orientados a objetos (entre los que podemos
citar estn: Java y Microsoft Visual Studio .Net)
Ventajas de la Programacin Orientada a Objetos:
a) Uniformidad. Ya que la representacin de los objetos que lleva, implica tanto el
anlisis como el diseo y la codificacin de los mismos. Esto quiere decir que
nos permite una mejor integracin entre las diferentes etapas del desarrollo de
un proyecto informtico.
b) Flexibilidad. Al tener relacionados los procedimientos que manipulan los datos
con los datos a tratar, cualquier cambio que se realice sobre ellos quedar
reflejado automticamente en cualquier lugar donde estos datos aparezcan.
c) Reusabilidad. De esta forma, el desarrollo de un programa puede llegar a ser
una simple combinacin de objetos ya definidos donde estos estn relacionados
de una manera particular.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para
escribir nuestros programas en trminos de objetos, propiedades, mtodos.
2.- Conceptos Bsicos de la Programacion Orientada a Objetos:
a) Clase
La clase es una plantilla o patrn a partir de la cual se crean muchos otros objetos similares,
tambin se podra definir a una clase como la agrupacin de objetos que poseen
caractersticas comunes.
Ejemplos:
Si usted tuviera que dibujar 30 mapas del Per Cmo los podra hacer de un modo muy
rpido? Tendra que conseguir un molde o plantilla y a partir de ste podra crear los
30 mapas de un modo fcil y rpido. En este ejemplo el Molde o Patrn sera la Clase
y cada uno de los mapas reproducidos vendran ser los objetos instanciados.
Qu clases puedes distinguir dentro de tu aula? En el aula existe la clase Alumnos,
cada alumno vendra ser un objeto que se origina de esta clase. Otras clases podran
ser: carpetas, tiles, etc.
Como podemos darnos cuenta, los conceptos de la POO estn en la
vida diaria, y son estos conceptos los que se aplican al momento de
programar aplicaciones informticas.
b) Propiedades de la clase
Las propiedades o atributos son las caractersticas descriptivas de una clase. Cuando
definimos una propiedad especificamos su nombre y su tipo de dato.
Ejemplos:
Propiedades de la clase alumnos Apellidos (Tipo de dato String)
Nombres (Tipo de dato String)
Edad (Tipo de dato int)
Talla (Tipo de dato double)
c) Mtodos de la clase
Son las funcionalidades, acciones o habilidades de la clase. Los mtodos son funciones que
estn asociadas a un objeto. Los mtodos responden a la pregunta: Qu es lo que es capaz
de hacer la clase?
Los nombres de los mtodos generalmente estn asociados a una accin o verbos. Al final del
nombre de los mtodos siempre se utilizarn parntesis dentro de los cuales muchas veces es
necesario enviar algunos datos, para que puedan realizarse los procesos.
Ejemplos:
La clase alumnos contiene los siguientes
mtodos:
estudiar()
hablar()
decirSuEdad()
La clase plumones contiene los siguientes
mtodos:
pintar()
escribir()
La clase calculadora contiene los siguientes
mtodos:
Sumar(4,5)
Restar(3,2)
Multiplicar(4,3)
Multiplicar(4,2)
Nota:
Algunos mtodos reciben entre los parntesis: datos, los cuales sirven al mtodo para
realizar su tarea. Estos datos son conocidos como argumentos del mtodo.
Algunos mtodos retornan un dato como resultado de la accin, por ejemplo el mtodo
sumar (4,5) de la clase calculadora, luego de realizar su accin devolver un dato de
respuesta el cual es el resultado de la suma: 9.
d) Objeto Instaciado
Los objetos instanciados son ejemplares resultantes de una clase. Cuando creamos un
ejemplar tenemos que especificar la clase a partir de la cual se crear. Esta accin de crear un
objeto a partir de una clase se llama instanciar (que viene de una mala traduccin de la palabra
instance que en ingls significa ejemplar). Por ejemplo, un objeto instanciado de la clase
fraccin es por ejemplo 3/5. El concepto o definicin de fraccin sera la clase, pero cuando ya
estamos hablando de una fraccin en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto
instanciado.
Todo objeto instanciado hereda automticamente las propiedades y mtodos de
su clase base
e) Estado en un objeto
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos una
fraccin, la propiedad numerador tomar un valor en concreto, como por ejemplo 1 y la
propiedad denominador puede tomar el valor de 3. Estos valores que se llaman estados de
un objeto.
Para acceder a un estado de un objeto, para ver su valor o cambiarlo se utiliza el operador punto. Ejemplo
f1.numerador = 2
f1.denominador=5
El objeto instanciado es f1, luego colocamos el operador punto y por ltimo el nombre de la
propiedad a la que deseamos acceder. En el ejemplo anterior, estamos cambiando el valor del
estado de la propiedad numerador del objeto f1 a 2 con una simple asignacin, y el valor de la
propiedad denominador a 5.
EJEMPLOS PRCTICOS
A continuacin, mostraremos algunos ejemplos de clases con sus
respectivas propiedades y mtodos.
Clase Reloj
Propiedades: marca, modelo, precio, tipo
Mtodos: mostrarLaHora(), mostrarLaFecha(), fijarAlarma(), iniciarCronometro()
Clase Tringulo
Propiedades: color, tipo de borde, tipo de tringulo
Mtodos: calcularArea(), calcularSemiPermetro()
Clase BoletadeNota
Propiedades: n de boleta, fecha de emision, apellidos, nombres
Mtodos: calcularPromedioporAsignatura(), calcularPromedioPonderado()
1. CREACIN DE UNA CLASE
Crearemos como ejemplo: la clase Calculdora
Cada IDE tiene sus propios pasos para crear una clase y esto lo aprendimos
durante el pasado semestre. Como ejemplo, crearemos la clase Calculadora
public class Calculadora { public static void main(String args[]) { } } //Fin de la clase
2.- CREACIN DE LAS PROPIEDADES DE LA CLASE
Se debern crear a nivel de la clase (debajo de public class) y cada una
corresponder a un tipo de dato.
Ejemplo: La clase con sus propiedades
public class Calculadora {
// DEFINICION DE PROPIEDADES
public String marca;
public double precio;
public String modelo;
public static void main(String args[])
{
}
} //Fin de la clase
3.- CREACIN DE LOS MTODOS DE LA CLASE
Se debern crear dentro de la clase, cada mtodo devuelve un tipo de dato como
resultado final (el cual puede ser int, double, String, boolean, etc), de no ser as el
tipo de dato devuelto es void. Los mtodos usan parntesis para recibir algunos
datos (argumentos) desde el exterior.
Ejemplo:
Ejemplo:
Ahora veamos integralmetne todo el cdigo fuente de la clase Calculadora con sus
propiedades y mtodos:
public class Calculadora { // DEFINICION DE PROPIEDADES public String marca; public double precio; public String modelo; public double sumar(double a, double b) { double r; r=a+b; return r; //Retorna el resultado } public double restar(double a, double b) { double r; r=a-b; return r; } public double multiplicar(double a, double b) { double r; r=a*b; return r; } public double dividir(double a, double b) {double r; if(b!=0) { r=a/b; }
else {System.out.println("Resultado no determinado en N"); } return r; } public double dimetuprecio() { return precio; } public static void main(String args[]) { } } //Fin de la clase
4. CREACIN DE LOS MTODOS CONSTRUCTORES
Un mtodo constructor es un mtodo especial dentro de la clase, que lleva el nombre
de la misma clase. Pueden existir uno o varios mtodos constructores. Este mtodo
se ejecuta automticamente cada vez que nosotros instanciemos un objeto de la
clase, por lo que puede ser utilizado para el instanciamiento de objetos y al mismo
tiempo introducir estados (datos) a todas o a algunas las propiedades del objeto
instanciado.
Ejemplo: La clase Calculadora con 3 mtodos constructores
Nota: Si una clase posee varios mtodos constructores, significa que tiene varias formas de instanciar un objeto.
public class Calculadora {
// DEFINICIN DE PROPIEDADES
public String marca;
public double precio;
public String modelo;
public double sumar(double a, double b)
{ double r;
r=a+b;
return r; //Retorna el resultado
}
public double restar(double a, double b)
{ double r;
r=a-b;
return r;
}
public double multiplicar(double a, double b)
{ double r;
r=a*b;
return r;
}
public double dividir(double a, double b)
{ double r;
if(b!=0)
{ r=a/b; }
else
{ System.out.println("Resultado no determinado en N");
}
return r;
}
public double dimetuprecio()
{ return precio; }
// EL MTODO CONSTRUCTOR 1
// Permite el ingreso de los estados solo a 2 de
// las propiedades del objeto instanciado
public Calculadora(String ma, double p) {
marca=ma;
precio=p;
}
// EL MTODO CONSTRUCTOR 2 - Permite el ingreso de los
// estados solo a 3 de las propiedades del objeto
// instanciado
public Calculadora(String ma, double p, String mo) {
marca=ma;
precio=p;
modelo=mo;
}
// EL MTODO CONSTRUCTOR 3 - Permite solo el
// instanciamiento
public Calculadora() {
}
public static void main(String args[])
{
}
} //Fin de la clase
5. EL MTODO ESTTICO MAIN
Este mtodo es el Mtodo principal de la clase, es aquel que es invocado cuando
ejecutamos la clase, si una clase no cuenta con el mtodo main, es imposible
ejecutarla.
6. INSTANCIAMIENTO DE LA CLASE
Tal como vimos durante la semana anterior, instanciar, significar, crear un objeto a
partir de una clase base, recordemos tambin que al instanciar un objeto, este
hereda automticamente propiedades y mtodos de su clase.
Ejemplo:
Veamos con se instancia la clase Calculadora desde el mtodo main de la misma
clase.
public class Calculadora { // DEFINICION DE PROPIEDADES public String marca; public double precio; public String modelo; public double sumar(double a, double b) { double r; r=a+b; return r; //Retorna el resultado } public double restar(double a, double b) { double r; r=a-b; return r; } public double multiplicar(double a, double b) { double r; r=a*b; return r; } public double dividir(double a, double b) {double r=0; if(b!=0) { r=a/b; } else {System.out.println("Resultado no determinado en N"); } return r; } public double dimetuprecio() { return precio; }
// EL MTODO CONSTRUCTOR 1 // Permite el ingreso de los estados solo a 2 de // las propiedades del objeto instanciado public Calculadora(String ma,double p) { marca=ma; precio=p; } // EL MTODO CONSTRUCTOR 2 - Permite el ingreso de los // estados solo a 3 de las propiedades del objeto // instanciado public Calculadora(String ma,double p, String mo) { marca=ma; precio=p; modelo=mo; } // EL MTODO CONSTRUCTOR 3 - Permite solo el // instanciamiento public Calculadora() { } public static void main(String args[]) { //Creacin de los objetos instanciados Calculadora c1=new Calculadora("CASIO",25.45); //Usa el constructor 1 Calculadora c2=new Calculadora("CITIZEN",32.99,"RS23"); //Usa el constructor 2 Calculadora c3=new Calculadora(); //Usa el constructor 3
//Visualizando el contenido de la propiedad marca del primer objeto instanciado System.out.println("La marca de la calculadora 1 es : "+ c1.marca); //Invocando a los mtodos del 1er. obj. instanciado System.out.println("La calculadora 1 suma 12+34 : "+ c1.sumar(12,34)); System.out.println("La calculadora 1 resta 12-34 : "+ c1.restar(12,34)); System.out.println("La calculadora 1 multiplica 12*34 : "+ c1.multiplicar(12,34)); System.out.println("La calculadora 1 divide 12/34 : "+ c1.dividir(12,34)); //Usando la propiedades y mtodos del 2do. obj. Instanciado System.out.println("Accedemos al precio de la calculadora 2 : "+ c2.precio); System.out.println("La calculadora 2 suma 2+-5 : "+ c2.sumar(2,-5)); System.out.println("La calculadora 2 nos dice su precio : "+ c2.dimetuprecio()); //Usando la propiedades y mtodos del 3er. obj. Instanciado c3.marca="Panasonic"; c3.precio=29.99; c3.modelo="RX123"; System.out.println("Accedemos al precio de la calculadora 3 : "+ c3.precio); System.out.println("La calculadora 3 suma 10+32 : "+ c3.sumar(10,32)); System.out.println("La calculadora 3 nos dice su precio : "+ c3.dimetuprecio()); } } //Fin de la clase
7. INVOCACIN DE UNA CLASE DESDE OTROS PAQUETES
Qu es una Paquete?
Es una carpeta de java, dentro de la cual podemos almacenar muchas clases, los
paquetes en Java sirven para organizar nuestras clases, cada IDE tiene una forma
distinta de crear paquetes.
Cuando una clase es creada dentro de un paquete, debe llevar en la primera lnea:
el nombre del paquete.
Clase Anexo, creada en otro paquete
Tema 02: Variables y Mtodos Estticos
1. CREACIN DE VARIABLES ESTTICAS
Variables Estticas:
Son aquellas variables que se declaran a nivel de la clase, se diferencian de las
propiedades, porque para acceder a ellas no se requiere de una instancia, se puede
acceder a estas variables directamente a travs del nombre de la clase. Las variables
estticas conservan un mismo valor para toda la clase y no cuentan con estados (datos)
diferentes en cada objeto instanciado.
Nota:
En otros lenguajes de programacin a este tipo de variables se le denomina Variables
Globales.
Ejemplo del uso de variables estticas en la clase Calculadora:
En este ejemplo se estn creando dos variables estticas:
Total: Variable utilizada para acumular el precio de cada uno de los objetos instanciados
Cuenta: Variable utilizada para contar la cantidad de objetos instanciados
Se usan las variables estticas en cada uno de los mtodos constructores, para que de esta
forma se acumule o cuente, cada vez que se produce una instancia.
2. CREACIN DE MTODOS ESTTICOS
Son aquellos mtodos que pertenecen directamente a la clase y que para acceder a ellos
no se requiere de una instancia, se puede acceder a estos mtodos directamente a travs
del nombre de la clase.
Son acciones de la clase y no de un objeto en particular.
Ejemplo del uso de mtodos estticos en la clase Calculadora:
En este ejemplo se estn creando dos mtodos estticos:
Totalizar() : Mtodo utilizado para devolver la cantidad acumulada de todos los precios
Promediar() :Mtodo utilizado para promediar todos los precios de los objetos instanciados.
USO DE CONSTANTES:
Las constantes son tambin variables estticas que al ser declaradas
reciben un valor, y luego de esto, no permiten que dicho valor sea
modificado por ninguna razn.
Ejemplo:
public static final double IGV=0.19; public static final String RazonSocial=TecniSystem SRL;
Tema 03: Modelamiento de clases
EJERCICIOS DE MODELAMIENTO DE OBJETOS A PARTIR DE LA ABSTRACCIN DE
CASOS REALES
En la programacin orientada a objetos (POO), podemos dividir el desarrollo de
aplicaciones informticas en 2 partes:
a. La Lgica de Presentacin (Lgica de Clientes)
b. La Lgica de Negocios (Lgica de Procesos)
La Lgica de Presentacin:
Est constituida por la interfaz de usuario, lugar en la que se realiza: el ingreso y
salida de datos.
La Lgica de Negocios:
Est constituida por la programacin de los procesos o tareas, para este fin se
utiliza la POO. (Clases, Mtodos, Propiedades, etc)
CASO 1
Crear una aplicacin visual en Java basada en POO que cambie una cantidad de
dlares a soles y muestre el tipo de cambio resultante.
DESARROLLO DEL CASO 1
Crear un proyecto con el nombre Caso1. Automticamente se crear el paquete
caso1
a. Crear la Lgica de Presentacin.
Crear un formulario o Frame con el nombre FrmMoneda que contenga los
siguientes controles:
b. Crear la Lgica de Negocios
Ahora debemos crear la clase Moneda en el mismo paquete
c.
Botn Procesar
Codificacin de los botones del formulario
d. Ejecutar el Formulario [Presionar la tecla Shift F6]
CASO 2
Crear una aplicacin visual en Java basada en POO que calcule el descuento por faltas
de un trabajador, si se sabe que por cada inasistencia la empresa descuenta el doble
del salario de un da, finalmente muestre el descuento y el neto a percibir.
DESARROLLO CASO 2
Crear un proyecto con el nombre Caso2. Automticamente se crear el paquete caso2.
a. Crear la Lgica de Presentacin
Crear un formulario que contenga los
siguientes controles:
b. Crear la Lgica de Negocios
Ahora crearemos la clase Trabajador en el paquete actual
c. Codificacin de los botones del formulario
d. Ejecutar el formulario [presionar la tecla Shif F6]
Tema 04: Mtodos de la clase Math y la clase String 1. LA CLASE MATH
La clase java.lang.Math deriva de la clase Object. La clase Math proporciona
mtodos estticos para realizar las operaciones matemticas ms habituales.
Adicionalmente, proporciona adems las variables estticas final (Constantes) E y
PI, cuyo significado no requiere muchas explicaciones.
Para utilizar la clase Math, escriba el nombre de la clase y luego digite y escriba el
nombre del mtodo esttico que desea utilizar, algunos de estos mtodos reciben
argumentos.
VARIABLES ESTTICAS FINAL (Constantes)
Contamos con las siguientes:
Math.PI Devuelve el valor
de PI
Math.E Devuelve el valor
de E
METODOS ESTTICOS
a. Mtodo abs
Devuelve el valor absoluto
Ejemplo:
b. Mtodo cos
Devuelve el coseno de una cantidad de radianes
c. Mtodo sin
Devuelve el seno de una cantidad de radianes
d. Mtodo tan
Devuelve la tangente de una cantidad de radianes
Ejemplo:
e. Mtodo atan2
Convierte coordenadas rectangulares a polares.
Ejemplo:
Para pasar de coordenadas rectangulares a polares es til la funcin atan2, que
admite dos argumentos, la ordenada y la abscisa del punto. Devuelve el ngulo en
radianes.
f. Mtodo exp
Devuelve el nmero e elevado a una potencia.
Para expresar un nmero real con un nmero especificado de cifras decimales
empleamos la funcin round. Por ejemplo, para expresar los nmeros x e y con
dos cifras decimales escribimos
Se obtiene 72.35 y 0.35 como cabra esperar. Fijarse que round devuelve un
nmero entero int que es necesario promocionar a double para efectuar la divisin
entre 100.
Se obtiene 72.35 y 0.34. La aproximacin del primero es correcta ya que la
tercera cifra decimal es 4 inferior a 5. La aproximacin del segundo es incorrecta
ya que la tercera cifra decimal es 9 mayor que 5. En la mayor parte de los
clculos se cometen errores, por lo que la diferencia entre floor y round no es
significativa.
m. Mtodo random
La clase Math define una funcin denominada random que devuelve un nmero
pseudoaleatorio comprendido en el intervalo [0.0, 1.0).
2. LA CLASE String
Una de las clases importantes de Java contenidas en el paquete java.lang es sin
duda la clase String, esta clase es la plantilla base desde la cual se instancian
todas las cadenas de texto. Aunque, muchas veces pase inapercibido por el
usuario, al momento de declarar una cadena de texto, lo que est haciendo es crear
un objeto instanciado.
Ejemplo:
String apellido=Torres;//apellido es un objeto instanciado de la clase String
Para comprobarlo, escriba apellido y luego escriba el (punto). Observar las
propiedades y mtodos heredados por este objeto de la clase String.
Por lo expuesto anteriormente, dara lo mismo haber instanciado apellido de esta
otra manera:
String apellido=new String("Torres")
CONCLUSION: En Java todas las cadenas de texto son objetos instanciados de la clase String.
MTODOS DE INSTANCIA DE LA CLASE String
Cada una de las cadenas de texto hereda automticamente los siguientes mtodos:
Mtodo toUpperCase
Devuelve el contenido de la cadena en maysculas.
Ejemplo:
if (txtlogin.getText()).toUpperCase=PEPE) { JOptionPane.showDialog(null,Usuario Admitido,Aviso,1); }
Explicacin: Si el contenido de la caja de texto txtlogin es igual a PEPE, saldr
un caja de mensaje con el contenido Usuario Admitido, no interesar si el
usuario haya ingresado el texto en minscula o mayscula porque el mtodo
toUpperCase siempre lo convertir a maysculas.
Mtodo toLowerCase
Devuelve el contenido de la cadena en minsculas.
Ejemplo:
if (txtlogin.getText()).toLowerCase=PEPE) { JOptionPane.showDialog(null,Usuario Admitido,Aviso,1); }
Mtodo charAt
Devuelve un carcter especfico de la cadena. (el primer carcter tiene la posicin
0). El dato devuelto es tipo char.
Ejemplo:
Explicacin: Se hace un recorrido por todos los caracteres de la cadena usando
la estructura for, empezando desde la primera posicin (cero) hasta la ultima
posicin 5, en cada vuelta se toma el carcter que corresponde a la variable i y
se convierte dicho carcter a su equivalente ASCII, luego se pregunta si dicho
carcter es igual al carcter e (Cdigo ASCII 101), si es as se mostrar un
mensaje en la consola indicando la posicin que ocupa dicho carcter en la
cadena.
Mtodo compareTo
Compara dos cadenas de texto, si la primera cadena es mayor que la segunda el
valor devuelto es un nmero mayor a 0, si el caso es viceversa devuelve un nmero
menor a 0, y si ambas cadenas son iguales devuelve el nmero 0.
Ejemplo:
String ape1=Torres;
String ape2=Castillo;
int r;
if(ape1.compareTo(ape2)>0)
{ System.out.println(El ape1 esta despus de ape2); }
else
{ System.out.println(El ape1 esta antes de ape2); }
Explicacin: La comparacin de ambas cadenas se hace a travs del valor del
cdigo ASCII de cada uno de los caracteres, comenzando desde el primero al
ltimo. Por ejemplo, la comparacin entre Torres y Castillo, dicha comparacin se
realizar en primer orden evaluando los cdigos ASCII de T (84) y C (67), en este
caso el primer valor es mayor al segundo, por lo que el valor devuelto de
comapreTo es un nmero mayor a 0.
Mtodo length()
Devuelve la longitud de la cadena.
Ejemplo:
if ((txtdni.getText()).length()!=8)
{ System.out.println(ERROR: No es un nmero de DNI vlido);
}
Mtodo endsWith
Devuelve verdadero si termina con
Ejemplo:
if (txtDNI.getText().endsWith(3))==true
{ System.out.println(Este DNI termina en 3);
}
Mtodo indexOf
Devuelve la posicin de la primera ocurrencia del carcter dado.
Ejemplo 1:
int c;
String ape=Torres Huaman;
c=ape.indexOf( );
System.out.println(El espacio en blanco esta situado en la posicin + c);
Ejemplo 2:
int p=0;
while(true)
{ p=str.indexOf(' ', p+1);
if(p==-1)
{ break; }
else
{ System.out.println("La posicin del espacio en blanco es: "+p); }
}
Explicacin: En este ejemplo, dado a que indexOf se encuentra dentro de una
estructura repetitiva, seguir buscando en qu posiciones se encuentra el espacio
en blanco ( )
Mtodo indexOf
Este mtodo devuelve verdadero cuando ambas cadenas son idnticamente
iguales.
Ejemplo:
If ((txtpassword.getText()).equals(TELESUP))==true)
{ System.out.println(Acceso permitido); }
Mtodo startsWith
Este mtodo devuelve verdadero cuando la cadena de texto empieza con la cadena
indicada.
Ejemplo:
If ((txtDireccion.getText()).startsWith(AV)==true)
{ System.out.println(Este domicilio esta ubicado en una Avenida); }
Mtodo substring
Extrae un segmento de la cadena
Ejemplo:
String cad= "Universidad";
cad = cad.substring(3, 6);
System.out.println(cad);
Explicacin: El mtodo substring en el ejemplo anterior extrae a partir de la posicin
3 hasta antes de la posicin 6
Mtodo trim
Elimina los espacios en blanco a la izquierda o derecha de la cadena.
Ejemplo:
if((txtdato.getText()).trim=)
{ System.out.println(El dato no puede ser vaco);
}
CONVERTIR OTROS TIPOS DE DATOS AL TIPO DE OBJETO STRING:
Mtodo valueOf
Es un mtodo esttico de la clase String que se encarga de convertir los diferentes tipos
de datos al tipo String.
Ejemplo:
int x=123;
String dato1=String.valueOf(x);
double y=23.345;
String dato2=String.valueOf( y );
EJEMPLOS PRCTICOS
A. Utilizando la Clase Math
// ESTE ES UN EJEMPLO DONDE SE PODRA OBSERVAR // EJEMPLOS DE LOS DISTINTOS METODOS ESTTICOS DE LA CLASE MATH public class mate { public static void main(String args[]) { int i = 7; int j = -9; double x = 72.3543;
double y = 0.3498; System.out.println("i es " + i); System.out.println("j es " + j); System.out.println("x es " + x); System.out.println("y es " + y); // Valor absoluto de un nmero System.out.println("|" + i + "| es " + Math.abs(i)); System.out.println("|" + j + "| es " + Math.abs(j)); System.out.println("|" + x + "| es " + Math.abs(x)); System.out.println("|" + y + "| es " + Math.abs( y )); // aproximacin decimal //empleando (round) System.out.println(x + " es " + Math.round(x)); System.out.println(y + " es " + Math.round( y )); System.out.println(x + " es aprox." + (double)Math.round(x*100)/100); System.out.println(y + " es aprox." + (double)Math.round(y*100)/100); System.out.println((double)Math.round(3.14156*100)/100); // Redondea a 1 decimal // devuelve un int debeos convertrilo a double //empleando floor System.out.println("The floor of " + x + " es " + (100*Math.floor(x))/100); System.out.println("The floor of " + y + " es " + (100*Math.floor( y))/100); System.out.println(Math.floor(3.14159*100)/100); // para hallar el menor de dos nmero System.out.println("min(" + i + "," + j + ") es " + Math.min(i,j)); System.out.println("min(" + x + "," + y + ") es " + Math.min(x,y)); // Para hallar el mayor de dos nmeros System.out.println("max(" + i + "," + j + ") es " + Math.max(i,j)); System.out.println("max(" + x + "," + y + ") es " + Math.max(x,y)); // las constantes PI y E System.out.println("Pi es " + Math.PI); System.out.println("e es " + Math.E); //funciones trigonomtricas //double angulo = 45.0 * Math.PI/180.0;
double angulo=Math.toRadians(90); // Convertimos 90 Grados a Radianes System.out.println("cos(" + angulo + ") es " + Math.cos(angulo)); System.out.println("sin(" + angulo + ") es " + Math.sin(angulo)); System.out.println("tan(" + angulo + ") es " + Math.tan(angulo)); // Funciones trigonomrtricas inversas double valor = 0.707; System.out.println("acos(" + valor + ") es " + Math.acos(valor)); // Halla el Arcocoseno System.out.println("asin(" + valor + ") es " + Math.asin(valor)); // Halla el Arcoseno System.out.println("atan(" + valor + ") es " + Math.atan(valor)); // Halla el Arcotangente y=6.2; //ordenada x=-5.4; //abscisa System.out.println("atan2(" + y+" , "+x + ") es " + Math.atan2(y, x)); //Funciones exponencial y logartmica System.out.println("exp(1.0) es " + Math.exp(1.0)); System.out.println("exp(10.0) es " + Math.exp(10.0));
System.out.println("exp(0.0) es " + Math.exp(0.0)); System.out.println("log(1.0) es " + Math.log(1.0)); System.out.println("log(10.0) es " + Math.log(10.0)); System.out.println("log(Math.E) es " + (double)Math.log(Math.E*100)/100); // pow(x,y) devuelve x elevado a y. System.out.println("pow(2.0, 2.0) es " + Math.pow(2.0,2.0)); System.out.println("pow(10.0, 3.5) es " + Math.pow(10.0,3.5)); System.out.println("pow(8, -1) es " + Math.pow(8,-1)); // sqrt(x) devuelve la raz cuadrada de x. System.out.println("La raz cuadrada de " + y + " es " + Math.sqrt( y )); // Devuelve un nmero pseudo-aleatorio comprendido entre 0.0 y 1.0 System.out.println("Nmero aleatorio de 0 a 1 : " + Math.random()); System.out.println("Otro nmero aleatorio de 0 a 100 : " + Math.random()*100); System.out.println("Nmero aleatorio de 10 a 20 : " + ((Math.random()*(20-10)) + (10)) ) ; } }
b. Utilizando la Clase String
// ESTE EJEMPLO MUESTRA LOS MTODOS ESTTICOS DE //LA // CLASE STRING public class String_cadena { public static void main(String[] args) { //longitud del string String str="El primer programa"; System.out.println("longitud "+str.length()); //comienza y termina por... str="El primer programa"; System.out.println("comienza por El "+str.startsWith("El")); System.out.println("termina por programa "+str.endsWith("programa")); //posicin de un carcter
int pos=str.indexOf('p'); System.out.println("posicin de la letra p "+pos); //segunda ocuurencia de p int p=0; while(true) { p=str.indexOf(' ', p+1); if(p==-1) { break; } else { System.out.println("La posicion del espacio en blanco es: "+p); } } //comparacin - Si devuelve < que 0 significa que es menor // Si devuelve > que 0 signfica que es mayor // Si devuelve = a 0 signfica que ambos son iguales str="Toms"; System.out.println("Orden alfabtico "+str.compareTo("Alberto")); str="Alberto"; System.out.println("Orden alfabtico "+str.compareTo("Toms")); System.out.println("Orden alfabtico "+str.compareTo("Alberto")); //substring str="El lenguaje Java"; System.out.println("Substring a partir de pos. 12 "+str.substring(12)); System.out.println("Substring desde pos. 3-11:" + str.substring(3, 11)); //eliminar los espacios en blanco str=" 12 "; System.out.println("string original "+str); System.out.println("string sin espacios en blanco "+str.trim()); //convertir un nmero en string String ape1="Torres"; String ape2="Castillo"; int r; if(ape1.compareTo(ape2)>0)
{ System.out.println("El ape1 est despus de ape2"); } else { System.out.println("El ape1 est antes de ape2"); } } }
Ejemplo: Realizacin comparacin de cadenas
public class Comparacion { public static void main(String[] args) { String str1="El lenguaje Java"; String str2=str1;
System.out.println("String1 --> "+str1); System.out.println("String2 --> "+str2); System.out.println("Es el mismo objeto? --> "+(str2==str1)); str2=new String(str1); System.out.println("String1 --> "+str1); System.out.println("String2 --> "+str2); System.out.println("Es el mismo objeto? --> "+(str2==str1)); System.out.println("El mismo valor? --> "+(str2.equals(str1))); } }