You are on page 1of 40

M.C.

Gerardo Beltrn Gutirrez


UNIVERSIDAD AUTNOMA DE SINALOA
Facultad de Informtica Culiacn
Lenguajes de
Programacin
UNIDAD IV
Estudio del Lenguaje de
Programacin JAVA
Introduccin a Java
El origen de Java
Los creadores de Java son James Gosling y Bill
Joy. Java desciende de un lenguaje llamado Oak
cuyo propsito era la creacin de software para la
televisin interactiva. Las caractersticas de Oak
eran:
Pequeo.
Robusto.
Independiente de la mquina.
Orientado a objetos.
El origen de Java
El proyecto de televisin interactiva fracas y el
inters de los creadores de Oak se dirigi a
Internet bajo el lema La red es la
computadora.
Los criterios de diseo de Java fueron:
Independiente de la mquina.
Seguro para trabajar en red.
Potente para sustituir cdigo nativo
Caractersticas del lenguaje
La principal caracterstica de Java es la de ser un
lenguaje compilado e interpretado.
Todo programa en Java ha de compilarse y el
cdigo que se genera bytecodes es interpretado
por una mquina virtual.
De este modo se consigue la independencia de la
mquina, el cdigo compilado se ejecuta en
mquinas virtuales que si son dependientes de la
plataforma.
.
Caractersticas del lenguaje
Java es un lenguaje orientado a objetos de
propsito general.
Aunque Java comenzar a ser conocido como
un lenguaje de programacin de applets que se
ejecutan en el entorno de un navegador web,
se puede utilizar para construir cualquier tipo de
proyecto.
Su sintaxis es muy parecida a la de C y C++
pero hasta ah llega el parecido. Java no es una
evolucin ni de C++ ni un C++ mejorado
Herramientas de desarrollo
Las herramientas de desarrollo de Java se conocen
como Java Development Kit(JDK).
Este conjunto de herramientas cuenta entre otros con:
Un compilador de lnea de comandos llamado javac.
La mquina virtual de Java con la que poder ejecutar
aplicaciones lamada java.
Una herramienta de documentacin javadoc.
Una herramienta para empaquetar proyectos jar.
Herramientas de ejecucin
Cuando un usuario slo necesita el ejecutar la
aplicacin desarrollada en Java, se requiere
Java Runtime Environment (JRE).
Por otro lado que para desarrollar nuevas
aplicaciones en dicho lenguaje es necesario
JDK, que adems del JRE (mnimo
imprescindible) incluye, entre otros, un
compilador para Java.
Maquina Virtual Java (JVM)
Una Mquina virtual Java (en ingls Java Virtual
Machine, JVM) es un programa nativo, es decir,
ejecutable en una plataforma especfica.
JVM es capaz de interpretar y ejecutar
instrucciones expresadas en un cdigo binario
especial (el Java bytecode), el cual es generado
por el compilador del lenguaje Java.
La JVM es una de las piezas fundamentales de la
plataforma Java, se sita en un nivel superior al
Hardware del sistema sobre el que se pretende
ejecutar la aplicacin, y este acta como un puente
que entiende tanto el bytecode, como el sistema
sobre el que se pretende ejecutar.
Maquina Virtual Java (JVM)
Cuando se escribe una aplicacin Java, se hace pensando
que ser ejecutada en una mquina virtual Java en concreto,
siendo sta la que en ltima instancia convierte de cdigo
bytecode a cdigo nativo del dispositivo final.
La gran ventaja de la mquina virtual java es aportar
portabilidad al lenguaje de manera que se han creado
diferentes mquinas virtuales java para diferentes
arquitecturas y as un programa compilado .class escrito en
un Windows puede ser interpretado en un entorno Linux.
Tan solo es necesario disponer de dicha mquina virtual para
dichos entornos. De ah el famoso axioma que sigue a Java,
"escrbelo una vez, ejectalo en cualquier parte", o "Write
once, run anywhere".
Estructura General de un Programa Java
public class Programa {
public static void main(String args[]) {
System.out.println("Hola Mundo!!!");
}
}
Caractersticas de la Clase
La primer caracterstica de un programa Java es que
este debe definir una Clase que lleve por nombre el
mismo nombre del archivo fuente.
Para definir una Clase se utiliza el vocablo class as
como un modificador de acceso, en este caso se
utiliza el modificador public.
Dentro de la definicin de la Clase se deben incluir
los respectivos mtodos que podrn ser invocados.
En el caso del Programa.java nicamente es definido
el mtodo main, dicho mtodo es el punto de entrada
al ejecutarse el programa (Clase).
Mtodo principal main
El mtodo principal main de una Clase Java es
inalterable, es este sentido inalterable se refiere a sus
caractersticas:
Siempre debe incluir los modificadores: public y static.
Nunca puede retornar un valor como resultado, por
ende, siempre debe indicar el valor void como retorno.
Su parmetro de entrada siempre ser un arreglo de
String's (String[]) el cual es tomado de la lnea de
comandos o una fuente alterna.
Representa el nico mecanismo automtico para
realizar tareas al invocarse una Clase.
Compilacin y Ejecucin
Para generar una Clase compilada (Byte-Code) se
utiliza el comando javac :
javac Programa.java
Lo anterior genera un archivo llamado programa.class;
para ejecutar este Byte-Code es empleado el comando
java:
java Programa
Al invocar el comando anterior ser ejecutada la Clase
Programa.class. Ntese que el comando java recibe el
nombre de la Clase sin la extensin .class.
Recomendaciones
En Java existen ciertas reglas de codificacin que son
comnmente utilizadas por los programadores:
Los nombre de las clases deben empezar por
mayscula.
Los atributos y mtodos de las clases deben
empezar por minsculas y si estn formadas por
varias palabras, se escriben sin espacios y la primera
letra de cada palabra en mayscula.
Las instancias de las clases siguen la misma
recomendacin que los mtodos y atributos.
Las constantes se escriben en maysculas.
Sintaxis de Java
Comentarios
En Java existen tres tipos de comentarios:
Comentarios de una solo lnea
// Esta es una lnea comentada.
Comentarios de bloques
/* Aqu empieza el bloque inicia y
aqu termina */
Comentarios de documentacin.
/** Los comentarios de documentacin se
comentan de este modo */
Documentacin
Java facilita etiquetas para los comentarios de
documentacin.
Las siguientes son las etiquetas que se pueden
utilizar en los comentarios de documentacin
de clases:
@author [Nombre y Apellidos del autor]
@version [Informacin de la versin]
Documentacin
Para comentarios de documentacin de
mtodos:
@param [nombreDelParametro] [Descripcin]
@return [Descripcin del parmetro devuelto]
Documentacin
/**
* Esta clase es mi primer programa Java
* @author Gerardo Beltrn Gutirrez
* @version 1.0, 15 de Abril de 2012
*/
public class Programa {
public static void main(String args[]) {
System.out.println("Hola Mundo!!!");
double z = suma(2,3);
System.out.println(z);
} // Fin funcion main
Documentacin
/**
* Funcin que retorna la suma de 2 nmeros.
* @param x Primer numero a sumar.
* @param y Segundo numero a sumar.
* @return El valor de la suma de x mas y
*/
public static double suma(double x, double y){
return x + y;
} // Fin funcin suma
} // Fin clase Programa
El conjunto de caracteres de Java
Los caracteres que pueden aparecer en un programa Java para
formar las constantes, variables, expresiones, etc., son:
Las letras maysculas y minsculas de la A(a) a la Z(z) de los
alfabetos internacionales (la y son vlidas)
Dgitos (0, 1, 2, ...)
Los caracteres ' _ ' '$'.
Los caracteres especiales y signos de puntuacin siguientes:
+ - * / = % & # ! ? ^ ~ \ | < > ( ) [ ] { } : ; . ,
Espacios en blanco: se llaman espacios en blanco a los
siguientes caracteres: espacio, tabulador, salto de lnea. Su
labor es la misma que la de un espacio en blanco: separar entre
elementos de un programa.
Identificadores
Los identificadores son los nombres que se asigna a
variables, constantes, clases, mtodos, paquetes, etc.
de un programa.
Caractersticas de un identificador Java:
Estn formados por letras y dgitos.
Pueden empezar por una letra o Los caracteres '_'
'$'.
No pueden contener ninguno de los caracteres
especiales.
No puede ser una palabra reservada de Java.
Palabras reservadas
abstract continue for new switch
assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
Separadores
En Java existen seis separadores distintos.
Los parntesis ():
Delimitan listas de parmetros.
Modifican la precedencia de una expresin.
Delimitan condiciones.
Indican el tipo en las operaciones de conversion.
Las llaves {}:
Definen bloques de cdigo.
Delimitan las lista de valores iniciales de los
arrays.
Separadores
Los corchetes []:
Declaran vectores y permiten acceder a sus
elementos.
El punto y coma ; :
Terminan instrucciones.
La coma ,:
Separan identificadores en declaraciones.
El punto .:
Acceden a los atributos y mtodos de una clase.
Tipos de datos
Los tipos de datos primitivos
Tipo Tamao Rango de Valores Valor
Inicial
Clase
Asociada
byte 1 -128 a 127 0 Byte
short 2 -32768 a 32767 0 Short
int 4 -2147483648 a
2147483647
0 Integer
long 8 -9223372036854775808
a
9223372036854775807
0 Long
float 4 3.4x10
-38 a
3.4x10
38
0.0 Float
double 8 1.8x10
-308 a
1.8x10
308
0.0 Double
char 2 \u0000 a \uFFFF \u0000 Character
boolean - true false false Boolean
void - - - Void
Conversin de tipos
La conversin o promocin automtica de tipos se
puede dar en dos casos:
Al evaluar un expresin los tipos ms
pequeos promocionan al mayor tipo presente
en la expresin.
Si a una variable de un tipo se le asigna un valor
de un tipo ms pequeo, este promociona al
tipo de la variable a la que se asigna.
Siempre se puede forzar el cambio de tipo
mediante el uso de casting.
Tipos de datos referencia
En Java los objetos, instancias de clases, se
manejan a travs de referencias.
Cuando se crea una nueva instancia de una
clase con el operador new este devuelve una
referencia al tipo de la clase.
Ejemplo:
Circulo unObjeto = new Circulo();
Tipos de datos referencia
El operador new() reserva espacio en memoria
para contener un objeto del tipo Circulo y devuelve
una referencia que se asigna a unObjeto.
A partir de aqu accedemos al objeto a travs de su
referencia. Es posible, por tanto, tener varias
referencias al mismo objeto.
Circulo unObjeto = new Circulo();
unObjeto.cambiarRadio(10);
Circulo otroObjeto = unObjeto;
otroObjeto.cambiarRadio(20);
mbito de las variables
El mbito de las variables est determinado por el
bloque de cdigo donde se declaran y todos los
bloques que estn anidados por debajo de este.
{ // Bloque externo
int miEntero = 1;
Circulo unObjeto = new Circulo();
{ // Bloque interno
int miEntero = 2; // Error ya est declarada
unObjeto = new Circulo(10); // Correcto
}
}
Operadores Comunes
Grupo
Operadores de igualdad
Operadores relacionales
Operadores condicionales
Operador de incremento
Operador de decremento
Operadores aritmticos
Operadores de asignacin
Simbolo
== !=
< > <= >=
&& || ?:
++
- -
+ - * / %
= *= /= %= += -= <<=
>>= &= ^= |=
Java Scanner para lectura de datos
La clase Scanner facilita la lectura de datos en
los programas Java.
1. Escribir el import
La clase Scanner se encuentra en el paquete
java.util por lo tanto se debe incluir al inicio del
programa la instruccin:
import java.util.Scanner;
Java Scanner para lectura de datos
2. Crear un objeto Scanner
Tenemos que crear un objeto de la clase Scanner
asociado al dispositivo de entrada.
Si el dispositivo de entrada es el teclado
escribiremos:
Scanner teclado = new Scanner(System.in);
Se ha creado el objeto teclado asociado al teclado
representado por System.in
Una vez hecho esto podemos leer datos por
teclado.
Java Scanner para lectura de datos
METODO DESCRIPCIN
nextXxx() Devuelve el siguiente token como un tipo
bsico. Xxx es el tipo. Por ejemplo,
nextInt() para leer un entero, nextDouble
para leer un double, etc.
next() Devuelve el siguiente token como un
String.
nextLine() Devuelve la lnea entera como un String.
Elimina el final \n del buffer
hasNext() Devuelve un boolean. Indica si existe o
no un siguiente token para leer.
hasNextXxx() Devuelve un boolean. Indica si existe o
no un siguiente token del tipo
especificado en Xxx, por ejemplo
hasNextDouble()
useDelimiter(String) Establece un nuevo delimitador de token.
Java Scanner para lectura de datos
Ejemplos de lectura:
Para leer podemos usar el mtodo nextXxx()
donde Xxx indica en tipo, por ejemplo nextInt()
para leer un entero, nextDouble() para leer un
double, etc.
Ejemplo de lectura por teclado de un nmero
entero:
int n;
System.out.print("Introduzca un nmero entero: ");
n = sc.nextInt();
Java Scanner para lectura de datos
Ejemplo de lectura de un nmero de tipo double:
double x;
System.out.print("Introduzca nmero de tipo double: ");
n = sc.nextDouble();
Ejemplo de lectura de una cadena de caracteres:
String s;
System.out.print("Introduzca texto: ");
s = sc.nextLine();
Java Scanner para lectura de datos
import java.util.Scanner;
public class Programa {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //crear un objeto Scanner
double radio, area, perimetro; // declaracin de variables
System.out.print("Introduzca el radio del Circulo: ");
radio = sc.nextDouble(); //leer un double
perimetro = 2*Math.PI*radio;
area = Math.PI*Math.pow(radio,2);
System.out.println("Perimetro: " + perimetro);
System.out.println("Area: " + area);
}
}
Ejercicios
1. Escriba un programa que dada la
temperatura en grados Celsius los muestre
en grados Fahrenheit.
1. Escriba un programa que dado la altura y el
radio de la base de una figura cilndrica
determine su volumen y superficie.

You might also like