Introducción a la Programación en Java Unidad 4. Clases en Java

Anuncio
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
Descargar