ed-b1 instalación y uso de entornos

UT 4: el lenguaje java

10. Métodos

eugeniaperez.es

UT 4: JAVA

10. Métodos

eugeniaperez.es

Los proyectos en Java dan soluciones aplicando la POO

Atributos/Propiedades

Métodos

UT 4: JAVA

10. Métodos

eugeniaperez.es

MÉTODOS

  • Son fragmentos de código -> nombre
  • Realizan una tarea concreta
  • Son reutilizados desde otras partes

 

public int add(int num1, int num2){
    return num1+num2;
}

UT 4: JAVA

10. Métodos

eugeniaperez.es

cabecera de MÉTODOS o signatura

 

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

UT 4: JAVA

10. Métodos

eugeniaperez.es

cabecera de MÉTODOS o signatura

 

public final int add (int a, int b) throws Exception {
	// method body
}

Modificador opcional: final, static, abstract, o combinados.

UT 4: JAVA

10. Métodos

eugeniaperez.es

cabecera de MÉTODOS o signatura

 

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

UT 4: JAVA

10. Métodos

eugeniaperez.es

cabecera de MÉTODOS o signatura

 

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

UT 4: JAVA

10. Métodos

eugeniaperez.es

cabecera de MÉTODOS o signatura

 

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. 

  • Tener varios parámetros
  • No tener, se mantienen ()
  • parámetros variables: varargs

UT 4: JAVA

10. Métodos

eugeniaperez.es

cabecera de MÉTODOS o signatura

 

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.

UT 4: JAVA

10. Métodos

eugeniaperez.es

miembros estáticos

 

  • Una clase puede tener atributos y métodos estáticos, también llamados métodos de clase.
  • NO hay una copia por instancia, sino solo UNA copia. 
  • No necesitamos crear una instancia para llamarlos.
public static void main (String args[]) throws IOException
{ //Metodo main...
}

UT 4: JAVA

10. Métodos

eugeniaperez.es

miembros estáticos o de clase

 

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.

UT 4: JAVA

10. Métodos

eugeniaperez.es

miembros estáticos o de clase

 

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();

UT 4: JAVA

10. Métodos

eugeniaperez.es

¿cuándo utilizo métodos estáticos o cuándo métodos no estáticos?

  • Por norma general y si estoy programando con objetos, serán no estáticos.
  • Los estáticos son solo para métodos de prueba, o métodos que comparten la MISMA información para todos los objetos de esa clase.

 

 

10. Métodos

 

Descarga el proyecto del repositorio  ED.UT4.10Metodos :

https://eugenia_perez@bitbucket.org/eugenia_perez/ed.ut4.10metodos.git

  • Usuario: entornos_desarrollo
  • Password: Entornos

 

eugeniaperez.es

UT 4: el lenguaje java

UT 4: el lenguaje java

10. Métodos

eugeniaperez.es

 PARA EL 23 D.

  • EJERCICIO 10 DE CLASES (UT 9 - PÁG. 85) ENTREGA
  • TEST DE UT9. CLASES
  •  

 

UT 4: el lenguaje java

10. Métodos

eugeniaperez.es

REALIZA LOS EJERCICIOS DE LA PÁG. 93:

  • EJERCICIO 1

  • EJERCICIO 2

  •  

 

UT 4: el lenguaje java

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

UT 4: el lenguaje java

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. 

UT 4: el lenguaje java

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.

  • Distinto número de parámetros
  • O de distinto tipo

UT 4: el lenguaje java

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 { }
  1. El método que más se ajuste por tipos: int
  2. El método que tenga primitivos más grandes: long