Está en la página 1de 12

1. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS.

1.1 Programación Orientada a Objetos.

La orientación a objetos es un paradigma de programación que facilita la creación de software de calidad por sus factores que potencian
el mantenimiento, la extensión y la reutilización del software generado bajo este paradigma.
La programación orientada a objetos trata de amoldarse al modo de pensar del hombre y no al de la máquina. Esto es posible gracias a la
forma racional con la que se manejan las abstracciones que representan las entidades del dominio del problema, y a propiedades como la
jerarquía o el encapsulamiento.

El elemento básico de este paradigma no es la función (elemento básico de la programación estructurada), sino un ente denominado
objeto. Un objeto es la representación de un concepto para un programa, y contiene toda la información necesaria para abstraer dicho
concepto: los datos que describen su estado y las operaciones que pueden modificar dicho estado, y determinan las capacidades del
objeto. Java incorpora el uso de la orientación a objetos como uno de los pilares básicos de su lenguaje.

1.2 Los objetos.

Podemos definir objeto como el "encapsulamiento de un conjunto de operaciones (métodos) que pueden ser invocados externamente, y
de un estado que recuerda el efecto de los servicios". [Piattini et al., 1996].

Un objeto además de un estado interno, presenta una interfaz para poder interactuar con el exterior. Es por esto por lo que se dice que en
la programación orientada a objetos "se unen datos y procesos", y no como en su predecesora, la programación estructurada, en la que
estaban separados en forma de variables y funciones.

Un objeto consta de:

• Tiempo de vida: La duración de un objeto en un programa siempre está limitada en el tiempo. La mayoría de los objetos sólo
existen durante una parte de la ejecución del programa. Los objetos son creados mediante un mecanismo denominado
instanciación, y cuando dejan de existir se dice que son destruidos.
• Estado: Todo objeto posee un estado, definido por sus atributos. Con él se definen las propiedades del objeto, y el estado en
que se encuentra en un momento determinado de su existencia.
• Comportamiento: Todo objeto ha de presentar una interfaz, definida por sus métodos, para que el resto de objetos que
componen los programas puedan interactuar con él.

El equivalente de un objeto en el paradigma estructurado sería una variable. Así mismo la instanciación de objetos equivaldría a la
declaración de variables, y el tiempo de vida de un objeto al ámbito de una variable.

1.3. Las clases.

Las clases son abstracciones que representan a un conjunto de objetos con un comportamiento e interfaz común.

Podemos definir una clase como "un conjunto de cosas (físicas o abstractas) que tienen el mismo comportamiento y características. Es la
implementación de un tipo de objeto (considerando los objetos como instancias de las clases)". Una clase no es más que una plantilla
para la creación de objetos. Cuando se crea un objeto (instanciación) se ha de especificar de qué clase es el objeto instanciado, para que
el compilador comprenda las características del objeto.

Las clases presentan el estado de los objetos a los que representan mediante variables denominadas atributos. Cuando se instancia un
objeto el compilador crea en la memoria dinámica un espacio para tantas variables como atributos tenga la clase a la que pertenece el
objeto.

Los métodos son las funciones mediante las que las clases representan el comportamiento de los objetos. En dichos métodos se modifican
los valores de los atributos del objeto, y representan las capacidades del objeto (en muchos textos se les denomina servicios).

Desde el punto de vista de la programación estructurada, una clase se asemejaría a un módulo, los atributos a las variables globales de
dicho módulo, y los métodos a las funciones del módulo.

1.4. Modelo de objetos.

Existen una serie de principios fundamentales para comprender cómo se modeliza la realidad al crear un programa bajo el paradigma de
la orientación a objetos. Estos principios son: la abstracción, el encapsulamiento, la modularidad, la jerarquía, el paso de mensajes y el
poliforfismo.

a.) Principio de Abstracción.


Mediante la abstracción la mente humana modeliza la realidad en forma de objetos. Para ello busca parecer entre la realidad y la posible
implementación de objetos del programa que simulen el funcionamiento de los objetos reales.

Los seres humanos no pensamos en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo humano como un
conjunto de células. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los

1
detalles de porqué ni cómo funcionan las cosas; simplemente solicitamos determinadas acciones en espera de una respuesta; cuando una
persona desea desplazarse, su cuerpo le responde comenzando a caminar.

Pero la abstracción humana se gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos en conjuntos de
subsistemas, para así entender más fácilmente la realidad. Esta es la forma de pensar que la orientación a objeto intenta cubrir.

b.) Principio de Encapsulamiento.


El encapsulamiento permite a los objetos elegir qué información es publicada y qué información es ocultada al resto de los objetos. Para
ello los objetos suelen presentar sus métodos como interfaces públicas y sus atributos como datos privados e inaccesibles desde otros
objetos.

Para permitir que otros objetos consulten o modifiquen los atributos de los objetos, las clases suelen presentar métodos de acceso. De esta
manera el acceso a los datos de los objetos es controlado por el programador, evitando efectos laterales no deseados.

Con el encapsulado de los datos se consigue que las personas que utilicen un objeto sólo tengan que comprender su interfaz, olvidándose
de cómo está implementada, y en definitiva, reduciendo la complejidad de utilización.

c.) Principio de Modularidad.


Mediante la modularidad, se propone al programador dividir su aplicación en varios módulos diferentes (ya sea en forma de clases o
bibliotecas), cada uno de ellos con un sentido propio. Este disminuye el grado de dificultad del problema al que da respuesta el programa,
pues se afronta el problema como un conjunto de problemas de menor dificultad y facilita la comprensión del programa.

d.) Principio de Jerarquía.


La mayoría de nosotros ve de manera natural nuestro mundo como objetos que se relacionan entre sí de una manera jerárquica. Por
ejemplo, un perro es un mamífero, y los mamíferos son animales, y los animales seres vivos...

Del mismo modo, las distintas clases de un programa se organizan mediante la jerarquía. La representación de dicha organización da
lugar a los denominados árboles de herencia: Clase Padre, Clase Hija1, Clase Hija2, Clase Nieta1, Clase Nieta 2, Clase Nieta 3…

Mediante la herencia una clase hija puede tomar determinadas propiedades de una clase padre. Así se simplifican los diseños y se evita
la duplicación de código al no tener que volver a codificar métodos ya implementados. Al acto de tomar propiedades de una clase padre
se denomina heredar.

e.) Principio del Paso de Mensajes.


Mediante el denominado paso de mensajes, un objeto puede solicitar de otro objeto que realice una acción determinada o que modifique
su estado. El paso de mensajes se suele implementar como llamadas a los métodos de otros objetos. Desde el punto de vista de la
programación estructurada, esto correspondería con la llamada a funciones.

f.) Principio de Polimorfismo.


Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un objeto presente diferentes comportamientos en
función del contexto en que se encuentre. Por ejemplo un método puede presentar diferentes implementaciones en función de los
argumentos que recibe, recibir diferentes números de parámetros para realizar una misma operación, y realizar diferentes acciones
dependiendo del nivel de abstracción en que sea llamado.

1.5 Relaciones entre objetos.


Durante la ejecución de un programa, los diversos objetos que lo componen han de interactuar entre sí para lograr una serie de objetivos
comunes.

2. INTRODUCCIÓN A JAVA.

2.1 Origen de Java. Java fue diseñado en 1990 por James Gosling, de Sun Microsystems, como software para dispositivos electrónicos:
como calculadoras, microondas y la televisión interactiva. Curiosamente, este lenguaje fue diseñado antes de que diese comienzo la era
World Wide Web.

Inicialmente Java se llamó Oak (roble en inglés), aunque tuvo que cambiar de denominación, debido a que dicho nombre ya estaba
registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal árbol en los alrededores del lugar de trabajo de
los promotores del lenguaje.

Tres de las principales razones que llevaron a crear Java son:

1. Creciente necesidad de interfaces mucho más cómodas e intuitivas que los sistemas de ventanas que proliferaban hasta el
momento.
2. Fiabilidad del código y facilidad de desarrollo. Gosling observó que muchas de las características que ofrecían C o C++
aumentaban de forma alarmante el gran costo de pruebas y depuración. Por ello en sus ratos libres creó un lenguaje de
programación donde intentaba solucionar los fallos que encontraba en C++.
3. Enorme diversidad de controladores electrónicos. Los dispositivos electrónicos se controlan mediante la utilización de
microprocesadores de bajo precio y reducidas prestaciones, que varían cada poco tiempo y que utilizan diversos conjuntos de
instrucciones. Java permite escribir un código común para todos los dispositivos.

2
Aunque muchas de las fuentes consultadas señalan que Java no llegó a caer en un olvido, lo cierto es que tuvo que ser Bill Joy
(cofundador de Sun y uno de los desarrolladores principales del sistema operativo Unix de Berckley) el que sacó a Java del letargo en que
estaba sumido. Joy juzgó que Internet podría llegar a ser el campo adecuado para disputar a Microsoft su primacía en el terreno del
software, y vio en Oak el instrumento idóneo para llevar a cabo estos planes.

Para poder presentarlo en sociedad se tuvo que modificar el nombre de este lenguaje de programación, cuando un grupo de empleados de
Sun visitó una cafetería local, sugirierón el nombre de Java (como se conoce también en inglés al café) y se tuvo que realizar una serie de
modificaciones de diseño para poderlo adaptar al propósito mencionado. Así Java fue presentado en sociedad en agosto de 1995.

2.2 Características principales de Java.

Multitarea o Multihilo (multithreaded). Java permite realizar muchas actividades simultáneas en un programa. Las
actividades o tareas a veces llamadas, procesos ligeros o hilos de ejecución, son básicamente pequeños procesos o piezas independientes
de un gran proceso. Al estar estas tareas construidas en el mismo lenguaje, son más fáciles de usar.

El beneficio de ser multitarea consiste en un mejor rendimiento interactivo y mejor comportamiento en tiempo real. Aunque el
comportamiento en tiempo real está limitado a las capacidades del Sistema Operativo (Unix, Windows, MacOS, etc.) de la plataforma.

Dinámico. Java se beneficia todo lo posible de la tecnología Orientada a Objetos y no intenta conectar todos los módulos que
comprenden una aplicación hasta el mismo tiempo de ejecución. Las librerías nuevas o actualizadas no paralizarán la ejecución de las
aplicaciones actuales.

Biblioteca de clases de Java (API Application Programming Interface= Interfaz de Programación de Aplicaciones).

Los programas Java consisten en piezas llamadas clases y métodos. Se puede programar cada pieza que se vaya a necesitar
para formar un programa Java, pero la mayoría de los programadores que usan Java aprovechan las ricas colecciones de clases y métodos
que existen ya en las bibliotecas de clases de Java. Por tanto, el aprendizaje del mundo de Java tiene en realidad dos aspectos.

El primero es aprender el Lenguaje Java (sintaxis) mismo para poder programar clases y métodos propios.
El segundo consiste en aprender usar las clases y métodos de las extensas bibliotecas de clases de Java API.

Las Bibliotecas de la API de Java consisten de varios paquetes, cada uno de los cuales contiene varias clases que se agrupan
de acuerdo con su funcionalidad. Estas clases consisten de campos y métodos.

Con estas bibliotecas podemos realizar las siguientes acciones:

• Interfaces de usuario, Animación y Procesamiento de Imágenes (java.awt) (AWT= Abstract Window Toolkit). Sirve
para crear interfaces atractivas útiles para applets. Por ejemplo: Java.awt.Graphics, Applet.getImgae() y menús.
• Applets. (java.applet). Sirve para crear applets e interactuar con el navegador. Por ejemplo java.appet.Applet.
• Aplicaciones de Entrada y salida (java.io). Sirve para comunicar un programa en Lenguaje Java (entrada/salida). Por
ejemplo: System.out.println();
• Comunicación (java.net). Sirve para comunicarse con otras fuentes de información en red o Internet. Por ejemplo:
java.net.serverSocket.
• Manejo de datos (java.lang). Sirve para el manejo de datos básicos, manejo de errores, seguridad al cliente al navegar en
Internet, este paquete es el corazón del Lenguaje Java, incluye una gran variedad de métodos. Por ejemplo: Métodos
matemáticos utilizando la clase Math. System.out.println(Math.max(2,8)); el resultado en pantalla es 8.

2.3 Aplicaciones en Java.

Java en mayo de 1995 hizo surgir un interés inmediato en la comunidad de los negocios en vista de la magnitud del interés comercial por
la World Wide Web. Java no era un lenguaje académico como otros lenguajes (C, Pascal, etc.), más bien, Java había diseñado con
motivos comerciales, principalmente para desarrollar sistemas relacionados con la Internet, la World Wide Web.

Aplicaciones:

 Bases de Datos. JDBC (Java DataBase Conectivity), además un doble traductor bridge (puente) llamado JDBCODBCdriver.
 Sistemas Expertos. API AIMA de Java (algoritmos de búsqueda heurística: A*, IDA*, Profundidad, Anchura, Profundidad
Iterativa, Hillclimbing y Simulated Anneling)
 Telefonía móvil: Java J2ME/MIDP 1.0 (Teléfono móvil: Siemens C55, Nokia 6610).
 Ingeniería Web. Plataforma J2EE (Java 2 Platform, Enterprise Edition), Tecnologías Java Servlet, JSP (JavaServer Page) y
JSTL (JSP Standard Tag Library).

2.4 Herramientas de desarrollo en Java.

3
2.4.1 Edición. El programa fuente en Java terminan con la extensión java. Se puede crear un programa utilizando cualquier editor de
texto plano ASCII, aunque actualmente se utilizan los Entornos Integrados de Desarrollo que proporcionan editores específicos para Java
con características de edición avanzada, como coloración de sintaxis, autocompletado de sentencias, etc. Por ejemplo Jcreator, o Kawa.

Primer programa que imprime un mensaje “Hola Mundo” en la pantalla.

// Hola.java
class Hola{
public static void main(String args[]) {
System.out.println("Hola Mundo!");
}
}

// Hola.java. Comentarios unilínea.

class Hola{

Esta línea declara la clase Hola. El nombre de la clase especificado en el archivo fuente se utiliza para crear un archivo
nombredeclase.class en el directorio que se compila la aplicación. En este caso, el compilador creará un archivo llamado Hola.class.

public static void main(String args[]) {

Esta línea especifica el método que el intérprete Java busca para ejecutar en primer lugar. La palabra clave, main, para especificar la
primera función a ejecutar. En este ejemplo no se pasan argumentos.

public significa que el método main() puede ser llamado por cualquiera, incluyendo el intérprete Java.

static es una palabra clave del Lenguaje le dice al compilador que main se refiere a la propia clase Hola.

void indica que main() no devuelve ningún valor.

args[] es la declaración de un arreglo tipo String.

System.out.println("Hola Mundo!");

Ésta es la funcionalidad de la aplicación. Esta línea muestra el uso de un nombre de clase y método. Se usa el método printfln() de la
clase out que está el paquete System, permite presentar en la salida estándar del Sistema el argumento que se le pase. En este caso,
muestra en pantalla la cadena Hola Mundo!

Finalmente , se cierran las llaves que limitan el método main() y la clase Hola.

2.4.2. Compilación.

El compilador Javac se encuentra en el directorio bin dentro del directorio Java, o aquel donde se haya instalado la plataforma Java. El
compilador de Java traslada el código fuente Java a bytes, que son los componentes que entiende la Máquina Virtual Java que está
incluida en los navegadores con soporte Java.

Una vez creado el programa fuente hola.java se puede compilar introduciendo la siguiente línea de comandos:

javac Hola.java

Si no se han cometido errores al editar el programa, ni se han tenido problemas con el PATH a la hora de especificar el directorio del
programa fuente y del compilador, no debería aparecer mensaje alguno en la pantalla, y cuando vuelva a aparecer el prompt del sistema,
se debería ver un programa Hola.class nuevo en el directorio donde se encuentra el programa fuente.

4
Si aparece algún problema, es necesario editar de nuevo el programa para revisar el tipo de error y nuevamente compilar el programa
fuente.

2.4.3 Ejecución.

Para ejecutar la aplicación Hola.class, se utiliza el intérprete java, que también se encuentra en el directorio bin. Se ejecutará la
aplicación con la línea:

Java Hola

Y debería aparecer en pantalla la respuesta de Java:

Hola Mundo!

Cuando se ejecuta una aplicación Java, el intérprete Java busca e invoca el método main() de la clase cuyo nombre coincide con el
nombre del archivo Hola.class que se indique en la línea de comandos.

*/
PLANTILLA DE UN PROGRAMA JAVA.

Comentarios
Sirve para describir el */
programa

Sentencias import
Llama los paquetes de las bibliotecas para cargar
las clases de Java o Interfaz de Java API, para import
compilar el programa. class import

{
Nombre de la clase public static void main(String arg[])
Nombre descriptivo de la clase principal {

Cuerpo del Método


Sirve para escribir todas las instrucciones }
necesarias para que funcione el método. }

III. MANEJO DE DATOS.

3.1 Variables.

Tiene tres propiedades: una posición de memoria para almacenar el valor, el tipo de dato almacenado en la posición de memoria y el
nombre usado para referirse a esa posición de memoria.

Existen 3 tipos de variables:

• de instancia

5
• de clase
• locales

En Java no hay globales, debido a que es un lenguaje "puro" orientado a objetos.

Los nombres de variables deben empezar con:

• letra,
• _,o
• $

Sensible a mayúsculas/minúsculas, así la variable A es distinta de la variable a y ambas son distintas de la variable aA.

Al igual que en cualquier lenguaje de programación cualquier nombre debe tener un significado útil.

Creación de variables:

Para crear una variable, simplemente hay que poner el tipo deseado seguido del nombre que se desee dar a la variable.

Ejemplo:

int calificacion;

char valor1;

boolean exito;

Tipos de información

Un programa Java maneja dos tipos de información:

• Tipos primitivos
• Objetos

Tipos primitivos

Existen ocho tipos de datos primitivos agrupados en los siguientes cuatro grupos:

Cada tipo de datos primitivo tiene el mismo tamaño y características (no importa plataforma o sistema operativo).

Enteros

Tipo Tamaño Valores


(bytes)
byte 1 -128 a 127
short 2 -32,768 a 32,767
int 4 -2,147,483,648 a 2,147,483,647
long 8 9223372037 X 10 E+18

Punto flotante

6
Tipo Tamño (bytes) Valores
float 4 1.44E-45 a 3.4E+38
double 8 4.9E-324 a 1.7E+308

Caracteres

Se usa para caracteres individuales como letras, números, puntuación y otros símbolos

Booleanos

Solamente pueden tener el valor de "true" o "false"

Inicialización:
Cuando una variable es declarada automáticamente Java inicializa las variables de acuerdo a:

Numéricas 0

Caracteres ‘\0’

Booleanos false

Asignación
Una vez que una variable ha sido declarada, se le puede asignar un valor con el operador de asignación (=).
Ejemplo:

int i;

i=5;

Es posible declarar e inicializar una variable en el mismo enunciado. Ejemplo:

int año = 2000;

boolean aprobado = true;

int edad = 20, peso = 80;

Se pueden encadenar las instrucciones de asignación: Ejemplo: x = y = z = 10;

3.2 Expresiones aritméticas.

Una instrucción es una expresión que produce un valor. Ejemplo:

class Geometria{

public static void main (String args[]){

int lados = 4; //declaración e inicialización

System.out.println ("Un cuadrado tiene " + lados + " lados");

lados = 3; //sentencia de asignación

System.out.println ("Un triangulo tiene " + lados + " lados");

}
}

7
Operadores aritméticos

Operador Significado Ejemplo


+ Suma 3+4
- Resta 10 - 5
* multiplicación 2*7
/ división 5/2
% módulo 7%4

Operadoresde asignación

Expresión Significado
x += y x=x+y
x -= y x=x-y
x *= y x=x*y
x /= y x=x/y

Operadores de Incremento y Decremento:

• Incremento ++

• Decremento - -
• Pueden ser prefijos o posfijos: Ejemplo:

Considere el siguiente segmento de código:

int a = 5,b=10;

a++; b--;

System.out.println ("a = " + a); a= 6

System.out.print ln("b = " + b); b= 9

3.3 Constantes.

Mientras se ejecuta un programa no cambia su valor asignado, de forma que no pueda ocurrir ningún cambio. Una constante se
declara de forma similar a una variable, pero añadiendo la palabra reservada final. Una constante tiene un valor asignado cuando se
declara. Ejemplo:

final doble PI=3.1416; final short KM=1000; final int DICIEMBRE=12; final char ASTERISCO=´*´;

Se recomienda para nombrar constantes, usar letras mayúsculas y subrayado. Ejemplos:

8
System.out.print ln("PI es igual " + PI); PI es igual 3.1416

System.out.println(“Un kilómetro tiene “ + KM + “ metros “); Un kilómetro tiene 1000 metros

System.out.print ln("El número de diciembre es: “ + DICIEMBRE); El número de diciembre es: 12

Ejemplo para calcular el área de un Círculo. La formula que nos calcula el área es la siguiente: Área = Π · r2

public class AreaCirculo {

public static void main(String args[]) {

final double radio = 6; final double PI=3.1416;

double area;

area = PI * (radio*radio);

System.out.println("Área de un circulo de radio "+ radio + " es " + area); Área de un circulo de radio 6 es 113.0976

3.4 La Clase Math.

Cuando se desea tener acceso a un método es necesario especificar dónde está la clase a la que pertenece así es que se utiliza la
declaración import.

Una declaración import especifica un identificador (el nombre de la clase) que será referenciada, y el nombre del paquete en el que está
definida. Un * indica que cualquier clase del paquete puede ser referenciada. Ejemplos:

import java.awt.Graphics;

import java.applet.Applet;

import java.io.*;

import java.util.*;

En Java los métodos siempre están dentro de una clase. Algunos métodos pueden ser invocados o llamados a través del nombre de la
clase en la que fueron definidos sin tener que instanciar un objeto de la clase primero. Estos métodos son llamados métodos estáticos o de
clase.

La clase Math

La clase Math ofrece un gran número de funciones matemáticas básicas. La siguiente tabla muestra algunos métodos. El formato es
Math.metodo, a continuación se muestran fragmentos de programas para dar los ejemplos:

int a=-5, r;

1. System.out.println("Valor absoluto = " + Math.abs(a)); Valor absoluto = 5 // como salida de datos

2. r=Math.abs(-8); // como asignación

9
System.out.println("Otro resultado = " + r); Otro resultado = 8

3. if ( Math.abs(10) == r + 2) // para la selección de datos

4. System.out.println("El mayor es " + Math.max(Math.abs(a),1)); El mayor es 5//como parámetros

Método Tipo de Descripción Ejemplo Resultado


argumento
abs (n) int Regresa el valor absoluto de n abs(10) 10
float abs(-8) 8
long

max(a,b) int Regresa el valor más grande entre a y b max(10,20) 20


float
long
min(a,b) int Regresa el valor más pequeño entre a y b min (10,20) 10
float
long
round(n) int Regresa el valor entero de n redondeado al número más round(5.6) 6
float cercano. round(5.4) 5
Round(5.5) 6
round(-5.6) -6
pow (n,e) double Regresa el número n elevado a la potencia de e pow(2.0,3.0) 8.0
random () No tiene Genera un número aleatorio entre 0.0 a 1.0 random() 0.70
sqrt (n) double Devuelve la raíz cuadrada de n sqrt(9.0) 3.0
PI No tiene Devuelve el valor de PI PI 3.141592

Nota: NO es necesario utilizar import para usar una función de la clase Math

3.5 La clase String.

Java posee gran capacidad para el manejo de cadenas dentro de su clase String. Las cadenas son apropiadas para crear editores de textos,
procesadores de palabras, software de formación de páginas, sistemas de tipografía computarizados y otros tipos de software para
procesar textos.

Una cadena es una serie de caracteres que se tratan como una unidad. Una cadena puede incluir letras, dígitos, y diversos caracteres
especiales como +,-,*,$ y otros. Una cadena en Java es un Objeto de la clase String (cadena para manejarlas en el paquete java.lang).
Las literales de cadena o constantes (también llamados objetos de String anónimos) en Java se escriben como una secuencia de caracteres
entre comillas; por ejemplo:

“UAEM”, “Cuernavaca Morelos”, “Clase 2007” y “12345678”

Concatenación de cadenas:

El operador "+" realiza la concatenación cuando, al menos, uno de los operandos es un String:

Ejemplos:

cadena1="este" + "aquel"; // Produce "esteaquel"


cadena2="abc" + 56 // Produce "abc56"
8 + " casa" + "s" //Produce "8casas"
"a" + "casa" + "azul" // Produce "acasaazul"
Un String se puede asignar a una referencia en una declaración.

String msg = “Feliz cumpleaños”;

inicializa la referencia String msg de modo que se refiera al objeto String anónimo “Feliz cumpleaños”.

Un String puede declararse de la siguiente manera:


String nombre;
String vacía = "";

10
String mensaje = "hola";
String msg= “hola”;
String ciudad = new String();
String despedida = new String ("adios");
String c="Mexico lindo y querido";
String t1="otra cosa";
3.6 Métodos para el manejo de cadenas.
Para los ejemplos considere las cadenas definidas anteriormente.

Formato: cadena.metodo

Método Actividad Ejemplo Resultado


length () Devuelve el número de caracteres de la System.out.println(mensaje.length()); 4
cadena
charAt (n) Devuelve el carácter que se encuentra en la System.out.println(mensaje.charAt(0)); h
posición n
equals(otra) Determina si la cadena es igual al String otra System.out.println(mensaje.equals(msg)); true
System.out.println(mensaje.equals(t1)); false
cad1==cad2 Compara si el String cad1 es igual al String System.out.println(mensaje==msg); true
cad2 System.out.println(mensaje==t1); false
compareTo (otra) Comparación lexicográfica. Devuelve 0 si los String a="ABC";
dos String son iguales, un número negativo si String b="CBA";
el String que invoca a comparteTo es menor String c="ABC";
que el String que se pasa como argumento y
un número positivo en caso contrario. El System.out.println(a.compareTo(b)); -2
valor devuelto es la diferencia entre las System.out.println(b.compareTo(a)); 2
representaciones enteras del primer carácter System.out.println(a.compareTo(c)); 0
que es diferente en cada String.
substring(i,j) crea un nuevo objeto String copiando parte de t1=c.substring(0,6);
un objeto String existente.
System.out.println(t1); Mexico
substring ( i ) o substring (i, j)
System.out.println(c.substring(7,12)); lindo

System.out.println(c.substring(18,20)); ?

String a="Edo.Mex";

System.out.println(a.substring(3)); .Mex

Conversión a Al unir con el operador + una cadena con int n=12345;


string: cualquier tipo, el resultado final es un String. String c;
c="" + n;
System.out.println(c.charAt(2)); 3
System.out.println(c.charAt(0)); ?
concat(otra) Concatena dos String y devuelve un nuevo String a="MEX";
objeto String que contiene los caracteres de String b="DF";
los dos String originales. a=a.concat(b);
System.out.println(a); MEXDF
System.out.println(b); ?
replace(char,char) genera un objeto String en el que cada String a="mex y xoxo";
ocurrencia del primer carácter en el String System.out.println(a.replace('x','*')); me* y *o*o
con que se invoca se substituye por el System.out.println(a); mex y xoxo
segundo carácter. Sino hubiera coincidencias System.out.println(a.replace('K','L')); ?
se regresa una copia del String original.
toUpperCase ( ) Regresa un objeto de la clase String igual String a="Edo. Mex";
pero cuyas caracteres son todos mayúsculas
System.out.println(a.toUpperCase()); EDO.MEX
String toLowerCase Regresa un String con todos los caracteres en String a="Edo. Mex";
() minúsculas
System.out.println(a.toLowerCase()); edo.mex

11
indexOf((int)char) Devuelve el índice del carácter del String, si String a="Edo. Mex";
no existe regresa -1 System.out.println(a.indexOf((int)'o')); 2
System.out.println(a.indexOf((int)'k')); -1
System.out.println(a.indexOf((int)'M')); ?
3.7 Métodos de Salida.

Despliegue de un string:

String s=”Hola Raton sin cola”;

String t;

System.out.println(s); Hola Raton sin cola


System.out.println(t); // Error t no tiene valor

3.8 Métodos de Entrada.

Método para introducir caracteres individuales tecleados por el usuario: System.in.read, el formato es:

int c;

c=System.in.read();
Empleando este método sólo se puede leer un dígito a la vez, esto se debe a lo limitado de las capacidades de Java para leer información
del flujo de entrada. Con frecuencia es necesario leer información como enteros, flotantes, cadenas y otro tipos para introducirlos a un
programa.

Para poderlo hacer, se requiere diseñar una clase propia o utilizar una diseñada por otras personas, a continuación se propone la siguiente:

Ponga en su directorio de trabajo el siguiente archivo:

Teclado.java

Compilar el programa javac Teclado.java y generar la clase Teclado.class

Utilizar alguna de las funciones de lectura que se encuentran en el archivo Teclado.java, las cuales tienen el siguiente formato:
tipo variable;
variable = Teclado. Método ();

Ejemplos:

int a;
a = Teclado. readInt ();

Esta clase contiene los siguientes métodos para leer:


readString () readInt ()
readWord () readLong ()
readBoolean () readFloat ()
readChar () readDouble ()

Ejemplos:

int n;
String cad;
float nf;
char c;

System.out.print("Dar numero entero: ");


n=Teclado.readInt();
System.out.print("Dar nombre: ");
cad=Teclado.readString();
System.out.print("Dar numero flotante: ");
nf=Teclado.readFloat();
System.out.print("Dar caracter: ");
c=Teclado.readChar();

12