You are on page 1of 13

Capítulo 2

Introducción al lenguaje Java


Síntesis del Manual de Referencia Java 2 Cuarta edición – Herbert Schildt

Programación orientada a objetos


Dos paradigmas
Abstracción
Los tres principios de la programación orientada a objetos
Un primer programa de prueba
Introducción del programa
Compilación del programa
Análisis detallado del primer programa de prueba
Un segundo programa breve
Dos sentencias de control
La sentencia if
El ciclo for
Utilización de bloques de código
Cuestiones de léxico
Espacios en blanco
Identificadores
Literales
Comentarios
Separadores
Palabras clave de Java
La biblioteca de clases Java

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-2

Introducción al Lenguaje Java

Como ocurre en otros lenguajes de programación, los elementos de Java no existen de


forma aislada, sino que trabajan conjuntamente para conformar el lenguaje como un todo.

Programación orientada a objetos

La programación orientada a objetos es la base de Java. La programación orientada a


objetos es tan importante en Java que se deben entender sus principios básicos antes de
empezar a escribir, incluso, un sencillo programa.

Dos paradigmas

Todos los lenguajes de programación consisten en dos elementos: código y datos un


programa puede estar conceptualmente organizado en torno a su código o en torno a sus
datos. Estos son los dos paradigmas que gobiernan la forma en que se construye un
programa. La primera de las formas se denomina modelo orientado al proceso, describe
un programa como una serie de pasos lineales, es decir, un código. El segundo enfoque
es la programación orientada a objetos, que organiza un programa alrededor de sus
datos, es decir, objetos, y de un conjunto de interfaces bien definidas con esos datos.

Abstracción

Un elemento esencial de la programación orientada a objetos es la abstracción. Una


forma adecuada de utilizar la abstracción es mediante el uso de clasificaciones
jerárquicas. Esto permitirá dividir en niveles la semántica de sistemas complejos,
descomponiéndolos en partes más manejables.

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-3

Las abstracciones jerárquicas de sistemas complejos se pueden aplicar también a los


programas de ordenador. Los datos de los programas algorítmicos tradicionales se
pueden transformar también mediante la abstracción en objetos. Una secuencia de pasos
de un proceso se puede convertir en mensajes entre esos objetos. Por lo tanto, cada uno
de esos objetos describe su propio y único comportamiento. Se puede tratar estos objetos
como entidades que responden a los mensajes que les ordenan hacer algo. Esta es la
sentencia de la programación orientada a objetos.

Los tres principios de la programación orientada a objetos

Todos los lenguajes orientados a objetos proporcionan los mecanismos que ayudan a
implementar el modelo orientado a objetos. Estos mecanismos son el encapsulado, la
herencia y el polimorfismo.

Encapsulado

El encapsulado es el mecanismo que permite unir el código junto con los datos que
manipula, y mantiene a ambos a salvo de las interferencias exteriores y de un uso
indebido. En Java, la base del encapsulado es la clase.

Herencia

La herencia es el proceso por el cual un objeto adquiere las propiedades de otro. Esto es
importante, ya que supone la base del concepto de clasificación jerárquica.

Polimorfismo

El polimorfismo es una característica que permite que una interfaz sea utilizada por una
clase general de acciones. La acción específica queda determinada por la naturaleza
exacta de la situación.

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-4

Un primer programa de prueba

Una vez discutidos los pilares básicos de la orientación a objetos de Java, veamos
programas de Java reales. Comencemos compilando y ejecutando el siguiente programa
ejemplo.

/*
Este es un programa de prueba en Java.
Este archivo se llama “Ejemplo.java”.
*/
class Ejemplo {
// El programa comienza con una línea llamada main().
public static void main(String args[]) {
System.out.println(“Este es un programa de prueba en Java.”);
}
}

Introducción del programa

En la mayor parte de los lenguajes de programación, el nombre del archivo es arbitrario.


Sin embargo, en Java esto no es así. En Java el nombre del archivo fuente es muy
importante, un archivo fuente se denomina unidad de compilación. El compilador Java
requiere que el archivo fuente utilice la extensión .java en el nombre del archivo. En Java,
todo código debe residir dentro de una clase. Por convenio, el nombre de esa clase debe
ser el mismo que el del archivo que contiene el programa. También es preciso asegurarse
de que coinciden las letras mayúsculas del nombre del archivo y de la clase.

Compilación del programa

Para compilar el programa Ejemplo, se ejecuta el compilador, javac, especificando el


nombre del archivo fuente en la línea de comandos, tal como se muestra a continuación.

C:\>javac Ejemplo.java

El compilador javac crea un archivo llamado Ejemplo.class, que contiene la versión del
programa en código binario. El resultado de la compilación con javac no es un código que
pueda ser directamente ejecutado. Para ejecutar el programa efectivamente, se debe

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-5

utilizar el intérprete denominado java. Para ello se pasa el nombre de la clase, Ejemplo,
como argumento a la línea de comandos.

C:\>java Ejemplo

Cuando se ejecuta el programa, se presenta la siguiente salida:

Este es un programa de prueba en Java

Análisis detallado del primer programa de prueba

Veamos con más detalle cada parte del programa. Las siguientes líneas:

/*
Este es un programa de prueba en Java.
Este archivo se llama “Ejemplo.java”.
*/

Esto es un comentario. El contenido de un comentario es ignorado por el compilador. Un


comentario describe o explica la operación del programa a cualquiera que este leyendo el
código fuente.

class Ejemplo {

Esta línea utiliza la palabra clave class para declarar que se está definiendo una nueva
clase. Ejemplo es un identificador y el nombre de la clase. La definición de la clase
completa, debe estar entre la llave de apertura ({) y la de cierre (}).

La siguiente línea que se muestra a continuación es un comentario de una línea.

// El programa comienza con una llamada a main().

Un comentario de una sola línea comienza con un // y termina al final de la línea.

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-6

public static void main(String args[]) {

En esta línea comienza el método main(). En esta línea comienza la ejecución del
programa. La palabra clave public es un especificador de acceso que permite al
programador controlar la visibilidad de los miembros de una clase. Cuando un miembro de
una clase va precedido por el especificador public, entonces es posible acceder a ese
miembro desde cualquier código fuera de la clase en que se ha declarado. La palabra
clave static (estático) permite que se llame a main() sin tener que referirse a ninguna
instancia particular de esa clase. La palabra clave void simplemente indica al compilador
que main() no devuelve ningún valor.

System.out.println(“Este es un programa de prueba en Java.”);

Esta línea visualiza la cadena “Este es un programa de prueba en Java”, seguido por una
nueva línea en pantalla. La salida es efectuada por el método println(). System es una
clase predefinida que proporciona acceso al sistema, y out es el flujo de salida que está
conectado a la consola.

Un segundo programa breve

El siguiente programa muestra como se declara una variable y como se le asigna un


valor. También ilustra algunos aspectos nuevos de la salida por consola.

/*
Este es otro ejemplo breve.
Este archivo se llama “Ejemplo2.java”.
*/

class Ejemplo2 {
public static void main(String args[]) {
int num; // Declara una variable llamada num

num = 100; // Asigna a num el valor 100.

System.out.println(“Esto es num: ” + num);

num = num * 2;

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-7

System.out.print(“El valor de num * 2 es ”);


System.out.println(num);
}
}

Al ejecutar este programa se obtiene la siguiente salida:

Esto es num: 100


El valor de num * 2 es 200

La primera línea del programa es:

int num; // Declara una variable llamada num

Esta línea declara una variable entera llamada num. En el programa la línea

num = 100; // Asigna a num el valor 100.

Asigna a num el valor de 100.

System.out.println(“Esto es num: ” + num);

En esta sentencia el signo más (+) hace que el valor de num sea añadido a la cadena que
le precede, y a continuación se visualice la cadena resultante. Utilizando el operador +, se
pueden encadenar tantos caracteres como se desee dentro de una única sentencia
println().

La siguiente línea de código asigna a num el valor de dos veces num. Java utiliza el
operador * para la multiplicación. Después de ejecutar esta línea, el valor de num será
200.

System.out.println(“El valor de num * 2 es ”);


System.out.println(num);

El método print() se ejecuta para presentar la cadena “El valor de num * 2 es ”. Esta
cadena no es seguida por una nueva línea.

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-8

Dos sentencias de control

Se introducen brevemente dos sentencias de control para poder utilizarlas en los ejemplos
de programas que a continuación se presentan.

La sentencia if

La sentencia if de Java actúa de la misma forma que la sentencia IF en cualquier otro


lenguaje. A continuación se presenta su forma más simple.

if(condición) sentencia;

Donde condición es una expresión booleana. Si la condición es verdadera, entonces se


ejecuta la sentencia. Si la condición es falsa, entonces se evita la sentencia.

Java define un conjunto de operadores relacionales que se pueden utilizar en expresiones


condicionales. Como por ejemplo se presenta los siguientes:

Operador Significado
< Menor que
> Mayor que
== Igual a

El siguiente programa sirve para explicar la sentencia if:

/*
Demostración de la sentencia if.
Este archivo se llama “EjemploIf.java”.
*/

class EjemploIf {
public static void main(String args[]) {
int x, y;

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-9

x = 10;
y = 20;

if(x < y) System.out.println(“x es menor que y ”);


x = x * 2;
if(x == y) System.out.println(“x es ahora igual que y ”);
x = x * 2;
if(x > y) System.out.println(“x ahora es mayor que y ”);
//Esto no visualizará nada
if(x == y) System.out.println(“esto no se verá ”);
}
}

La salida por este programa es la siguiente:

x es menor que y
x es ahora igual que y
x ahora es mayor que y

El ciclo for

Las sentencias de ciclos son una parte importante de cualquier lenguaje de programación.
Java facilita un potente surtido de construcciones de ciclos. Probablemente la más versátil
es el ciclo for. La forma más simple del ciclo for es la siguiente:

for(inicialización; condición; iteración) sentencia;

La parte de inicialización del ciclo asigna un valor inicial a la variable de control del ciclo.
La condición es una expresión booleana que examina la variable de control del ciclo. La
expresión de iteración determina como cambia la variable de control de cada vez que se
recorre el ciclo. El siguiente programa sirve como ejemplo del ciclo for:

/*
Demostración del ciclo for.
Este archivo se llama “ForPrueba.java”.
*/

class ForPrueba {
public static void main(String args[]) {
int x;

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-10

for(x = 0; x < 10; x = x + 1)


System.out.println(“Esto es x: ” + x);
}
}

Este programa genera la siguiente salida:

Esto es x: 0
Esto es x: 1
Esto es x: 2
Esto es x: 3
Esto es x: 4
Esto es x: 5
Esto es x: 6
Esto es x: 7
Esto es x: 8
Esto es x: 9

En este ejemplo, la variable de control del ciclo es x. En la parte de inicialización del ciclo
for, esta variable se inicializa a cero. Al comienzo de cada iteración, incluyendo la
primera, se comprueba la x < 10. Si el resultado es verdadero, se ejecuta la sentencia
println(), y a continuación se ejecuta la parte de la iteración del ciclo. Este proceso
continúa hasta que la condición sea falsa.

Utilización de bloques de código

Java permite la agrupación de dos o más sentencias de los denominados bloques de


código. Para ello se encierran entre llaves las sentencias del bloque. Una vez creado, un
bloque de código se convierte en una unidad lógica que se puede utilizar en cualquier sitio
de la misma forma que una sentencia única. Por ejemplo, un bloque de código puede ser
el cuerpo de las sentencias if o for de java.

if(x < y) { //Comienzo del bloque


x = y;
y = 0;
} //Fin del bloque

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-11

Veamos otro ejemplo. El siguiente programa utiliza un bloque de código como cuerpo de
un ciclo for.

/*
Demostración de un bloque de código.
Este archivo se llama “PruebaBloque.java”.
*/

class PruebaBloque {
public static void main(String args[]) {
int x, y;

y = 20;

//El cuerpo de este ciclo es un bloque


for(x = 0; x < 10; x++) {
System.out.println(“Esto es x: ” + x);
System.out.println(“Esto es y: ” + y);
y = y – 2;
}
}
}

La salida generada por este programa es la siguiente:

Esto es x: 0
Esto es y: 20
Esto es x: 1
Esto es y: 18
Esto es x: 2
Esto es y: 16
Esto es x: 3
Esto es y: 14
Esto es x: 4
Esto es y: 12
Esto es x: 5
Esto es y: 10
Esto es x: 6
Esto es y: 8
Esto es x: 7
Esto es y: 6
Esto es x: 8
Esto es y: 4
Esto es x: 9
Esto es y: 2

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-12

En este caso, el cuerpo del ciclo for es un bloque y no una única sentencia. Por lo tanto,
cada vez que se realiza una iteración, se ejecutan las tres sentencias que están dentro del
bloque, tal y como muestra la salida generada por el programa.

Cuestiones de léxico

Ahora podemos describir de manera formal los elementos básicos de los programas
escritos en Java, que son una colección de espacios en blanco, identificadores,
comentarios, literales, operadores, separadores y palabras clave.

Espacios en blanco

En Java es suficiente un espacio para diferenciar los elementos del programa. Java es
sensible al texto, es decir, diferencia entre mayúsculas y minúsculas. En Java un espacio,
tabulador o línea nueva son un espacio es blanco.

Identificadores

Los identificadores se utilizan para los nombres de las clases, de los métodos y de las
variables. Un identificador es una secuencia descriptiva de letras, números, carácter de
subrayado (_) y el signo $. El identificador nunca empieza con un número. Los
identificadores deben tener una semántica del elemento que describen por ejemplo usar
num para guardar un número.

Literales

Un valor constante en Java se crea mediante una representación literal. Por ejemplo:

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013


Introducción al lenguaje Java 2-13

100 98.6 ‘X’ “Esto es un texto”

Comentarios

Existen tres tipos de comentarios en Java. El de una línea (//), de múltiples líneas (/* …
*/), y el tercero se denomina comentario de documentación que se utiliza para generar un
archivo HTML que documenta el programa (/** … */).

Separadores

En Java utilizan pocos caracteres como separadores, estos son:

Símbolo Nombre Propósito


() Paréntesis Se usa para contener una lista de
parámetros en la definición y llamada
a un método.
{} Llaves Se usan para contener los valores de
arrays inicializados automáticamente.
[] Corchetes Se usan para declarar tipos de array.
También cuando se referencian
valores de array.
; Punto y coma Separador de sentencias.
, Coma Separa identificadores consecutivos
en la declaración de variables.
. Punto Se usa para separar nombres de
paquetes de nombres de
subpaquetes y clases.

Palabras clave de Java

Existen actualmente 48 palabras reservadas. Estas palabras clave combinadas con la


sintaxis de los operadores y separadores, forman la definición del Lenguaje Java y no se
pueden utilizar como nombres de identificadores (clases, objetos, variables). Algunas de
estas palabras reservadas son: int, class, if, static, char, case, etc.

Instituto Tecnológico de Pachuca – Roberto Hernández Pérez. Rev. Jun 2013