Documente Academic
Documente Profesional
Documente Cultură
INFORME: JAVA
DOCENTE:
HUARAZ PER
INTRODUCCIN
Java" tiene como objetivo conseguir que los desarrolladores de software que
sean nuevos en la tecnologa Java estn listos y en movimiento con la
programacin orientada a objetos (OOP) y el desarrollo de aplicaciones del
mundo real usando el lenguaje y la plataforma Java.
La primera parte es una introduccin paso a paso a la OOP con el uso del
lenguaje Java. El tutorial comienza con una visin general de la plataforma y el
lenguaje Java y le siguen las instrucciones para establecer un entorno de
desarrollo que consiste en un Kit de desarrollo de Java (JDK) y el Eclipse IDE.
Una vez que se le hayan presentado los componentes de su entorno de
desarrollo, comenzar a aprender la sintaxis Java bsica en un modo prctico.
Dado que antes hemos dicho que un objeto tambin ocupa un espacio de
memoria: en qu se parecen y en qu se diferencia un objeto de una
variable? Consideraremos que las variables son entidades elementales: un
nmero, un carcter, un valor verdadero o falso mientras que los objetos son
entidades complejas que pueden estar formadas por la agrupacin de muchas
variables y mtodos. Pero ambas cosas ocupan lo mismo: un espacio de
memoria (que puede ser ms o menos grande).
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 trmino Tipos de datos
para englobar a cualquier cosa que ocupa un espacio de memoria y que puede
ir tomando distintos valores o caractersticas durante la ejecucin del programa.
Es decir, en vez de hablar de tipos de variables o de tipos de objetos, hablaremos
simplemente de tipos de datos. Sin embargo, a veces coloquialmente no se
utiliza la terminologa de forma estricta: puedes encontrarte textos o pginas web
donde se habla de una variable en alusin a un objeto.
En Java diferenciamos 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 mtodos).
RANGO
NOMBRE TIPO OCUPA
APROXIMADO
TIPOS Tipos de la
String (cadenas de texto)
OBJETO biblioteca
Muchos otros (p.ej. Scanner,
estndar de
(con TreeSet, ArrayList)
Java
mtodos,
necesitan Tipos
una Cualquiera que se nos ocurra, por
definidos por
invocacin ejemplo Taxi, Autobus, Tranvia
el
para ser programador /
creados) usuario
Byte
Short
Tipos
envoltorio o Integer
wrapper
(Equivalentes Long
a los tipos Float
primitivos
pero como Double
objetos.)
Character
Boolean
En el primer ejemplo, extraemos como tipo primitivo int el valor entero contenido
en un campo del objeto Integer. En el segundo caso, la funcin read devuelve un
valor int, que se convierte en un char debido a la conversin (char), y el valor
resultante se almacena en la variable de tipo carcter c.
El tamao de los tipos que queremos convertir es muy importante. No todos los
tipos se convertirn de forma segura. Por ejemplo, al convertir un long en un int,
el compilador corta los 32 bits superiores del long (de 64 bits), de forma que
encajen en los 32 bits del int, con lo que si contienen informacin til, sta se
perder. Este tipo de conversiones que suponen prdida de informacin se
denominan conversiones no seguras y en general se tratan de evitar, aunque
de forma controlada pueden usarse puntualmente.
float Double
INTERPRETACIN
EXPRESIN
aprenderaprogramar.com
miString =
El booleano se transforma en String true o
miString.valueOf
false
(miBooleano)
miString =
El carcter (char) se transforma en String
miString.valueOf (miChar)
miString =
El double se transforma en String.
miString.valueOf
Igualmente aplicable a float, int, long.
(miDouble)
DECLARACIN DE VARIABLES EN JAVA
Existen 2 tipos de variables en Java:
Primitivas:
Puede ser cualquiera de los 8
tipos: char, boolean, byte, short, int, long, double o float. Una vez que un
primitivo ha sido declarado, el tipo primitivo no puede cambiar nunca, sin
embargo, su valor s.
Variables de Referencia:
Una variable de referencia es usada para referenciar (o acceder) a un objeto.
Una variable de referencia es declarada para ser un tipo especfico y el tipo no
puede ser nunca cambiado. Una variable de referencia puede ser usado para
referir a cualquier objeto del tipo declarado, o a un subtipo del tipo declarado
(un tipo compatible).
Declarando Primitivos y Rangos Primitivos
Las variables primitivas pueden ser declaradas como variables de clase (static),
variables de instancia, parmetros de mtodos, o variables locales. Vamos a
ver un ejemplo de estas declaraciones:
1
byte b;
2
boolean myBooleanPrimitive;
3
int x, y, z; //Declara 3 enteros primitivos
4
Para los tipos enteros la secuencia desde mas pequeos hasta mas grandes
es byte, short,int y long, y double es mas grande que float. Ambos, enteros
como tipos de puntos flotantes tienen signo, y esto afecta a sus rangos.
Primero vamos a echar un vistazo a los conceptos.
Cualquier tipo de nmero en Java estn hechos con un nmero concreto de 8-
bit bytes, y tienen signo, lo que quiere decir que pueden ser negativo o
positivos. El bit que est a la izquierda es usado para representar el signo,
donde un 0 significa negativo y un 1 significa positivo. El resto de bits
representa el valor, usando 2 notaciones complementarias.
byte 8 1 -27 27
Para los tipos boolean no hay rango; un boolean solo puede ser true o false.
El tipo char contiene un caracter singular de 16-bit Unicode.Aunque el ASCII
extendido conocido como ISO Latin-1 necesita solo 8 bits(256 caracteres
diferentes), se necesita un rango mayor para representar caracteres que se
encuentren en otras lenguas diferentes al Ingls.
Declarando Variables de Referencia
Las variables de referencia pueden ser declaradas como variables estticas,
variables de instancia, parametros de mtodos, o como variables locales.
Podemos declarar una o mas variables de referencia, del mismo tipo, en una
misma linea. Ahora vamos a ver un ejemplo de este tipo de variables:
1
Object o;
2
Dog myNewDogReferenceVariable;
3
String s1, s2, s3; //Declara 3 variables de tipo String
4
Variables de Instancia
Las variables de instancia son definidas dentro de la clase, pero fuera de
cualquier mtodo, y son solo inicializadas cuando la clase es instanciada. Las
variables de instancia son los campos que pertenecen a cada objeto nico. Por
ejemplo, vamos a ver un objeto Employee:
1
class Employee{
2
//define los campos (variables de instancia) para el Empleado
3
private String name;
4
private String title;
5
private String manager;
6
//Otro cdigo ira aqui
7
}
8
La clase Employee dice que de cada isntancia de Empleado se sabr su
nombre, el ttulo, y el manager. Cada instancia puede tener sus propios valores
nicos para sus 3 campos. field, variables de instancia, propiedades,
atributos, todo esto virtualmente se refiere a lo mismo.
Hay que tener en cuenta varias cosas sobre las variables de isntancia:
Pueden usar cualquiera de los 4 niveles de acceso.
Pueden ser marcados como final.
Pueden ser marcados como transient.
No pueden ser marcados como abstract.
No pueden ser marcados como synchronized.
No pueden ser marcados como strictfp.
No pueden ser marcados como native.
No pueden ser marcados como static, porque entonces se
convertiran en variables de la clase.
Esta tabla puede ayudarnos un poco a recordar:
public public
protected protected
private private
static static
transient
volatile
abstract
synchronized
strictfp
native
1
int[] key; //Corchetes antes del nombre (recomendado)int key[]; // Corchetes despues del no
2
1
Thread[] threads; //Recomendado
2
Thread threads []; //Legal pero menos legible
3
Tambin podemos declarar arrays multidimensionales, los cuales son al fin y al
cabo arrays de arrays.
1
String[][][] occupantName;
2
String[] managerName [];
3
El primer ejemplo es un array tridimensional (un array de arrays de arrays) y el
segundo es un array de dos dimensiones. En el segundo ejemplo tenemos
unos corchetes antes del nombre de la variable y otro despues del nombre.
Esto es legal para el compilador, pero tenemos que pensar de nuevo en que lo
legal no significa que est bien.
Variables Final
Declarar una variable con la palabra clave final hace que sea imposible
reinicializar la variable una vez que ha sido inicializada con un valor explcito.
Para las variables primitivas, esto significa que una vez que se le ha asignado
un valor, el valor no puede ser alterado. Esto es fcil hablando de las variables
primitivas, pero Qu pasa si tenemos una referencia a un objeto final? Una
variable de referencia marcada como final no puede ser reasignada para referir
a otro objeto diferente. La informacin dentro del objeto puede ser modificado,
pero la variable de referencia no puede ser cambiara. En otras palabras, una
referencia final aun permitir modificar el estado del objeto al que refiere, pero
no podemos modificar la variable de referencia para ahcer que se refiera a otro
objeto diferente. Por tanto, tenemos que grabar esto en nuestra cabeza: No
hay objetos finales, solo referencias final.
Variables Transient
Si marcamos una variable de instancia como transient, le estamos diciento a la
JVM que ignore o se salte a esta variable cuando intentemos serializar el objeto
que la contiene. La serializacin es una de las caractersticas mas importantes
de Java, ya que nos permite guardar/salvar un objeto escribiendo su estado en
un tipo especial de I/O stream. Con la serializacin podemos guardar un objeto
en un archivo, o o mandarlo a otro lugar donde se deserializa en otro sitio, en
otra JVM.
Variables volatile
El modificador volatile le dice a la JVM que un hilo que acceda a la variable
debe siempre reconciliar su propia copia privada de la variable con una copia
maestra en memoria. Esto es solo aplicable a variables de instancia.
Mtodos y Variables static
El modificador static es usado para crear variables y mtodos que existirn
independientemente de cualquier instancia creada de la clase. Todos los
miembros staticexisten antes de que se haga una nueva instancia de la clase,
y siempre habr una sola copia del miembro static sin tener en cuenta el
nmero de instancias de la clase. En otras palabras, todas las instancias de
una clase dada comparten el mismo valor para una variable staticdada.
Cosas que podemos marcar como static:
Mtodos.
Variables.
Una clase anidada dentro de otra clase, pero no dentro de un
mtodo.
Bloques de Inicializacin.
Cosas que no podemos marcar como static:
Constructores.
Clases (A no ser que estn anidadas).
Interfaces.
Mtodos locales dentro de las clases.
Mtodos internos de la clase y variables de instancia.
Variables locales.
MBITO DE VARIABLES EN JAVA
Definicin de mbito
En Java tenemos tres tipos de mbito que pueden aplicar a una variable:
Local
Global
Esttico
Veamos un fragmento de cdigo donde aparecen los tres tipos, antes de pasar
a explicar con un mnimo de detalle cada uno de ellos:
int variableGlobal;
int variableLocal;
Las variables de mbito local, o de bloque, son aquellas que slo pueden ser
accedidas desde el bloque de cdigo en el que han sido declaradas (que no
inicializadas).
int variableGlobal;
void miMetodo() {
void otroMetodo() {
Variables estticas
Las variables estticas, o de clase, son aquellas que pertenecen a la propia clase
donde han sido declaradas, y dependiendo del modificador de visibilidad usado
podran ser slo accedidas desde la propia clase en la que han sido declaradas:
void metodo() {
System.out.println("Valor de UnaClase.variableEstatica:" +
UnaClase.variableEstatica);
OPERADORES ARITMTICOS
Estos son los smbolos aritmticos bsicos: suma (+), resta (-), multiplicacin (*),
divisin (/) y potenciacin (^).
Si lo que quieres es realizar un clculo simple, puedes hacer algo como esto:
escribir 2010-12
escribir ( ( 20 - 5 ) * 2 / 30 ) + 1
Primero se calculan las operaciones que estn dentro de los parntesis. En este
ejemplo, primero se calcula 20 - 5; el resultado se multiplica por 2, luego se divide
por 30 y, por ltimo, se le suma 1. El resultado final es 2. Los parntesis pueden
tambin usarse en otros casos.
$a = 1
$b = 5
si (($a < 10) y ($b == 5)) y ($a < $b) {
escribir "hola"
}
Un ejemplo con o:
$n = 1
si ($n < 10) o ($n == 2) {
escribir "hola"
}
$n = 1
si no ($n == 3) {
escribir "hola"
} sino {
escribir "no hola ;-)"
}
OPERADORES DE COMPARACIN
Considera esta comparacin sencilla:
$respuesta = 10 > 3
Aqu, 10 se compara con 3 usando el operador ms grande que. El resultado
de esta operacin, es decir, el valor lgico verdadero, se guarda en
la variable $respuesta.
Todos los nmeros y variables (que contengan nmeros) pueden compararse
entre s usando operadores de comparacin.
$A ==
igual a la respuesta es verdadera si $A es igual a $B
$B
$A !=
no igual a la respuesta es verdadera si $A no es igual a $B
$B
Ten en cuenta que $A y $B tienen que ser nmeros o variables que contengan
nmeros.
Funciones:
Las funciones son un conjunto de lneas de cdigo (instrucciones),
encapsulados en un bloque, usualmente reciben parmetros, cuyos valores
utilizan para efectuar operaciones y adicionalmente retornan un valor. En otras
palabras, una funcin puede recibir parmetros o argumentos (algunas no
reciben nada), hace uso de dichos valores recibidos como sea necesario y
retorna un valor usando la instruccin return, si no retorna algo, entonces no es
una funcin. En java las funciones usan el modificador static.
Mtodos:
Los mtodos y las funciones en Java estn en capacidad de realizar las
mismas tareas, es decir, son funcionalmente idnticos, pero su diferencia
radica en la manera en que hacemos uso de uno u otro (el contexto). Un
mtodo tambin puede recibir valores, efectuar operaciones con estos y
retornar valores, sin embargo en mtodo est asociado a un objeto, SIEMPRE,
bsicamente un mtodo es una funcin que pertenece a un objeto o clase,
mientras que una funcin existe por s sola, sin necesidad de un objeto para ser
usada. Nota: Es aqu donde digo que en Java se debe hablar de mtodos y no
de funciones, pues en Java estamos siempre obligados a crear un objeto para
usar el mtodo. Para que sea una funcin esta debe ser static, para que no
requiera de un objeto para ser llamada.
Procedimientos:
Los procedimientos son bsicamente un conjunto de instrucciones que se
ejecutan sin retornar ningn valor, hay quienes dicen que un procedimiento no
recibe valores o argumentos, sin embargo en la definicin no hay nada que se
lo impida. En el contexto de Java un procedimiento es bsicamente un mtodo
cuyo tipo de retorno es void que no nos obliga a utilizar una sentencia return.
return valor;
}
Ejemplos de mtodos
Veamos algunos ejemplos prcticos de mtodos en Java.
Ejemplo 1:
Nota: Recuerda que en Java todo debe estar al interior de una clase (o
interfaz) y que debes tener al menos la funcin main.
Ejemplo 2:
Ejemplo 3:
Aqu ya tenemos una funcin (digo funcin y no mtodo porque es static) que
recibe dos parmetros, uno de ellos es usado en el condicional y el otro para
mostrar su valor por pantalla con System.out.println, esta vez retornamos
valores booleanos true o false y utilizamos el valor propio recibido en el
parmetro. Toma en cuenta que en esta ocasin nicamente usamos una
sentencia return, pues usar una al interior del if habra sido innecesario y el
resultado sera el mismo.
Hablemos un poco de los procedimientos
Los procedimientos son similares a las funciones, aunque ms resumidos.
Debido a que los procedimientos no retornan valores, no hacen uso de la
sentencia return para devolver valores y no tienen tipo especfico, slo void.
Veamos un ejemplo:
Ejemplo de procedimientos
De este ejemplo podemos ver que ya no se usa un tipo sino que se pone void,
indicando que no retorna valores, tambin podemos ver que un procedimiento
tambin puede recibir parmetros o argumentos.
nombre([valor,[valor]...]);
No todas las conversiones son posibles. Muchas veces por despiste los
programadores escriben instrucciones de conversin incoherentes como
miInteger = (int) miString;. El resultado en este caso es un error de tipo
Inconvertible types. Un uso tpico de valueOf es para convertir tipos
primitivos en objetos.