Você está na página 1de 34

Introduccin al lenguaje

Parte 2
Prof. Hugo Hernndez

San Diego Julio 2017


Antes de continuar con la sintaxis de Java
vamos a recordar lo siguiente:
Java es un lenguaje fuertemente tipificado.
Es totalmente Orientado a Objetos.
La estructura de Java es en base a clases que
se organizan en paquetes
Fases para construir de un proyecto en Java
Estructura de una clase en Java

Clase (class):
Agrupacin de datos (variables o campos) y de funciones
(Mtodos) que operan sobre estos datos. Y sirve para crear
Paquete (package): Comentarios
un prototipo o la(import):
estructura de un objeto.
Agrupacin de clases queacceso
Importar Modificador de
Nombre de tienen
la clase una finalidad
Se relacionada.
utiliza cuando public/private/final
se requiere
Existe utilizar una
Su jerarqua
una identificador clase queque
de comienza
package fue se
definida
reflejanen otro paquete.
en nombres Predeterminadamente
en mayscula
compuestos como regla
separados Java
por un punto
Apertura
importa todas las clases
El identificador del de java.lang.
paquete, se nombra siguiendo las
Else
Si cuerpo
quiere de la Clase
importar puede
las contener:
mismas reglas de las variables o mtodos estticos de
variables
Declaracin
una de Atributos
clase se le agrega y/o reservada
la palabra variables estticas.
static ej.
Definicin de constructores.
import static java.lang.Math.*;
Definicin de mtodos.
Definicin de clases internas.
Cierre
Estructura de una Mtodo en Java

Mtodos (conocido como funciones):


Se encargan de realizar tareas u operaciones especificas
con los datos de la clase o los parmetros requeridos para
realizar la accin. Los metodosTipo representan adems, los
de respuesta
comportamientos oModificador
funcionalidades
DatoNombre de de laque
acceso
tipo Primitivo va poseer la
o Referenciado/
clase
clase. public/private/protected/static
void sigue
Su identificador
las regla Apertura
de las
variables
Lista de Parmetros
Son los datos que requiere el mtodo para Cierre
realizar su funcionalidad.
El cuerpo de un mtodo puede contener:
Cada parmetro se define como una
Declaracin
variable de variables locales.
Instrucciones
En Java todos losa parmetros
seguir. son por valor
Llamado a otros mtodos.
Sentencia de retorno (return), si este devuelve
un dato.
Estrucutra de un proyecto en Java

El compilador convierte
los archivos fuentes en
lenguaje mquina
(Bytecode)
Clases ya compiladas
que fueron importadas

Clases desarrolladas en
el proyecto nuevo

Archivo ejecutable para


la maquina virtual de
Java (JVM)
[Modificador de acceso] TipoDato idMetodo (ListaParmetos) {
// Cuerpo del mtodo
}

Estos mtodos retornan un solo resultado y dicho resultado puede ser de


tipo Primitivo o referenciado.

Un mtodo de este tipo, tiene adems de las instrucciones a seguir para


determinar el resultado a devolver, el uso de la sentencia return, que es la
forma para que dicho mtodo entregue el resultado al ser invocado.
//Estructura general de un mtodo con resultado
[Modificador de acceso] TipoDato idMetodo (ListaParmetos) {
// Cuerpo del mtodo

return valorDevolver;
}

Mtodo esttico y pblico que


retorna un resultado tipo int.
Parmetro pasado al mtodo en su llamado
Por ser un mtodo esttico no se requiere crear un
objeto de la clase para ser usado y su llamado es
directo por pertenecer a la misma clase
main combinatoria
Combinatoria = 10
args = null; n=5; m=3
n=5; m=3
factorial = 6
n=3
12
factorial = 2
n=5-3=2
n=2

factorial=120
factorial
n=5
[Modificador de acceso] TipoDato idMetodo (ListaParmetos) {
// Cuerpo del mtodo
}

Estos mtodos no retornan un resultado sino que estn orientados a


realizar una actividad o procedimiento y el tipo que se establece en su
cabecera es void.

Un mtodo de este tipo, hay que recordar que no entrega un resultado,


por este motivo, al ser invocados se hace en forma de una instruccin ms
a seguir.
//Estructura general de un mtodo tipo void
[Modificador de acceso] TipoDato idMetodo (ListaParmetos) {

// Cuerpo del mtodo

}
main
args = null;

mostrarCombinatoria
n=3;
n=3; m=5
n=5; m=3
m=5
//Imprimir
//Imprimir por
por consola
consola
Error de ingreso de datos
C(5,3)=10
La sobrecarga, es un aspecto de la programacin orientada a objeto
denominado polimorfismo.

Aunque no es tema de este momento, Java nos permite definir dos


mtodos con el mismo identificador, siempre y cuando ambos
mtodos tengan firmas diferente; es decir, la lista de parmetro no es
la misma en orden o cantidad

Ej. Poseen firmas


mismo distintas
nombre
Distinta
cantidad

Orden
Distinto
Unidimensional Bidimensional

Multidimensional
TipoDato idArreglo [];

// o

TipoDato [] idArreglo; // En este caso se pueden declarar ms de un arreglo

TipoDato [] arreglo1, arreglo2, , arregloN;

Ej.
Vectores tipo
primitivos
Debe coincidir con el
declarado del arreglo

idArreglo = new TipoDato [Longitud];


Nmero de elementos
Operadorquenew, direcciona
el arreglo puede almacenar
dinmicamente el arreglo
Valor entero o Variable tipo entera

Ej.
Almacena mximo 6
elementos tipo int
Almacena mximo 5
Almacena
elementos tipomximo
double 5
elementos tipo String
En Java los arreglos cuentan con la
propiedad length que devuelve el
nmero de elementos reservados.
Esta propiedad es til si se ha usado
- Es el proceso
todos losde almacenar
elementos en cada posicin del arreglo el valor
del arreglo.
a guardar.
- Las posiciones reservadas en un arreglos son desde la posicin 0
a longitud
Ej. - 1
- Asignar los valores del arreglo, normalmente requiere el uso de
estructuras cclicas. Recorre las posiciones
- 0 a longitud
En el caso de ser un arreglo de objetos, hay que realizar la - 1
construccin del objeto, si esteAlmacena
no se ha nmeros aleatorios
instanciado an.
- En el caso de los datos tipo String, noenseelrequiere
rango de el
[0 proceso
1) de
construccin del objeto
Hay una manera de declarar, crear y asignar los valores de un arreglo
en una Ej.
sola lnea.

TipoDato idArreglo[] = new TipoDato [Longitud]{VALOR1, VALOR2, };

Esta forma de declaracin se aplica cuando los valores del arreglo


simple son los mismos,
Ambosentre ejecuciones.
arreglos tendrn una longitud de
12 elementos
Ej.
Tambin se puede realizar el proceso en dos pasos.

a) Declarar y crear, para luego Asignar


TipoDato idArreglo[] = new TipoDato [Longitud];
// Proceso de asignacin

b) Declarar, para luego Crear y Inicializar


TipoDato idArreglo;
idArreglo = new TipoDato [Longitud]{VALOR1, VALOR2, };
Unidimensional

Hacen referencia a una direccin de memoria.


Para Asignar, modificar o Inicializar sus elementos, se debe accesar a
cada una de sus posiciones, utilizando un ndice.
Un ndice describe la ubicacin de un elementos del arreglo.
El primer elemento le corresponde la posicin cero (0).
Recorrer todos los elementos del arreglo requiere de un ciclo.
Asignar un arreglo a otro, lo que sucede es que ambos apuntan a la
misma direccin de memoria; es decir, modificar la informacin de
uno de ellos hace que los cambios lo visualice el otro.
Durante el paso
del mtodo

Finalizado
Como se explic previamente, todos los parmetros en Java son del
Ej. el mtodo
tipo por valor. Esto quiere decir que la informacin del argumento al
ser invocado, si dentro del subprograma su valor se modifica
Arreglo dicho
tipo double
valor no se mostrar al salir del mtodo.

Sin embargo hay que recordar que un arreglo se comporta como un


Objeto, lo que implica que lo que almacena es una direccin de
memoria. Al usar un arreglo como parmetro, es la direccin de
memoria quien pasa por valor, pero los elementos contenidos en l, de
ser este modificado dentro del subprograma, sus cambios salen al
finalizar la ejecucin del mtodo.

Ej.
Llamado
Como se explic previamente, un mtodo puede devolver tanto datos
primitivos como del tipo referenciados, como es el caso de los
arreglos.

Al momento de especificar el tipo de salida del mtodo, si este va a


retornar una arreglo, se expresa de igual manera a que se fuera a
declarar un arreglo.

[Modificador de acceso] TipoArreglo[] idMetodo (ListaParmetros) {}

En este caso, dentro de las instrucciones a seguir por el mtodo, va ha


existir la construccin de un arreglo temporal, que al final ser el
devuelto por el mtodo.

En realidad este tipo de mtodo lo que devuelve es una direccin de


memoria donde esta contenido los elementos del arreglo.
[Modificador de acceso] TipoArreglo[] idMetodo (ListaParmetros) {

TipoArreglo arreglo[] = new TipoArreglo [longitud];


Devuelve un
Arreglo tipo int

return arreglo;
Declaracin y Creacin del arreglo
}

Asignacin del arreglo


Arreglo a devolver
Creacin del Arreglo

Paso de
parmetros

Ej.
Llamado

Vector a antes
del llamado
Asignacin de los valores al arreglo
Arreglo a devolver

Durante el
Ej. llenado
Llamado

Vector a antes
del llamado Vector asignado
Bidimensional

En realidad en Java, un arreglo Bidimensional, representa una lista de


arreglos unidimensionales; es decir, es un vector de vectores.

Su declaracin y creacin es:

TipoDato idArreglo [][] = new TipoDato [longFila][longColumna];

La asignacin de sus elementos requiere de dos estructuras cclicas


Su declaracin por pasos (Caso a):
Nmero
Nmero
de Filas
de Columnas
// Declaracin Longitud
int[][] matrizEntera; Longitud de las Filas de
las Columnas
// Creacin de ambas dimensiones
Bidimensional matrizEntera = new int[2][3];
de la fila i
// Asignacin de sus datos
for(int i=0; i<matrizEntera.length; i++){
for (int j=0; j<matrizEntera[i].length; j++){
matrizEntera[i][j]= (int) Math.round(10*Math.random());
}
} Artificio matemtico para
generar un nmero aleatorio
entre 0 y 20
Su declaracin por pasos (Caso b):
Solo se establece el
// Declaracin Nmero de las Filas
int[][] matrizEntera; Establece el nmero
// Creacin de las Filas de Columnas de la
matrizEntera = new int[2][]; fila i
Bidimensional // Asignacin de sus datos
for(int i=0; i<matrizEntera.length; i++){
// Creacin de las Columnas de la fila i
matrizEntera[i] = new int [3];
for (int j=0; j<matrizEntera[i].length; j++){
matrizEntera[i][j]= (int) Math.round(10*Math.random());
}
}
Luego de asignado el primer elemento del vector palabras

Su declaracin por pasos (Caso c):


Sea el vectorAl
decrear el nmero de filas de la matriz
String:
String [] palabras = new String[] {Ejemplo, de, Matriz,
toCharArray()
Dentada};
Aspecto
Es un mtodo
// Declaracin de la matriz de de la matriz,
la clase String
char[][] letras; que devuelve un vector detodos
luego de asignados char
con todoslos
loselementos
caracteresde
delladato String
Bidimensional // Creacin de las Filas
letras = new char[palabras.length][]; matriz palabra
// Asignacin de sus filas por los datos de un vector
for(int i=0; i<letras.length; i++){
// Creacin de las Columnas
letras[i] = palabras[i].toCharArray();
}
Su declaracin y creacin:

// Declaracin, Creacin y Asignacin de los elementos


Bidimensional int[][] matrizEntera = new int[][]{{2, 4},
{7,-2},
{24,13,8}};

Matriz Dentada de 3 filas:


Las primeras dos con 2 elementos y la ltima con 3
Bidimensional

Hace referencia a una direccin de memoria de un vector de arreglos.


Para Asignar, modificar o Inicializar sus elementos, se debe accesar a
cada una de sus filas y columnas, utilizando dos ndices distintos.
Para ubicacin de un elementos del arreglo hay que establecer la fila
y columna. Si solo se establece la fila se est realizando una
referencia a un vector.
El primer elemento le corresponde la posicin de fila y columna cero
[0][0].
Recorrer todos los elementos del arreglo requiere de dos ciclos.