Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivos
Temas
Por ejemplo:
Asimismo, en la carpeta bin, se encuentran otras herramientas de Java, con las que se
podrá compilar, ejecutar, documentar, empaquetar y muchas otras tareas, propias del
entorno.
Con respecto al primer programa Hola.java, para llegar a ejecutarlo y verlo en consola,
deberá pasar por el proceso siguiente:
Estructura básica de Java
Una clase es un prototipo que define las variables y los métodos comunes a un cierto
tipo de objetos. Las clases son las plantillas, de las que luego, se pueden crear múltiples
objetos del mismo tipo.
La clase define las variables y los métodos comunes a los objetos de ese tipo, pero
luego, cada objeto tendrá sus propios valores y compartirán las mismas funciones.
Existe una estructura fundamental para todas las clases definidas en Java, que se debe
tener en cuenta al momento de construirlas:
Donde:
Este programa será guardado con el nombre de Hola.java, el nombre del archivo debe
ser completamente igual al nombre de la clase (Hola).
Cláusula package
El nombre de una clase debe ser único dentro del package donde se define. Dos clases
con el mismo nombre en dos packages distintos, pueden coexistir e incluso, pueden ser
usadas en el mismo programa.
Una clase se declara perteneciente a un package con la cláusula package, cuya sintaxis
es la siguiente:
package nombre_package
La cláusula package debe ser la primera sentencia del archivo fuente. Cualquier clase
declarada en ese archivo pertenece al package indicado.
Por ejemplo, un archivo que contenga las sentencias siguientes declara que la clase
MiClase pertenece al package mipackage.
package mipackage;
...
class MiClase {
...
cooperan desde algún punto de vista. También, resulta importante por la implicación
que los packages tienen en los modificadores de acceso.
Los packages pueden usar nombres compuestos separados por puntos, de forma similar
a como se componen las direcciones URL de Internet.
Por ejemplo:
De esta manera, se pueden tener los packages ordenados, según una jerarquía
equivalente a un sistema de archivos jerárquico. Asimismo, el API de java está
estructurado, de esta forma, con un primer calificador (java o javax) que indica la base;
un segundo calificador (awt, util, swing, etc.) que indica el grupo funcional de clases y
opcionalmente, subpackages en un tercer nivel, dependiendo de la amplitud del grupo.
Cuando se crean packages de usuario, no es recomendable usar nombres de packages
que empiecen por java o javax.
Cláusula import
package parainfo;
...
class Circulo {
Punto centro;
...
}
Estructura básica de Java
package parainfobase;
class Punto {
int x, y;
}
Entonces, para usar la clase Punto en la clase Círculo, se debe escribir lo siguiente:
package parainfoampliada;
import parainfobase.*;
class Circulo {
Punto centro;
...
}
Con la cláusula import parainfobase.*; se hacen accesibles todos los nombres (todas las
clases) declaradas en el package parainfobase. Si solo se quisiera tener accesible la clase
Punto, se podría declarar: import parainfobase.Punto.
También, es posible hacer accesibles el nombre de un package sin usar la cláusula
import, calificando completamente los nombres de aquellas clases pertenecientes a
otros packages. Por ejemplo:
package parainfoampliada;
class Circulo {
parainfobase.Punto centro;
...
}
Sin embargo, si no se usa import es necesario especificar el nombre del package cada
vez que se usa el nombre Punto.
La cláusula import indica al compilador dónde buscar las clases adicionales, cuando no
puedan ser encontradas en el package actual, asimismo, delimita los espacios de
nombres y modificadores de acceso. Cabe mencionar que, en una clase puede haber
tantas sentencias import como sean necesarias. Por otro parte, las cláusulas import se
colocan después de la cláusula package (si es que existe) y antes de las definiciones de
las clases.
Estructura básica de Java
3. Variables
Para poder manejar variables de manera correcta, primero se debe declarar y luego,
asignar un valor. Por ejemplo:
int x;
x = 50;
Si se quiere declarar una constante cuyo valor nunca podrá ser modificado, esta
debe ser inicializada en el momento de su definición, utilizando la palabra
reservada final.
Ejemplo:
En Java existe diferentes tipos de datos, los cuales, se encuentran en el siguiente cuadro
de valores primitivos:
Tipo Descripción
El cuadro muestra los tipos de datos y los rangos de valores que se tienen que
considerar.
Para asignar cadenas, Java utiliza objetos que observarás en capítulos posteriores.
Ejemplo: La clase String.
Estructura básica de Java
5. Operadores
Existe una gran variedad de operadores en Java, que sirven para procesar datos, entre
ellos están:
Categoría Operadores
Aritméticos + - * / %++ --
Lógicos && || ! ^
Relacionales == != < > <= >=
Bits &| ^~
Asignación = += -= *= /= %=
Ternario ?:
Estructura básica de Java
5.1 Aritméticos
+ Adición
- Sustracción
* Multiplicación
/ División
% Módulo. Toma el residuo de una división de enteros.
Ejemplo:
17%5 == 2; // Residuo de 17 entre 5 es 2.
++ Se incrementa en uno.
Ejemplo 1:
int a, b; // Se declara dos enteros a y b.
a = 5;
b = ++a; // a==6 y b==6
Ejemplo 2:
int a, b;
a = 5;
b = a++; // a==6 y b==5
-- Decremento en uno. Contrario al anterior.
Ejemplo:
//Suma de valores
int contador=10;
int otroOperador=5;
int resultado=contador+otroOperador;
//resultado tendrá el valor de 15
5.2 Lógicos
&& Y (and)
P q p && q
v v V
v f F
f v F
f f F
|| O (or)
Ejemplo: sean p y q 2 expresiones.
P q p || q
v v v
v f v
f v v
f f f
! No (not)
q !q
v F
f V
Ejemplo:
//Ejemplo AND
Int contador1=10;
Int contador2=20;
Boolean resultado=(contador1==contador2)&&(contador2<100);
// el resultado nos devuelve FALSE
//Ejemplo OR
resultado=(contador1!=contador2)&&(contador2<100);
// el resultado nos devuelve TRUE
Estructura básica de Java
5.3 Relacionales
Igual que
== Ejemplo:
3+4 == 7; // 3 más 4 es igual que 7, resulta true
Diferente que.
!= Ejemplo:
5+6 != 7; // 5 más 6 es diferente de 7, resulta true
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
Ejemplo:
5.4 Bits
5.5 Asignación
= Asigna un valor.
Compacta un producto.
*= Ejemplo:
y *= 12; // Es igual a poner y = y * 12;
%= Compacta el módulo.
5.6 Ternario
Ejemplo:
Precedencia de operadores
Observa que los últimos son los de asignación, esto es lógico, ya que se debe
calcular, primeramente, la expresión antes de asignar un resultado a una variable.
Estructura básica de Java
Ejemplo:
Int j=1 + 3 * 4;
// resultado de j=13
6. Métodos
Cuando se llama a un método, la ejecución del programa pasa al método y cuando éste
acaba, la ejecución continúa a partir del punto donde se produjo la llamada, formando
una “pila” de llamadas entre métodos.
Donde:
Un método tiene un único punto de inicio, representado por la llave de inicio “{“. La
ejecución de un método termina cuando se llega a la llave final “}” o cuando se ejecuta
la instrucción return.
La instrucción return puede aparecer en cualquier lugar dentro del método, no tiene
que estar necesariamente al final.
import java.util.*;
public class Metodos1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numero1, numero2, resultado;
System.out.print("Introduce primer número: ");
Estructura básica de Java
numero1 = sc.nextInt();
System.out.print("Introduce segundo número: ");
numero2 = sc.nextInt();
resultado = sumar(numero1, numero2);
System.out.println("Suma: " + resultado);
}
public static int sumar(int a, int b){
int c;
c = a + b;
return c;
}
}
7. Método main
El método main, se puede escribir de tres maneras diferentes sin que esto produzca un
error.
• public static void main(String args[]) {}
• public static void main(String[] args){}
• public static void main(String... args){}
El método main () en Java es estático, ya que puede ser invocado por el motor del
tiempo de ejecución sin tener que crear una instancia de la clase padre.
Aunque se le suele dar el nombre de args, no es obligatorio que este parámetro se llame
así, se puede colocar el nombre que más te guste, por ejemplo:
8. Consola
Para ejecutar el programa, haz clic derecho sobre el código y selecciona “Run File”.
Estructura básica de Java
No existe instrucción directa en Java para el ingreso de datos, pues el lenguaje asume
que el dispositivo lo proveerá. En este caso, para el ingreso de datos por consola, se
tiene a partir del JDK 1.5 la clase Scanner. El siguiente programa ilustra sus usos.
9. Clases Wrapper
Los primeros lenguajes de programación no usaban objetos, solo variables. Una variable,
es un espacio de la memoria del ordenador a la que se asigna un contenido que puede
ser un valor numérico (solo números, con su valor de cálculo) o de tipo carácter o
cadena de caracteres (valor alfanumérico que constará solo de texto o de texto
mezclado con números).
Por ejemplo, se puede definir una variable a que contenga 32 y esto lo escribimos como
a = 32. Posteriormente, se cambiar el valor de a y hacer a = 78. O hacer “a” equivalente
al valor de otra variable “b” así: a = b.
Dado que antes se ha definido que, un objeto también ocupa un espacio de memoria,
entonces, ¿En qué se parecen y en qué se diferencia un objeto de una variable?,
considera que las variables son entidades elementales: un número, un carácter, un valor
verdadero o falso; mientras que, los objetos son entidades complejas que pueden estar
formadas por la agrupación de muchas variables y métodos. Pero ambas cosas ocupan
lo mismo: un espacio de memoria (que puede ser más o menos grande).
Estructura básica de Java
En los programas en Java, puede ser necesario, tanto el uso de datos elementales como
de datos complejos. Por eso, en Java se usa el término “Tipos de datos” para englobar a
cualquier cosa que ocupa un espacio de memoria y que puede ir tomando distintos
valores o características durante la ejecución del programa. Es decir, en vez de hablar de
tipos de variables o de tipos de objetos, se denomina tipos de datos.
Java diferencia dos tipos de datos: por un lado, los tipos primitivos, que se corresponden
con los tipos de variables en lenguajes como C y que son los datos elementales que
hemos citado. Por otro lado, los tipos objeto (que normalmente incluyen métodos).
Los tipos de datos básicos o primitivos no son objetos y se pueden utilizar directamente
en un programa, sin necesidad de crear objetos de este tipo.
Aquella variable que tiene métodos asociados y necesitan una invocación para ser
creados.
Estructura básica de Java
Existe una excepción en el tipo de dato objeto String, que se comporta como un tipo de
dato primitivo; ya que, no necesita un constructor para ser utilizado.
1. ¿Un objeto es una cosa distinta a un tipo primitivo, aunque “porten” la misma
información?
Tener siempre presente que los objetos en Java tienen un tipo de tratamiento y los
tipos primitivos, otro. Que en un momento dado contengan la misma información
no significa, en ningún caso que, sea lo mismo.
2. ¿Para qué tener esa aparente duplicidad entre tipos primitivos y tipos objeto o
envoltorio?
Esto es una cuestión que atañe a la concepción del lenguaje de programación. Tener
en cuenta una cosa: un tipo primitivo es un dato elemental y carece de métodos;
mientras que, un objeto es una entidad compleja y dispone de métodos. Por otro
lado, de acuerdo con la especificación de Java, es posible que sea necesario utilizar
dentro de un programa un objeto que “porte” como contenido un número entero.
Desde el momento en que sea necesario un objeto, se debe de pensar en un
envoltorio, por ejemplo, Integer. Inicialmente, puede costar un poco distinguir
cuándo usar un tipo primitivo y cuándo un envoltorio en situaciones en las que
ambos sean válidos. Para ello, sigue esta regla: usa por norma general tipos
primitivos. En el momento en que la estructura de datos o para el proceso a realizar
sea necesario un objeto, utiliza un envoltorio.
El tipo String en Java permite crear objetos que contienen texto (palabras, frases,
etc.), es importante que el texto debe ir siempre entre comillas. Muchas veces se
cree erróneamente, que el tipo String, es un tipo primitivo por analogía con otros
lenguajes donde String funciona como una variable elemental. En Java no es así.
Por norma general usael tipo int. Para casos en los que el entero pueda ser muy
grande utiliza el tipo long.
Los arrays son objetos especiales, los únicos objetos en Java que carecen de
métodos.
Estructura básica de Java
String, es una de las clases más utilizadas en la programación con Java, pues trabaja las
cadenas de texto casi de una forma primitiva. Uno de los mayores problemas que tiene
esta clase es su inmutabilidad, lo cual hace que una concatenación cree otro objeto en
memoria, incrementando la utilización de la misma.
• String
El operador de suma está sobrecargado para los String, y es la forma más básica de
concatenar dos cadenas de caracteres. Y también, es la peor forma en cuanto a
rendimiento.
Al concatenar dos String con el operador suma, se crea un nuevo String resultante,
con lo que constantemente se están creando objetos nuevos.
• StringBuffer
• StringBuilder
Es decir, en la mayoría de los casos, StringBuilder puede resultar un 50% más rápido que
el StringBuffer, para concatenar Strings.
Estructura básica de Java
Todo lo que esté entre /* y */ será considerado comentario por el compilador de Java y
es eliminado en el archivo compilado (.class).
Todo lo que esté entre /** y */ será considerado comentario por el compilador de Java,
y permanece en el archivo compilado (.class). Usado normalmente, para describir al
desarrollador y a la aplicación.
Estructura básica de Java
12. Depuración
Para depurar, primero agrega un break point a una línea del programa, esto se logra al
dar clic en el número de línea.
Luego, haz clic derecho sobre el código de programa y del menú flotante que se
muestra, selecciona “Debug File”. La ejecución del programa se detiene en la línea que
contiene el break point, la cual se pinta de verde; además, se activan los siguientes
toolbars:
Estructura básica de Java
Estos botones, según el orden en el que se muestran, ejecutarán las siguientes acciones: