Sunteți pe pagina 1din 26

FACULTAD: CIENCIAS

ESCUELA PROFESIONAL: MATEMTICA E INFORMTICA

CURSO: LENGUAJE DE PROGRAMACIN II

INFORME: JAVA

DOCENTE:

INTEGRANTES: ROSAS CELMI ELVIS CHARLE

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.

La Parte 2 cubre funciones de lenguaje ms avanzadas, que incluyen


expresiones regulares, genricos, E/S y serializacin. Los ejemplos de
programacin en la Parte 2 se desarrollan en base al objeto Person que usted
comienza a desarrollar en la Parte

Cuando haya terminado la Parte 1, estar familiarizado con la sintaxis del


lenguaje Java bsico y podr escribir programas Java simples. Debera continuar
con "Introduccin a la programacin Java, parte 2: construcciones para
aplicaciones del mundo real" para desarrollarse sobre esta base.
TIPOS DE DATOS (VARIABLES) EN JAVA.

Los primeros lenguajes de programacin no usaban objetos, solo variables. Una


variable podramos decir que es un espacio de la memoria del ordenador a la
que asignamos un contenido que puede ser un valor numrico (slo nmeros,
con su valor de clculo) o de tipo carcter o cadena de caracteres (valor
alfanumrico que constar slo de texto o de texto mezclado con nmeros).
Como ejemplo podemos definir una variable a que contenga 32 y esto lo
escribimos como a = 32. Posteriormente podemos 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 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).

Veamos los tipos de datos en Java sobre un esquema de sntesis:


Esquema de sntesis de tipos de datos en Java

Este esquema no es necesario aprendrselo de memoria en todos sus detalles,


aunque s lo iremos memorizando poco a poco a medida que lo utilicemos, por
lo menos hasta tener en nuestra cabeza los nombres de todos los tipos primitivos
y envoltorio y sus caractersticas (si son objetos o no y su rango aproximado). A
continuacin, mostramos el mismo esquema en formato de tabla:

RANGO
NOMBRE TIPO OCUPA
APROXIMADO

byte Entero 1 byte -128 a 127

short Entero 2 bytes -32768 a 32767

int Entero 4 bytes 2*109


TIPOS
PRIMITIVOS long Entero 8 bytes Muy grande
(sin mtodos;
no son Decimal
float 4 bytes Muy grande
objetos; no simple
necesitan
Decimal
TIPOS una double 8 bytes Muy grande
doble
DE invocacin
DATOS para ser Carcter
EN char 2 bytes ---
creados) simple
JAVA
Valor
boolean true o 1 byte ---
false

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

Serie de elementos o formacin tipo


vector o matriz. Lo consideraremos
arrays
un objeto especial que carece de
mtodos.

Byte

Short
Tipos
envoltorio o Integer
wrapper
(Equivalentes Long
a los tipos Float
primitivos
pero como Double
objetos.)
Character

Boolean

CONVERSIN DE TIPOS DE DATOS EN JAVA

En Java es posible transformar el tipo de una variable u objeto en otro diferente


al original con el que fue declarado. Este proceso se denomina "conversin",
"moldeado" o "tipado" y es algo que debemos manejar con cuidado pues un
mal uso de la conversin de tipos es frecuente que d lugar a errores.

Una forma de realizar conversiones consiste en colocar el tipo destino entre


parntesis, a la izquierda del valor que queremos convertir de la forma
siguiente: Tipo Variable Nueva = (NuevoTipo) VariableAntigua;

Por ejemplo: int miNumero = (int) ObjetoInteger; char c =


(char)System.in.read();

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.

De forma general trataremos de atenernos a la norma de que "en las


conversiones debe evitarse la prdida de informacin". En la siguiente tabla
vemos conversiones que son seguras por no suponer prdida de informacin.

TIPO ORIGEN TIPO DESTINO

byte double, float, long, int, char, short

short double, float, long, int

char double, float, long, int

int double, float, long

long double, float

float Double

MTODO PARA CONVERSIN DE TIPOS


El mtodo valueOf es un mtodo sobrecargado aplicable a numerosas clases
de Java y que permite realizar conversiones de tipos. Veamos algunos
ejemplos de uso.

INTERPRETACIN
EXPRESIN
aprenderaprogramar.com

miInteger = Con i entero primitivo que se transforma en


miInteger.valueOf (i) Integer
miInteger =
miInteger.valueOf El valor del String se transforma en Integer
(miString)

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.

Tipo Bits Bytes Rango Mnimo Rango Mximo

byte 8 1 -27 27

short 16 2 -215 215-1

int 32 4 -231 231-1

long 64 8 -263 263-1

float 32 4 n/a n/a

double 64 8 n/a n/a

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:

Variables Locales Variables (no locales) Mtodos

final final final

public public

protected protected

private private

static static
transient

volatile

abstract

synchronized

strictfp

native

Variables locales (Automaticas/Stack/Mtodos)


Las variables locales son declaradas dentro de un mtodo. Esto significa que la
variable no solo se inicializa dentro del mtodo, sino que tambien se declara
dentro del mtodo. Al igual que empieza su vida en el mtodo, tambien se
destruye cuando el mtodo se ha completado. Las variables locales siempre
estn en el stack, no en el heap. Aunque el valor de la variable pueda ser
pasada dentro, por decirlo as, de otro mtodo que guarde el valor en una
variable de instancia, la variable pors misma solo vive dentro del mbito del
mtodo.
La declaracin de una variable local no puede usar la mayora de los
modificadores que pueden ser aplicados a las variables de instancia,
como public, transient, volatile, abstracto static, pero como ay dijimos con
anterioridad, pueden ser marcados como final. Antes de usar una variable
local, esta debe ser inicializada con algn valor. Por ejemplo:
1
class TestServer{
2
public void logIn() {
3
int count = 10;
4
}
5
}
6
Tpicamente, inicializaremos la variable local en una misma lnea en la cual la
declaremos, aunque podemos aun necesitar reinicializarla mas tarde en el
mtodo. La clave de todo esto es recordar que una variable local debe ser
inicializada antes de que se intente usar, ya que las variables locales no tienen
valores por defecto, al contrario que las variables de instancia.
No puede ser referenciada en cualquier lugar del cdigo fuera del mtodo en el
cual ha sido declarado. En el ejemplo anterior sera imposible referenciar la
variable count en cualquier lugar de la clase excepto dentro del mbito del
mtodo logIn(). A continuacin vemos un ejemlo de cdigo que es ilegal:
{sourcecode language=java]
class TestServer{
public void logIn(){
int count = 10;
}
public void doSomething(int i){
count = i; //No compilar!, No se tiene acceso a count fuera del mtodo logIn()
}
}
[/sourcecode]
Es posible declarar una variable local con el mismo nombre que una variable
de instancia, a esto se le conoce como shadowing:
1
class TestServer{
2
int count = 9; //Se declara una variable de instancia llamada count
3
public void logIn(){
4
int count = 10; //Declara una variable local llamada count
5
System.out.println("La variable local count es " + count);
6
}
7
public void count(){
8
System.out.println("La variable de instancia es " + count);
9
}
10
public static void main (String[] args){
11
new TestServer().logIn();
12
new TestServer().count();
13
}
14
}
15
El anterior cdigo generar una salida como la siguiente:
1
La variable local count es 10
2
La variable de instancia es 9
3
Declaracin de Arrays
En Java, los arrays son objetos que almacenan multiples variables de un
mismo tipo, o variables que son subclases del mismo tipo. Los arrays pueden
mantener ya sean variables primitivas o referencias a objetos, pero por s
mismo siempre sern objetos localizados en elheap, aunque el array sea
declarado para mantener elementos primitivos.
Los arrays son declarados poniendo el tipo de dato de los elementos que
guardar (Objetos o primitivos), seguido de corchetes cerrados y seguido por el
identificados.

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

El mbito de una variable define su alcance de uso, o lo que es lo mismo, en que


secciones de cdigo una variable estar disponible. Fuera de este mbito, una
variable no podr ser accedida (no existe).
Tipos 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:

public class MiClase {

static int variableEstatica;

int variableGlobal;

void miMetodo(int parametro) {

int variableLocal;

// parametro tambin es local dentro del mtodo

Variables de mbito local

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).

void miMetodo(int parametro) {

int variableLocal = new Random().nextInt();

System.out.println("El valor de variableLocal es: " + variableLocal);

System.out.println("EL valor de parmetro es: " + parametro);


En el ejemplo anterior, tenemos dos variables de mbito
local, parmetro y variable Local. Ambas pueden ser accedidas desde cualquier
parte del mtodo mi Mtodo (), ya que es el bloque donde han sido declaradas.
Otro ejemplo de variable de mbito local es aquella declarada dentro de un bucle
o un bloque condicional (en cuyo caso slo existe dentro de ste). En resumen,
la variable pertenece al bloque donde ha sido declarada.

Variables de mbito global

Las variables de mbito global, o de instancia, son aquellas que pertenecen a


cada instancia concreta de la clase donde han sido declaradas, y dependiendo
del modificador de visibilidad usado (ms tarde hablaremos sobre sto) podran
ser slo accedidas desde la propia instancia a la que pertenecen:

public class MiClase {

int variableGlobal;

void miMetodo() {

System.out.println("Valor de variableGlobal: " +


variableGlobal);

public class OtraClase {

void otroMetodo() {

// Error de compilacin, no es visible

System.out.println("Valor de variableGlobal: " +


variableGlobal);

Cada instancia de la clase MiClase tendr su propia copia de la


variable variableGlobal, y modificar el valor de dicha variable en una instancia en
concreto no afectar a los valores de la misma variable en el resto de (posibles)
instancias.

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:

public class UnaClase {

public static int variableEstatica;

public class OtraClase {

void metodo() {

System.out.println("Valor de UnaClase.variableEstatica:" +
UnaClase.variableEstatica);

Una Clase compartir una nica copia de la variable variable


Global independientemente del nmero de inicializaciones que hagamos de la
clase, y el ltimo valor de dicha variable ser el que est vigente en cada
momento. Al ser una variable de clase, repito, no es necesario crear ninguna
instancia de dicha clase para poder usarla (no es necesario invocar a new).

OPERADORES ARITMTICOS, LGICOS Y DE COMPARACIN

Aunque el ttulo de esta seccin parezca complejo, vers como el contenido no


es tan difcil como parece.

OPERADORES ARITMTICOS

Estos son los smbolos aritmticos bsicos: suma (+), resta (-), multiplicacin (*),
divisin (/) y potenciacin (^).

Este es un ejemplo de cmo usar los operadores aritmticos en TurtleScript:


$sumar = 1 + 1
$restar = 20 - 5
$multiplicar = 15 * 2
$dividir = 30 / 30
$potencia = 2 ^ 2
Los valores resultantes de estas operaciones aritmticos son asignados a
variables. Puedes ver los valores resultantes en el inspector.

Si lo que quieres es realizar un clculo simple, puedes hacer algo como esto:

escribir 2010-12

Ahora veamos un ejemplo con parntesis:

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.

KTurtle tambin tiene otras funciones aritmticas en forma de rdenes. Echa un


vistazo a las siguientes rdenes, eso s, teniendo en cuenta que se trata de
operaciones
avanzadas: redondear, aleatorio, raz, pi, sen, cos, tan, arcsen, arccos, arctan.

OPERADORES LGICOS (VERDADERO/FALSO)

Mientras que los operadores aritmticos se usan principalmente con nmeros,


los operadores lgicos estn pensados para usarse con valores
lgicos (verdadero y falso). Hay solo tres operadores lgicos: y, o y no. El
siguiente cdigo de TurtleScript muestra cmo usarlos:

$y_1_1 = verdadero y verdadero # -> verdadero


$y_1_0 = verdadero y falso # -> falso
$y_0_1 = falso y verdadero # -> falso
$y_0_0 = falso y falso # -> falso

$o_1_1 = verdadero o verdadero # -> verdadero


$o_1_0 = verdadero o falso # -> verdadero
$o_0_1 = falso o verdadero # -> verdadero
$o_0_0 = falso o falso # -> falso

$no_1 = no verdadero # -> falso


$no_0 = no falso # -> verdadero
Puedes ver los valores resultantes en el inspector, aunque tambin se
proporcionan pequeos comentarios al final de las lneas. Y resulta
en verdadero solo si ambas partes sonverdaderos. O resulta en verdadero si
una de las dos partes es verdadera.
Y no transforma verdadero en falso yfalso en verdadero.

Los operadores lgicos aparecen resaltados en rosa.

UNOS EJEMPLOS MS COMPLEJOS:

Considera el siguiente ejemplo con and:

$a = 1
$b = 5
si (($a < 10) y ($b == 5)) y ($a < $b) {
escribir "hola"
}

En este cdigo de TurtleScript, el resultado de los tres operadores de


comparacin estn agrupados mediante los operadores y. Esto significa que los
tres resultados tienen que ser iguales a verdadero para que se escriba la
palabra hola.

Un ejemplo con o:

$n = 1
si ($n < 10) o ($n == 2) {
escribir "hola"
}

En este cdigo de TurtleScript, la parte izquierda del operador o es verdadera,


mientras que la derecha es falsa. Ya que una de las dos partes del
operador o es verdadera, el resultado del operador o tambin lo es. Esto
quiere decir que se escribe la palabra hola.

Finalmente, un ejemplo con no, que transforma verdadero en falso y


falso en verdadero. Fjate:

$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.

Estos son todos los posibles operadores de comparacin:

TABLA 4.1. TIPOS DE PREGUNTAS

$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

la respuesta es verdadera si $A es mayor


$A > $B mayor que
que $B

la respuesta es verdadera si $A es menor


$A < $B menor que
que $B

$A >= mayor o igual la respuesta es verdadera si $A es mayor o igual


$B que que $B

$A <= menor o igual la respuesta es verdadera si $A es menor o igual


$B que que B

Ten en cuenta que $A y $B tienen que ser nmeros o variables que contengan
nmeros.

MTODOS EN JAVA, FUNCIONES Y PROCEDIMIENTOS. CMO


HACERLOS Y USARLOS

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.

Crear un mtodo en Java


La sintaxis para declarar una funcin es muy simple, veamos:

[acceso] [modificador] tipo nombreFuncion([tipo nombreArgumento,[tipo


nombreArgumento]...])
{
/*
* Bloque de instrucciones
*/

return valor;
}

EL primer componente corresponde al modificador de acceso, que puede ser


public o private, ste es opcional, si no ponemos nada, se asume el
modificador de acceso por defecto, el segundo componente es
el modificador que puede ser final o static (o ambas), tambin es opcional.
Recordemos que un mtodo o funcin siempre retorna algo, por lo tanto es
obligatorio declararle un tipo (el tercer componente de la sintaxis anterior),
puede ser entero (int), booleano (boolean), o cualquiera que consideremos,
inclusive tipos complejos, luego debemos darle un nombre a dicha funcin,
para poder identificarla y llamarla (invocarla) durante la ejecucin, despus al
interior de parntesis, podemos poner los argumentos o parmetros. Luego de
la definicin de la "firma" del mtodo, se define su funcionamiento entre llaves;
todo lo que est dentro de las llaves es parte del cuerpo del mtodo y ste se
ejecuta hasta llegar a una instruccin return.
Acerca de los argumentos o parmetros
Hay algunos detalles respecto a los argumentos de un mtodo, veamos:

o Una funcin, un mtodo o un procedimiento pueden tener una cantidad


cualquier de parmetros, es decir pueden tener cero, uno, tres, diez, cien o ms
parmetros. Aunque habitualmente no suelen tener ms de 4 o 5.
o Si una funcin tiene ms de un parmetro cada uno de ellos debe ir separado
por una coma.
o Los argumentos de una funcin tambin tienen un tipo y un nombre que los
identifica. El tipo del argumento puede ser cualquiera y no tiene relacin con el
tipo del mtodo.
o Al recibir un argumento nada nos obliga a hacer uso de ste al interior del
mtodo, sin embargo para qu recibirlo si no lo vamos a usar.
o En Java los parmetros que podemos recibir pueden ser por valor por
referencia, esto implica que si modificamos los valores recibidos al interior del
mtodo, estos pueden mantener sus cambios o no despus de ejecutada el
mtodo (esto lo explico con ms detalla enseguida).

Consejos acerca de return


Debes tener en cuenta dos cosas importantes con la sentencia return:

o Cualquier instruccin que se encuentre despus de la ejecucin de return NO


ser ejecutada. Es comn encontrar funciones con mltiples sentencias return
al interior de condicionales, pero una vez que el cdigo ejecuta una sentencia
return lo que haya de all hacia abajo no se ejecutar.
o El tipo del valor que se retorna en una funcin debe coincidir con el del tipo
declarado a la funcin, es decir si se declara int, el valor retornado debe ser un
nmero entero.
o En el caso de los procedimientos (void) podemos usar la sentencia return pero
sin ningn tupo de valor, slo la usaramos como una manera de terminar la
ejecucin del procedimiento.

Veamos algunos ejemplos.

Ejemplos de mtodos
Veamos algunos ejemplos prcticos de mtodos en Java.

Ejemplo 1:

int metodoEntero()//Funcin sin parmetros


{
int suma = 5+5;
return suma; //Ac termina la ejecucin del mtodo
//return 5+5;//Este return nunca se ejecutar
//Intenta intercambiar la lnea 3 con la 5
//int x = 10; //Esta lnea nunca se ejecutar
}
Como puedes ver es un ejemplo sencillo, es un mtodo llamado metodoEntero,
si ejecutas esto, la funcin te retornar el valor de suma que es 10 (5+5). Las
lneas posteriores no se ejecutarn nunca, aunque no generan error alguno, no
tienen utilidad. Puedes notar que para este caso es lo mismo haber escrito
return suma que escribir return 5+5. Ambas lneas funcionan equivalentemente.

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:

public String metodoString(int n)//mtodo con un parmetro


{
if(n == 0)//Usamos el parmetro en la funcin
{
return "a"; //Si n es cero retorna a
//Notar que de aqu para abajo no se ejecuta nada ms
}
return "x";//Este return slo se ejecuta cuando n NO es cero
}

Aqu creamos un mtodo pblico, hicimos uso de mltiples sentencia return y


aprovechamos la caracterstica de que al ser ejecutadas finalizan
inmediatamente la ejecucin de la parte restante del mtodo. De este modo
podemos asegurar que la funcin retornar "a" nicamente cuando el valor del
parmetro n sea cero y retornar un "x" cuando dicho valor no sea cero.

Ejemplo 3:

static boolean metodoBoolean(boolean n, String mensaje)//Mtodo con dos


parmetros
{
if(n)//Usamos el parmetro en el mtodo
{
System.out.println(mensaje);//Mostramos el mensaje
}
return n; //Usamos el parmetro como valor a retornar
}

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

void procedimiento(int n, String nombre) //Notar el void


{
if(n > 0 && !nombre.equals(""))//usamos los dos parmetros
{
System.out.println("hola " + nombre);
return; //Si no ponemos este return se mostrara hola y luego
adis
}
//Tambin podramos usar un else en vez del return
System.out.println("adios");
}

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.

Recuerda: Los procedimientos tambin pueden usar la sentencia return, pero


no con un valor. En los procedimientos el return slo se utiliza para finalizar all
la ejecucin.

Invocando funciones y procedimientos en Java


Ya hemos visto cmo hacer funciones en Java, cmo se crean y cmo se
ejecutan, ahora veamos cmo usar un mtodo, funcin o procedimiento.

nombre([valor,[valor]...]);

Como puedes notar es bastante sencillo invocar o llamar funciones en Java,


slo necesitas el nombre del mtodo, funcin o procedimiento y enviarle el
valor de los parmetros. Hay que hacer algunas salvedades respecto a esto.

Detalles para invocar mtodos funciones y procedimientos

o No importa si se trata de un mtodo en Java o de una funcin o de un mtodo,


slo debes ocuparte de enviar los parmetros de la forma correcta para
invocarlos.
o El nombre debe coincidir exactamente al momento de invocar, pues es la nica
forma de identificarlo.
o El orden de los parmetros y el tipo debe coincidir. Hay que ser cuidadosos al
momento de enviar los parmetros, debemos hacerlo en el mismo orden en el
que fueron declarados y deben ser del mismo tipo (nmero, texto u otros).
o Cada parmetro enviado tambin va separado por comas.
o Si una funcin no recibe parmetros, simplemente no ponemos nada al interior
de los parntesis, pero SIEMPRE debemos poner los parntesis.
o Invocar una funcin sigue siendo una sentencia comn y corriente en Java, as
que sta debe finalizar con ';' como siempre.
o El valor retornado por un mtodo o funcin puede ser asignado a una variable
del mismo tipo, pero no podemos hacer esto con un procedimiento, pues no
retornan valor alguno.
o Una funcin puede llamar a otra dentro de s misma o incluso puede ser enviada
como parmetro a otra (mira el siguiente ejemplo).

Ejemplos de uso de funciones


En el siguiente cdigo vamos a hacer un llamado a algunas de las funciones y
al procedimiento, que declaramos anteriormente.

public class Ejemplos


{
public static void main(String args[])//Siempre necesitamos un main
{
metodoEntero(); //Llamando a un mtodo sin argumentos

boolean respuesta = metodoBoolean(true, "hola"); //Asignando


el valor retornado a una variable

procedimiento(0, "Juan");//Invocando el procedimiento

//Usando una funcin como parmetro


procedimiento(metodoBoolean(1, "hola"), "Juan");
//Lo que retorne metodoBoolean (en este caso 1) se enva al
procedimiento
}
}

En el cdigo anterior podemos ver cmo todo ha sido invocado al interior la


funcin main (la funcin principal), esto nos demuestra que podemos hacer uso
de funciones al interior de otras. Tambin vemos cmo se asigna el valor
retornado por el mtodo a la variable 'respuesta' y finalmente, antes del return,
vemos cmo hemos usado el valor retornado por 'funcionBool' como parmetro
del procedimiento.
CONCLUSIN
El uso adecuado del mbito de las variables es tan importante que,
adems de producir cdigo ms limpio, legible y mantenerle, puede
ahorrarnos muchas (muchas) horas de depuracin intentando corregir
errores que son consecuencia de su mal uso. El ajuste de la usabilidad y
la visibilidad siguen un camino paralelo, as que intenta recorrerlos sin
perder de vista los dems.

No todos los tipos se pueden convertir de esta manera. Como


alternativa, existen otras formas para realizar conversiones.

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.

S-ar putea să vă placă și