10. Métodos
eugeniaperez.es
10. Métodos
eugeniaperez.es
Los proyectos en Java dan soluciones aplicando la POO
Atributos/Propiedades
Métodos
10. Métodos
eugeniaperez.es
public int add(int num1, int num2){
return num1+num2;
}
10. Métodos
eugeniaperez.es
public final int add (int a, int b) throws Exception {
// method body
}
Modificador de acceso: default, public, private, protected
oculta al método fuera de la clase
10. Métodos
eugeniaperez.es
public final int add (int a, int b) throws Exception {
// method body
}
Modificador opcional: final, static, abstract, o combinados.
10. Métodos
eugeniaperez.es
public final int add (int a, int b) throws Exception {
// method body
}
Requerido: retorno del método. SIEMPRE indicamos algo ya sea un tipo simple, un objeto, array, etc, o no retorno: void
SI hay retorno, es decir, no es void -> return
10. Métodos
eugeniaperez.es
public final int add (int a, int b) throws Exception {
// method body
}
Requerido: el nombre del método o identificador. Siempre con minúscula, y si está formado por variadas palabras -> camelCase: addNumber, getManufacturer
10. Métodos
eugeniaperez.es
public final int add (int a, int b) throws Exception {
// method body
}
Opcional: parámetros del método. Cuando se llama al método, si se han especificado parámetros, se deben pasar valores de ESE tipo y el mismo número.
10. Métodos
eugeniaperez.es
public final int add (int a, int b) throws Exception {
// method body
}
Opcional: indica que el método puede lanzar una excepción (un error). Tendremos que capturarla (try-catch) o bien lanzarla a otra parte: throws.
Pueden lanzarse más de una excepción separadas por comas.
10. Métodos
eugeniaperez.es
public static void main (String args[]) throws IOException
{ //Metodo main...
}
10. Métodos
eugeniaperez.es
public class Alumno{
private String nombre;
private int edad;
public Alumno(String nombre, int edad){
this.nombre = nombre;
this.edad = edad;
}
public String mostrarAlumno(){
return "Mi nombre "+nombre+" y edad: "+edad;
}
public static String saludar(){
return "Hola";
}
}
public class App{
public static void main (String args[]) throws IOException {
Alumno mikel = new Alumno("Mikel", 19);
Alumno jon = new Alumno("Jon", 23);
Alumno miguel = new Alumno("Miguel", 20);
mikel.mostrarAlumno();
jon.mostrarAlumno();
miguel.mostrarAlumno();
//llamar a métodos estáticos
Alumno.saludar();
}
}
No hay una copia por objeto
Llamo a los métodos estáticos a través del nombre de la clase.
10. Métodos
eugeniaperez.es
Podemos acceder a ellos sin crear una instancia de la misma con new:
public class ClaseEstatica {
public static int contador= 0;
public ClaseEstatica () {
contador++;
}
public static void metodoEstatico() {
}
}
System.out.println(ClaseEstatica.contador);
ClaseEstatica.metodoEstatico();
10. Métodos
eugeniaperez.es
10. Métodos
Descarga el proyecto del repositorio ED.UT4.10Metodos :
https://eugenia_perez@bitbucket.org/eugenia_perez/ed.ut4.10metodos.git
eugeniaperez.es
10. Métodos
eugeniaperez.es
10. Métodos
eugeniaperez.es
10. Métodos
eugeniaperez.es
Las clases además de tener métodos estáticos también pueden tener atributos constantes: que no varían.
Es decir, una vez inicializados no se puede cambiar su valor.
private static final float EURO_PESETA = 166.386f;
Valor común a todos los objetos del tipo
El valor no puede ser modificado
10. Métodos
eugeniaperez.es
Una de las características importantes de la programación orientada a objetos es la sobrecarga de métodos. Esto se produce cuando tenemos métodos que tienen el mismo nombre con distintos parámetros.
10. Métodos
eugeniaperez.es
Esto es posible:
public int add (int a, int b) { }
public int add (Integer a, Integer b) { }
public float add (float a, float b) { }
public long add (long a, long b) { }
public void add (short a, short b) { }
public void add (double a, double b) throws Exception { }
Se pueden llamar igual siempre que se varíe su cabecera.
10. Métodos
eugeniaperez.es
Si tengo varios con el mismo nombre, ¿a cuál escoger...?
public int add (int a, int b) { }
public int add (Integer a, Integer b) { }
public float add (float a, float b) { }
public long add (long a, long b) { }
public void add (short a, short b) { }
public void add (double a, double b) throws Exception { }