Introducción a la Programación en Java Unidad 4. Clases en Java 4.1 Clase. Las clases son la base de la Programación Orientada a Objetos. Una clase es una plantilla que define la forma de un objeto; en ella se agrupan datos y métodos que operarán sobre esos datos. En java, una clase se define con la palabra reservada class. En la figura se muestra la forma general para la definición de una clase: Modificador de Acceso Class Nombre de Clase Declaración de variables miembros de la clase [modificador] tipo campo1; [modificador] tipo campo2; … [modificador] tipo campoN; Constructor(es) de la clase Métodos de la clase tipo método1( parámetros); tipo método2( parámetros); … tipo métodoN( parámetros); ; Por convención, se declaran primero las variables (atributos) miembro de la clase y luego las declaraciones e implementaciones de métodos. Al diseñar una clase es conveniente tomar en cuenta lo siguiente: • • • • En Java no existen variables ni métodos globales. Todas las variables y métodos deben pertenecer a una clase. Cuando una clase extiende a otra hereda todas sus atributos y métodos. En Java no existe la herencia múltiple. Object es la base de toda la jerarquía de clases de Java. Si al definir una clase no se especifica la clase que extiende, por default deriva de Object. 4.1.1 Modificadores de Acceso a la clase Los modificadores de acceso a clase son opcionales, se anteponen a la palabra reservada class, estos son public, abstract y final. public: la clase puede ser utilizada por objetos que estén fuera del paquete actual. Por omisión, una clase sólo puede ser utilizada por otras clases dentro del mismo paquete en el que están declaradas. abstract: Se usa para indicar que una clase es abstracta, esto significa que la clase puede contener métodos sin implementación (abstractos). Una clase abstracta está diseñada para ser una superclase y no pueden crear objetos de ella. final: cuando una clase tiene el modificador final es una clase que no puede tener subclases. Ing. Alma Leticia Palacios Guerrero Pág. 24 Introducción a la Programación en Java 4.1.2 Modificadores de Acceso campos de clase El uso de clases permite proteger sus variables y métodos del acceso de otros objetos. Java proporciona cuatro niveles de acceso para las variables y métodos miembros: private, protected, public y acceso de paquete. Niveles de acceso pemitidos por cada especificador: private protected public package clase subclase paquete exterior private: Es el nivel de acceso más restringido. Los miembros privados están disponibles sólo para la clase en las que está definidos. protected: Permite que la misma clase, subclases y todas las clases dentro del mismo paquete tengan acceso a los miembros protected. public: Todas las clases tienen acceso a los miembros públicos de la clase. Los miembros públicos se emplean solamente cuando el acceso a ellos produce resultados indeseables. package: Este nivel es el que se establece si no se indica un nivel de acceso a los miembros. El acceso de paquete permite que las clases dentro del mismo paquete que la clase tengan acceso a los miembros. static: El campo static será el mismo para todas las instancias de la clase. final: El campo debe ser inicializado y no se puede modificar. 4.1.3 Modificadores de Acceso a Métodos de la Clase abstract: Es un método que no tiene cuerpo y pertenece a una clase abstracta. final: El método no se puede sobreescribir. native: Su cuerpo está implementando en otro lenguaje de programación public: El método está disponible para todas las clases. protected: Esta disponible solo para la clase donde fue definido y sus subclases. private: El método está disponible sólo para la clase a la que pertenece. static: Se puede accesar sin necesidad de hacer una instancia de la clase a la cual pertenece. synchronized: Es un método monitoreado para evitar inteferencias entre hilos que manipulan un mismo objeto. Este método debe detenerse antes de ser ejecutado por un hilo. Ing. Alma Leticia Palacios Guerrero Pág. 25 Introducción a la Programación en Java 4.2 Interfaces Una interface declara un conjunto de métodos y constantes sin especificar la implementación de ningún método; es decir los métodos no tienen código. Estos pueden ser implemetados a través de una clase implementa una interface. Cuando una clase implementa una interface debe proporcionar la implementación para todos los métodos de la interface. Para indicar que una clase implementa una o más interfaces, se emplea la palabra implements seguida por una lista de las interfaces implementados por la clase separadas por comas. 4.3 Packages Un paquete es una agrupación de clases. El programador puede crear sus propios paquetes agregando una línea con la palabra package y el nombre del paquete al inicio de un programa java. Un ejemplo seria la siguiente línea: package mis.paquetes; Los nombres de los paquetes suelen escribirse con minúsculas, para diferenciarlos de las clases; el nombre de un paquete puede estar formado por varias palabras separadas por puntos, por ejemplo java.awt.event. Todas las clases que forman parte de un paquete deben estar en el mismo directorio. Para utilizar un paquete dentro de un programa se debe de importar. Al importarlo no se cargan todas las clases que contiene el paquete, sólo se cargan las clases public que se vayan a utilizar. Al importar un paquete no se importan los subpaquetes. Para importarlos se debe hacer explícitamente ya que en realidad son paquetes diferentes. Existen dos formas de utilizar import: para una clase y para todo un package: import mis.paquetes.Teclado; // Importa solo la clase Teclado import mis.paquetes.*; // Importa todas las clases contenidas en mis.paquetes 4.4 Objeto: Es un elemento declarado de un tipo de clase. Se conoce también como una instancia de clase. La sintaxis para definir un objeto es nombreDeClase nombreObjeto; nombreDeClase otroObjeto; Ejemplos: Transporte auto; 4.4.1 Instancias de Clase Una clase es una abstracción lógica, mientras no se cree un objeto de esa clase no existe una representación de esa clase en la memoria, cuando esto se declara y define un objeto de una clase, se dice que se realizó una instancia. En Java crear un objeto implica tres acciones: declaración, asignación de memoria e inicialización. 1) Declaración: La declaración de un objeto es simplemente una variable que puede hacer referencia a un objeto. La declaración de un objeto tiene la forma: NombreClase nombreObjeto; donde NombreClase es la clase a la que el objeto va a pertenecer y nombreObjeto es el nombre que va a tener el objeto. Ejemplo: Transporte auto; Ing. Alma Leticia Palacios Guerrero Pág. 26 Introducción a la Programación en Java 2) Asignación de Memoria (Instanciación): El operador new asigna memoria dinámica, esto es asignada en tiempo de ejecución, para un nuevo objeto y regresa una referencia al objeto. 3) Inicialización. La inicialización de un objeto se lleva a cabo a través de un método que lleva el mismo nombre que la clase el constructor. El constructor es invocado automáticamente cada vez que se crea un objeto de una clase. Transporte auto=new Transporte(); 4.5 Constructores La función primordial del constructor es reservar memoria e inicializar las variables miembro de la clase. Los constructores no regresan valor, su parámetro implícito es el objeto que se está creando. Una clase puede tener varios constructores, cada uno con diferentes tipos y número de argumentos. Cuando una clase no tiene implementado un constructor entonces utiliza el constructor de la clase Object. El constructor de una subclase puede llamar al constructor de su superclase por medio de la palabra reservada super, seguida de los argumentos entre paréntesis. 4.5.1 Ejemplo de Clase sin Constructor class Alumno{ int matricula; double promedio; } void muestraDatos(){ System.out.println("Matricula: "+ matricula); System.out.println("Promedio: "+ promedio); } public class PruebaSinConstructores{ public static void main(String args[]){ Alumno juan=new Alumno(); juan.muestraDatos(); } } 4.6 Sobrecarga de Constructores Una clase puede tener más de un método constructor, los constructores siguen llevando el mismo nombre de la clase y ninguno regresa valores. Lo que marca la diferencia entre los constructores son los parámetros que recibe al momento de crear el objeto; esto es, el compilador utiliza el constructor apropiado de acuerdo a los parámetros que se escriban dentro de los paréntesis de new. Ing. Alma Leticia Palacios Guerrero Pág. 27 Introducción a la Programación en Java 4.6.1 Ejemplo de Clase con Sobrecarga de Constructores class Alumno{ int matricula; double promedio; Alumno(){ matricula=0; promedio=0;} Alumno(int m, double p){ matricula=m; promedio=p; } } void muestraDatos(){ System.out.println("Matricula: "+ matricula); System.out.println("Promedio: "+ promedio); } public class PruebaConstructores{ public static void main(String args[]){ Alumno juan=new Alumno(); Alumno pedro=new Alumno(30224,100.0); juan.muestraDatos(); pedro.muestraDatos(); } } 4.7 Destrucción de objetos (liberación de memoria) En Java no hay destructores como en C++. El sistema se ocupa automáticamente de liberar la memoria de los objetos que ya han perdido la referencia, por ejemplo cuando se termina el bloque en el que habían sido creados; porque a la referencia se le ha asignado el valor null o porque a la referencia se le ha asignado la dirección de otro objeto. A esta característica de Java se le llama garbage collection. En Java no se sabe exactamente cuándo se va a activar el garbage collector, si no hay falta memoria es posible que no se llegue a activar. Se puede llamar al garbage collector con el método System.gc(), aunque el sistema considera esto sólo como una “sugerencia” a la JVM. Tarea: Investigar los siguientes métodos de las clases String y String Buffer. charAt, concat, compareTo, LowerCase, UpperCase, replace, trim, substring. append, insert, delete, setlength,reverse,deleteChar Ing. Alma Leticia Palacios Guerrero Pág. 28 Introducción a la Programación en Java 4.8 Clases String y Stringbuffer Java no tiene el tipo de datos cadena, en cambio, existen las clases String y StringBuffer, las cuales están orientadas al manejo de cadenas de caracteres. La clase String maneja cadenas de caracteres constantes, es decir, que no pueden cambiar. La clase StringBuffer permite que el programador cambie la cadena insertando, borrando, etc. La primera es más eficiente, mientras que la segunda permite más posibilidades. Ambas clases pertenecen al package java.lang, por lo que no hay que importarlas. 4.8.1 Constructores de la claseString. Constructor String str1 (); String(char[]); String(String); Descripción crea un objeto String vacío Crea un objeto String y lo inicializa con la cadena. Crea un objeto String a partir de otro String. 4.8.1.1 Métodos de la Clase String paquete java.lang La clase String incluye métodos para examinar caracteres de la secuencia en forma individual, para comparación y búsqueda de cadenas, para extraer partes de cadenas y para crear una copia de las cadenas con todos sus caracteres en mayúsculas o minúsculas. Sintaxis del método charAt(int) Ejemplo: car=cad.charAt(5); getChars(inicio,fin,cadena,pos) cad.getChars(0,4,cadena,0) cadena se define como char [ ] IndexOf(“cadena”); pos=cad.indexOf(“Hola”) lastIndexOf(“cadena”); pos=cad.lastIindexOf(“Hola”) trim() cad2=cad.trim() concat(String) cad3=cad.concat(cad2) substring(int, int) length() cad2=cad1.substring(inicio,fin); Longitud=cad.length() toLowerCase() toUpperCase() compareTo(String) cad1=cad2.toLowerCase() cad1=cad2.toUpperCase() res=cad.compareTo(cad2) replace(char, char) startsWith(String) cad.replace(‘a’,’u’); xboolean=cad1.startsWith(cad2) valueOf() cad=objeto.valueOf(parametro); Descripción Devuelve el carácter de la cadena en la posición especificada copia desde las posiciones inicio a final del String buffer y lo escribe en la cadena a partir de pos. Regresa la posición de la primera ocurrencia de la cadena buscada en el String. Regresa –1 si no fue encontrada. Devuelve la última vez que un String aparece en otro . Elimina los espacios en blanco al inicio y final de la cadena Regresa String que contiene cad y cad2 concatenadas/ Devuelve un String extraído de otro Devuelve el número de caracteres de la cadena Regresa la cadena en minúsculas. Regresa la cadena en mayúsculas. Compara lexicográficamente las cadenas. regresa 0 si son iguales regresa >0 si cadena 2 es menor regresa <0 si cadena 2 es mayor Sustituye un carácter por otro . Indica si un String comienza con otro String o no. Regresa un booleano Devuelve la representación como String de sus argumento. Recibe Object, arrays de caracteres y los tipos primitivos Los métodos de String se pueden utilizar directamente sobre literales (cadenas entre comillas), como por ejemplo: "Hola".length(). Ing. Alma Leticia Palacios Guerrero Pág. 29 Introducción a la Programación en Java 4.8.1.2 Ejemplo de la Clase String class ClaseString { void metodoConcat(String cad1, String cad2) { String cadena3 = new String(); cadena3=cadena3.concat(cad1); cadena3=cadena3.concat(" y "); cadena3=cadena3.concat(cad2); System.out.println("La cadena resultante es "+ cadena3); } void metodoCharAt(String cad1, int posicion){ char caracter=cad1.charAt(posicion); System.out.println("En la posicion "+posicion+ " esta la letra "+ caracter); } void metodoIndexOf(String cad1, String cad2){ int pos= cad1.indexOf(cad2); if (pos == -1) System.out.println("No se encontro "+ cad2 + " en " +cad1); else System.out.println(cad2 + " aparece en la posicion " + pos); } void metodoGetChars(String cad1){ char destino[] = new char[cad1.length() ]; System.out.println("Copia la mitad de la primera cadena es la resultante "); cad1.getChars(0,cad1.length()/2,destino,0); System.out.println("La cadena resultante es " +destino); } void metodoCompareTo(String cadena, String cadena2){ int res=cadena.compareTo(cadena2); if (res==0) System.out.println("Son iguales"); else if (res>0) System.out.println("La cadena mayor es "+ cadena); else System.out.println("La cadena mayor es "+ cadena2); } void metodotoLowerCase(String cad1){ String cad2=new String(); cad2=cad1.toLowerCase(); System.out.println("La cadena en minusculas es " + cad2); } void metodotoUpperCase(String cad1){ String cad2=new String(); cad2=cad1.toUpperCase(); System.out.println("La cadena en mayusculas es: " + cad2); } void metodoReplace(String cad1){ cad1=cad1.replace(' a' ,' o' ); System.out.println("Sustituyendo la letra a por o la cadena es: " + cad1); } void metodoStartsWith(String cad1, String cad2) { boolean x=false; x=cad1.startsWith(cad2); System.out.println(x); } Ing. Alma Leticia Palacios Guerrero Pág. 30 Introducción a la Programación en Java void metodoTrim(){ String cad1=new String(" Hola como estas "); String cad2=new String(); cad2=cad1.trim(); System.out.println(cad1 +"Aqui sigue"); System.out.println(cad2 + "Aqui sigue"); } void metodolastIndexOf(String cad1, String cad2){ int pos; pos=cad1.lastIndexOf(cad2); if (pos == -1) System.out.println("No se encontro "+ cad2 + "en " +cad1); else System.out.println(cad2 + " aparece en la posicion " + pos); } } void metodoSubstring(String cad1){ String cad2=new String(); cad2=cad1.substring(2,5); System.out.println(cad2); } public class PruebaClaseString{ public static void main(String Args []){ ClaseString menu=new ClaseString(); switch(new Integer(Args[0]).intValue() ){ case 1: menu.metodoConcat(Args[1],Args[2]); break; case 2: menu.metodoCharAt(Args[1],5); break; case 3: menu.metodoIndexOf(Args[1],Args[2]); break; case 4: System.out.println("La cadena tiene " + Args[0].length()); break; case 5: menu.metodoCompareTo(Args[1],Args[2]);break; case 6: menu.metodotoLowerCase(Args[1]); break; case 7: menu.metodotoUpperCase(Args[1]); break; case 8: menu.metodolastIndexOf(Args[1],Args[2]); break; case 9: menu.metodoGetChars(Args[1]); break; case 10: menu.metodoTrim(); break; case 11: menu.metodoSubstring(Args[1]);break; case 12: menu.metodoReplace(Args[1]); break; case 13: menu.metodoStartsWith(Args[1],Args[2]); break; default: System.out.println("Opcion Invalida"); } } //main } //clase Ing. Alma Leticia Palacios Guerrero Pág. 31 Introducción a la Programación en Java 4.8.2 Métodos de la clase StringBuffer La clase String crea un objeto que no puede ser modificado, sus métodos permiten obtener uno o más caracteres, compararlos, etc, pero no se puede cambiar el tamaño del objeto. Por esta razón, cuando se desea modificar el contenido de un objeto se efectúa a través de un objeto de la clase StringBuffer, ésta clase implementa una secuencia de caracteres que sí puede variar. Básicamente el objeto StringBuffer es como el objeto String pero puede modificarse su contenido y su longitud en cualquier momento. 4.8.2.1 Constructores Constructor StringBuffer() StringBuffer(Int) StringBuffer(String) Descripción Construye una cadena vacía de 16 caracteres. Construye una cadena vacía con la longitud especificada Inicializa el objeto con la cadena especificada. 4.8.2.2 Métodos Método append(String): append(float): Ejemplo buffer.append(cadena); cadena es un objeto String. buffer.append(1.5); append(char[],posicion,n) buffer.append(vector, 0,3) insert(posicion, boolean) insert(posicion, String) insert(posicion, vector) buffer.insert(10, true); buffer.insert(8,“Adios”) buffer.insert(5,cadena) insert(destino,arreglo,posicion,n) buffer.insert(0,cadena,0,5) charAt(int) car=cad.charAt(5); delete(inicio,fin) length() buffer.delete(0,4); Longitud=cad.length() EnsureCapacity(size) buffer.EnsureCapacity(15) replace(inicio,fin,string); buffer.replace(0,5,cadena); setLenght(int) buffer.setLength(10); substring (inicio,fin) aux=buffer.substring(0,5); setCharAt(posicion,caracter) buffer.setCharAt(5,’x’); reverse() deleteChar(pos) buffer.reverse(); buffer.deleteChar(3); Ing. Alma Leticia Palacios Guerrero Función agrega el String al final del StringBuffer agrega el número (float, int, etc) al final del StringBuffer Agrega n caracteres de la cadena contados a partir de posición. En el ejemplo insertaría los caractes 0 al 2. Inserta false/true en la posicion. Inserta el String en la posicion indicada Inserta el vector char (cadena) en la posicion indicada. Inserta en destino n caracteres del arreglo char desde posicion. El ejemplo inserta los primeros 5 caracteres de cadena al inicio de buffer. Devuelve el carácter en la posición especificada. borra el stringbuffer desde inicio a fin. Devuelve el número de caracteres de la cadena Asegura que la longitud de la cadena sea la especificada en size. Si no es suficiente, incrementa la capacidad. Reemplaza en el stringbuffer desde inicio a fin con el String permite cambiar la longitud del Stringbuffer, rellena con espacios regresa una cadena con una copia de Stringbuffer desde inicio hasta fin. cambia el caracter especificado (5) por el carácter x. Invierte el orden de la cadena. Borra el caracter que se especifique. Pág. 32 Introducción a la Programación en Java 4.8.2.1 Ejemplo: Uso de la clase String Buffer import java.io.*; class LeeTeclado{ InputStreamReader teclado; BufferedReader lector; LeeTeclado(){ teclado = new InputStreamReader(System.in); lector = new BufferedReader(teclado); } int leeEntero() { String auxiliar=new String(); int numero=0; try{ auxiliar = lector.readLine(); Integer objeto=new Integer(auxiliar); numero=objeto.intValue(); } catch (IOException excep) { System.out.println("Error"); } return(numero); } float leeFloat() { String auxiliar=new String(); float numero=0; try{ auxiliar = lector.readLine(); Float objeto=new Float(auxiliar); numero=objeto.floatValue(); } catch (IOException excep) { System.out.println("Error"); } return(numero); } } } String leeString() { String auxiliar=new String(); try{ auxiliar = lector.readLine(); } catch (IOException excep) { System.out.println("Error de IO"); } return(auxiliar); Ing. Alma Leticia Palacios Guerrero Pág. 33 Introducción a la Programación en Java … continuación class ClaseStringBuffer { StringBuffer buffer1; ClaseStringBuffer(String c1) {buffer1=new StringBuffer(c1);} LeeTeclado teclado=new LeeTeclado(); void metodoAppendString(){ System.out.println("Cadena Original:" + buffer1); System.out.println("Que palabra desea concatenar"); String palabra=new String (teclado.leeString()); buffer1.append(palabra); System.out.println("Uniendo ambas cadenas =" + buffer1); } void metodoAppendNumero(){ System.out.println("Escribe un numero flotante"); float num=teclado.leeFloat(); System.out.println("Cadena Original:" + buffer1); buffer1.append(num); System.out.println(buffer1); } void metodoInsertarString(){ System.out.println("Cadena Original:" + buffer1); System.out.println("Que palabra desea insertar"); String palabra=new String (teclado.leeString()); System.out.println("En que posicion ?"); int pos=teclado.leeEntero(); buffer1.insert(pos,palabra); System.out.println(buffer1); } void metodoInsertarBoolean(){ System.out.println("Cadena Original:" + buffer1); System.out.println("Escribe un valor booleano: "); boolean valor=new Boolean (teclado.leeString()).booleanValue(); System.out.println("En que posicion ? "); int pos=teclado.leeEntero(); buffer1.insert(pos,valor); System.out.println(buffer1); } } void metodoInsertarcadena(){ System.out.println("Cadena Original:" + buffer1); System.out.println("Que palabra desea insertar"); String palabra=new String (teclado.leeString()); System.out.println("En que posicion ?"); int pos=teclado.leeEntero(); char arreglo[]=palabra.toCharArray(); buffer1.insert(pos,arreglo); System.out.println(buffer1); Ing. Alma Leticia Palacios Guerrero Pág. 34 Introducción a la Programación en Java … continuación void metodoInsertarcadenaN(){ System.out.println("Cadena Original:" + buffer1); System.out.println("Que palabra desea insertar"); String palabra=new String (teclado.leeString() ); System.out.println("En que posicion se va a insertar?"); int pos=teclado.leeEntero(); System.out.println("Desde que posicion va a copiar"); int desde=teclado.leeEntero(); System.out.println("Cuantos caracteres se van a copiar "); int n=teclado.leeEntero(); char arreglo[]=palabra.toCharArray(); buffer1.insert(pos,arreglo,desde,n); System.out.println(buffer1); } void metodoDelete(){ System.out.println("Cadena Original:" + buffer1); System.out.println("Desde que posicion va a empezar a borrar? "); int pos1=teclado.leeEntero(); System.out.println("En que posicion va terminar ?"); int pos2=teclado.leeEntero(); buffer1.delete(pos1,pos2); System.out.println(buffer1); } void metodoEnsureCap(){ int size= buffer1.length(); System.out.println("El buffer tiene una capacidad de " + size + "caracteres"); buffer1.ensureCapacity(100); } void metodoReplace(){ System.out.println("Cadena Original:" + buffer1); System.out.println("Que palabra desea usar para sustituir"); String palabra=new String (teclado.leeString()); System.out.println("Desde que posicion va a sustituir"); int inicio=teclado.leeEntero(); System.out.println("Hasta que posicion va a sustituir "); int fin=teclado.leeEntero(); buffer1.replace(inicio,fin,palabra); System.out.println(buffer1); } void metodoSetLength(){ System.out.println("Metodo setLength"); int tamano= buffer1.length(); System.out.println("Longitud original " + tamano); buffer1.setLength(tamano*2); tamano= buffer1.length(); System.out.println("Longitud actual"+ tamano); } Ing. Alma Leticia Palacios Guerrero Pág. 35 Introducción a la Programación en Java … continuación void metodoSubstring(){ System.out.println("Cadena Original:" + buffer1); System.out.println("Desde que posicion va a copiar"); int inicio=teclado.leeEntero(); System.out.println("Hasta que posicion va a copiar "); int fin=teclado.leeEntero(); String aux=buffer1.substring(inicio,fin); System.out.println(aux); } void metodoSetChar(){ System.out.println("Que posicion va a sustituir?"); int pos=teclado.leeEntero(); System.out.println("Que caracter desea usar para sustituir ? "); String palabra=new String (teclado.leeString() ); buffer1.setCharAt(pos,palabra.charAt(0) ); System.out.println(buffer1); } void metodoReverse() { System.out.println(buffer1); buffer1.reverse(); System.out.println(buffer1);} void metodoDeleteCharAt(){ System.out.println("Que posicion desea borrar?"); int pos=teclado.leeEntero(); System.out.println("Cadena Original : "+ buffer1); buffer1.deleteCharAt(pos); System.out.println(buffer1); } } Ing. Alma Leticia Palacios Guerrero Pág. 36 Introducción a la Programación en Java … continuación public class PruebaClaseStringBuffer{ public static void main( String arg[] ){ int opcion=1; String cad1=new String(); LeeTeclado teclado=new LeeTeclado(); System.out.println("Escribe una palabra: "); cad1=teclado.leeString(); ClaseStringBuffer cadena =new ClaseStringBuffer(cad1); } } do{ System.out.println("1) Metodo AppendString"); System.out.println("2) Metodo AppendNumero"); System.out.println("3) Metodo InsertarString"); System.out.println("4) Metodo InsertarBoolean"); System.out.println("5) Metodo Insertarcadena"); System.out.println("6) Metodo InsertarcadenaN"); System.out.println("7) Metodo EnsureCap"); System.out.println("8) Metodo Delete"); System.out.println("9) Metodo Replace"); System.out.println("10) Metodo SetLength"); System.out.println("11) Metodo Substring"); System.out.println("12) Metodo SetChar"); System.out.println("13) Metodo Reverse"); System.out.println("14) Metodo DeleteCharAt"); System.out.println("0) Salida"); System.out.println("Opcion: "); opcion=teclado.leeEntero(); switch(opcion){ case 1: cadena.metodoAppendString(); break; case 2: cadena.metodoAppendNumero(); break; case 3: cadena.metodoInsertarString(); break; case 4: cadena.metodoInsertarBoolean(); break; case 5: cadena.metodoInsertarcadena(); break; case 6: cadena.metodoInsertarcadenaN(); break; case 7: cadena.metodoEnsureCap(); break; case 8: cadena.metodoDelete(); break; case 9: cadena.metodoReplace(); break; case 10: cadena.metodoSetLength(); break; case 11: cadena.metodoSubstring(); break; case 12: cadena.metodoSetChar(); break; case 13: cadena.metodoReverse(); break; case 14: cadena.metodoDeleteCharAt(); break; case 0: break; default: System.out.println("Esa Opcion No existe"); break; } //switch }while(opcion!=0); Ing. Alma Leticia Palacios Guerrero Pág. 37 Introducción a la Programación en Java 4.8.3 Ejercicios. Implementar un menú con las siguientes opciones: 1) Tomar un parametro de la linea de comando y convertir su contenido a mayúsculas 2) Leer tres parámetros de la línea de comando y unirlos en una sola cadena sin espacios en orden alfabético. 3) Leer una cadena, eliminar todas las vocales y mostrar la cantidad de vocales borradas. 4) Leer una cadena y demostrar si es un palíndromo. 5) Hacer un programa que lea n numeros enteros o flotantes y con ellos realice las siguientes operaciones: a) Ordenar en forma ascendente b) Tabla de frecuencias. c) Calcular la moda Ing. Alma Leticia Palacios Guerrero Pág. 38