31/01/12
Introducción
a
la
Programación
Métodos
Curso
de
Programación
en
Java
Luis
Guerra
[email protected]
Enero
2012
Introducción
! La
mayor
parte
de
los
programas
que
resuelven
problemas
reales
conFenen
un
alto
número
de
líneas
de
código
! Cientos
de
miles
de
líneas
! La
experiencia
ha
demostrado
que
la
mejor
manera
para
desarrollar
y
mantener
programas
de
cierta
complejidad
es
el
construirlos
a
parFr
de
piezas
pequeñas
o
módulos
! Técnica
divide
y
vencerás
Módulos
Objetos
y
Métodos
! En
Java
hay
tres
Fpos
de
módulos:
! Métodos
! Clases
! Paquetes
! El
API
(ApplicaFon
Programming
Interface)
de
Java
ofrece
varios
módulos
! Un
objeto
está
compuesto
de:
! Estado:
! variables
de
instancia
! variables
de
clase
! comparFdas
(ya
se
verán)
! Métodos
! de
instancia
! de
clase
Introducción
I
Introducción
II
! Los
métodos
describen
los
mecanismos
para
realizar
las
acciones/tareas
de
los
objetos
! Aísla
al
usuario
(del
objeto)
de
las
tareas
complejas
que
realiza
! En
otros
lenguajes:
funciones
y
procedimientos
! Para
promocionar
la
reusabilidad
cada
método
debería
estar
limitado
a
realizar
un
tarea
muy
concreta
! El
nombre
de
esa
tarea
Fene
que
expresar
claramente
la
acción
del
método
! Un
método
que
realiza
una
única
tarea
es
más
sencillo
de
comprobar
y
de
depurar
que
uno
que
realice
varias
1
Introducción
III
Introducción
IV
! Permiten
modularizar
un
programa
separando
sus
tareas
en
unidades
auto
contenidas
! Ventajas:
! Divide
y
vencerás
! ReuFlización
! Evitar
duplicidad
! Facilita
la
depuración
y
el
mantenimiento
! En
Java
todo
método
Fene
que
pertenecer
a
una
clase
! El
programa
principal
main
es
un
método
de
una
clase
¿Como
funciona
un
programa
orientado
a
objetos?
No
hay
Buscar
el
café
café
Comprar
café
Café
Cocina
Tienda
! Como
ya
se
vio
en
el
capítulo
de
introducción,
los
objetos
interactúan
por
medio
de
mensajes
! Un
objeto
le
pide
a
otro
que
realice
una
acción
(ejecuta
el
método
X)
! El
objeto
llamado
realiza
la
acción
pudiendo
devolver
un
resultado
! puede
no
devolver
nada
! El
objeto
llamante
no
conoce
los
detalles
de
cómo
se
lleva
a
cabo
la
acción
Esquema
general
Argumentos
a1
...
an
a2
Método
Valor de
retorno
Método(a1, ..., an)
resultado
Puede
no
devolver
un
resultado
Declaración
Uso
de
un
método
(static) tipo identificador (parámetros ...) {
...
sentencias
...
}
Normalmente,
se
suelen
uFlizar
nombres
compuestos
de
varias
palabras
y
se
escribe
en
mayúsculas
la
primera
letra
de
cada
palabra
exceptuando
la
primera
Ej:
preguntarNombreUsuario
! Se
invoca
proporcionando
valores
a
los
argumentos
de
llamada
! El
valor
de
retorno
se
devuelve
por
medio
de
un
return
! Se
admiten
métodos
que
no
devuelvan
nada
! Fpo
void
como
Fpo
de
retorno
! Sólo
con
este
Fpo
no
es
obligatorio
usar
la
sentencia
return
31/01/12
2
31/01/12
Ejemplo
Paso
de
parámetros
!
static int suma(int a, int b) {!
int resultado;!
static void imprimeHola() {!
System.out.println(“hola”);!
resultado = a+b;!
return resultado;!
}!
!
}!
!
// Llamadas!
int resultado = suma(2,3);!
int d=4, f=5;!
suma(d,f);!
imprimeHola();!
! Paso
por
valor:
! La
función
trabaja
con
una
copia
del
valor
del
argumento
! Se
considera
un
parámetro
de
entrada
! Las
operaciones
dentro
de
la
función
no
afectan
a
las
variables
de
entrada
Ejemplo
Ejemplo
static int incremento (int a) {!
a = a + 1;!
return a;!
}!
public static void main(String[] args) {!
int b = 0;!
incremento(b); //Cuánto vale b una vez se ejecute el
método!
}!
!
0
static int incremento (int a) {!
a = a + 1;!
return a;!
}!
public static void main(String[] args) {!
int a = 0, b=1;!
incremento(a); //Cuánto vale a una vez se ejecute el
método!
}!
!
0
1
Ejemplo
Bloque
1
static int incremento (int a) {!
a = a + 1;!
return a;!
}!
public static void main(String[] args) {!
int a = 0, b=1;!
incremento(a); //Cuánto vale a una vez se ejecute el
método!
}!
!
0
1
! Un
conjunto
de
sentencias
contenidas
dentro
de
un
par
de
llaves
! Ya
hemos
visto
varios:
int suma(int a, int b) {!
int resultado;!
resultado = a+b;!
return resultado;!
}!
if (condicion) {!
...!
}!
for(int i=0; i<10; i++) {!
...!
}!
while(condicion) {!
...!
}!
3
31/01/12
Variables
locales
! Las
variables
declaradas
dentro
de
un
método
! Su
ámbito
es
la
región
del
método
que
va
desde
su
declaración
al
final
del
bloque
! No
pueden
usarse
antes
de
haber
sido
declaradas
! Se
crean
cuando
el
programa
llega
a
su
declaración
! Las
variables
de
Fpos
básicos
se
destruyen
al
finalizar
el
bloque
! No
se
inicializan
por
defecto
! Si
se
intentan
usar
sin
haber
sido
inicializadas
-‐>
ERROR
Ejemplos
static void imprime(int c) {!
System.out.println(c);!
}!
public static void main(String[] args) {!
imprime(a); !
int a = 0, b=1;!
if (a==0) {!
int c=2;!
imprime(a);!
}!
c=4;!
} !
Arrays
como
parámetros
¿Qué
es
un
array?
! Recordatorio:
! ¿Qué
es
un
array?
! ¿Qué
almacena
una
variable
del
Fpo
array?
! ¿Qué
se
copiará
al
pasarlo
como
parámetro?
! ¿Qué
pasa
con
un
array
creado
en
una
función
y
devuelto
como
valor
de
retorno?
int[] valores1 = {10,20,30,40};!
int[] valores2 = {50,60,70,80};!
valores1 = valores2;!
10
20
30
40
4
50
60
70
80
4
Arrays
como
parámetros
II
Arrays
como
parámetros
III
! Recordatorio:
! ¿Qué
es
un
array?
! ¿Qué
almacena
una
variable
del
Fpo
array?
! ¿Qué
se
copiará
al
pasarlo
como
parámetro?
! ¿Qué
pasa
con
un
array
creado
en
una
función
y
devuelto
como
valor
de
retorno?
! Lo
que
se
copia
es
la
referencia
no
el
objeto
! Permite
que
se
puedan
modificar
en
métodos
disFntos
a
donde
hayan
sido
declarados
! Los
objetos
no
son
Fpos
básicos
y
no
se
destruyen
cuando
finaliza
su
ámbito
! sólo
cuando
no
pueden
ser
referenciados
! recolector
de
basura
! El
parámetro
se
declara
igual
que
una
variable
local
! Fpo[]
nombre
4
31/01/12
Ejemplo
Ejemplo
static void modifica(int[] unarray) {!
static void modifica(int[] unarray) {!
unarray[0] = 1;!
}!
public static void main(String[] args) {!
int[] valores1 = {10,20,30,40};!
modifica(valores1);!
}!
unarray[0] = 1;!
}!
public static void main(String[] args) {!
int[] valores1 = {10,20,30,40};!
modifica(valores1);!
}!
10
20
30
40
4
1
20
30
40
4
Ejemplo
Tipos
de
métodos
static int[] creaArray() {!
int[] unarray = {10,20,30,40};!
return unarray;!
}!
public static void main(String[] args) {!
int[] valores1 = creaArray();!
}!
10
20
30
40
4
! En
Java
no
existen
funciones
! Todos
son
métodos
! Tienen
que
estar
incluidos
en
una
clase
! Dos
Fpos
de
métodos
! De
instancia
! De
clase
Métodos
de
instancia
Ejemplo
! Tiene
que
exis4r
un
objeto
para
poder
llamarlos
! Se
uFliza
la
variable
que
almacena
la
referencia
de
objeto
para
la
invocación
!
Ej:
!
!
scanner.nextInt();
System.out.println(2);
! Pueden
acceder
a
las
variables
de
instancia
tipo identificador (parámetros ...) {
...
sentencias
...
}
public class Perro{!
String nombre;!
Perro(String nom) {!
this.nombre = nom;!
}!
void ladrar() {!
public static void main(String[] args) {!
Perro miPerro = new Perro(“Pancho”);!
miPerro.ladrar();!
}!
System
Comentarios de: Curso de Programación en Java - Introducción a la Programación Métodos (0)
No hay comentarios