Índice del curso de Java JSE

  1. Introducción
  2. Eclipse
  3. Resolución de problemas
  4. Clases
  5. Objetos
  6. Hola mundo
  7. Comentarios
  8. Variables
  9. Constantes
  10. Operadores
  11. Lectura de datos
  12. Estructuras de control
    1. Estructuras de control: if
    2. Switch
    3. Estructura de control: bucle for
    4. Estructura de control: bucle while
  13. Métodos
  14. Modificador static
  15. Arrays
  16. Ejercicio – juego del ahorcado
  17. Ejercicio - tres en raya
  18. Modificadores de acceso
  19. Constructores
  20. Herencia
  21. Polimorfismo
  22. Sobrecarga y sobreescritura
  23. Abstracción
  24. Interfaces
  25. Clases internas
  26. Garbage Collector
  27. String performance
  28. Encapsulamiento
  29. Contenedores
  30. Genéricos
  31. Ejercicio alta, baja, modificación y consulta en un ArrayList
  32. Ejercicio – juego de la oca
  33. Recorrer un map
  34. Sobreescritura del equals
  35. Sobreescritura del hashcode
  36. Sobreescritura del compareTo
  37. Excepciones
  38. Enumeraciones
  39. Hilos

Métodos

Son funciones aplicadas a objetos.

Una función es un subprograma que realiza una tarea específica y devuelve un valor

Métodos para trabajo con cadenas

String nombre = "Rodolfo";
System.out.println(nombre.substring(0, 3));
System.out.println(nombre.indexOf('d'));
System.out.println(nombre.toUpperCase());
System.out.println(nombre.toLowerCase());
System.out.println(nombre.length());

Output:
Rod
2
RODOLFO
rodolfo
7

Ejercicio con cadenas de texto

  1. En el texto "Dábale arroz a la zorra el Abad", contar el número de veces que aparece la letra "a". Usaremos una estructura "if" con substring e equals que irá dentro de un bucle for.

Método que no devuelve nada (void), sin parámetros

public class MetodoNoDevuelveNada {

	public void saludar(){
		System.out.println("Buenas tardes!");
	}

	public static void main(String[] args) {
		MetodoNoDevuelveNada metodoNoDevuelveNada;
		metodoNoDevuelveNada = new MetodoNoDevuelveNada();
		metodoNoDevuelveNada.saludar();
		
		//La siguiente línea daría error porque el método no devuelve nada
		//String valorDevuelto = MetodoNoDevuelveNada.saludar();
	}
}

Método que no devuelve nada, con parámetros

public class Main {

	public void saludar(String nombre){
		System.out.println("Buenas tardes " + nombre + "!");
	}
	public static void main(String[] args) {
		Main main = new Main();
		main.saludar("Juan");
		//La siguiente línea daría error porque el método no devuelve nada
		//String valorDevuelto = b_metodoNoDevuelveNada.saludar("Juan");
	}
}

Ejercicios con funciones

Resolveremos los siguientes ejercicios definiendo una función con parámetros de entrada y que siempre devolverá un valor que procesaremos en la clase main,

  1. Crear y llamar a un método que recibe un número y calcula su cubo.
  2. Crear y llamar a un método que recibe la velocidad en Km/hora y la muestre en metros/hora.
  3. Crear y llamar a un método que recibe el ancho y el alto de un rectángulo y calcula su perímetro.
    Perímetro: 2*ancho + 2*alto
    Cuando una función recibe varios parámetros, estos irán separados por coma. Ejemplo:
    calculaPerimetro(int alto, int ancho);
  4. Crear y llamar a un método que recibe la base y la altura de un triángulo y calcula su área.
    Area triángulo = base*altura/2
  5. Utilizando estas dos funciones:
    • calculaPerimetro(int radio);
      Perímetro de la circunferencia = 2*PI*Radio
    • calculaArea(int radio);
      Area de la circunferencia = PI*Radio2
    Leer por teclado el valor del radio de una circunferencia y mostrar por pantalla su perímetro y area.
  6. Repetir el ejercicio de la calculadora utilizando funciones para las operaciones aritméticas. Debemos declarar 4 funciones con dos parámetros de entrada cada una: suma(int a, int b), resta(int a, int b,), multiplicacion(int a, int b), division(int a, int b).

Métodos que devuelven algo

Nativos de Javaint valor = lector.nextInt();

//Esta línea da error porque no podemos almacenar en una variable lo que devuelve el método println, ya que no devuelve nada	
String valor2 = System.out.println("hola");
Desarrollados por nosotrospublic class Main {
	public String saludar(String parametroEntrada){
		String respuesta = "Buenas tardes " + parametroEntrada;
		return respuesta;
	}
	public static void main(String[] args) {
		Main main = new Main();
		String valorDevuelto = main.saludar("Juan");
		System.out.println(valorDevuelto);
	}
}

Ejercicios return

Repetir los 6 ejercicios anteriores, pero añadiendo un return a las funciones y utilizando el valor que estas devuelven.

Ejercicio coste viaje

A lo largo de este ejercicio, deberemos programar 3 funciones:

  • costeHotel()
  • costeAvion().
  • costeAlquilerCoche().

Ejercicio - coste hotel

Además del public static void main que te paso más bajo, crea una función llamada costeHotel() que recibe como parámetro el número de noches. La función debe devolver cuanto es necesario pagar teniendo en cuenta que cada noche cuesta 140 euros.

public static void main (String [] args){
	Scanner scanner = new Scanner(System.in);
	System.out.println("Introduzca el número de noches: ");
	int numNoches = scanner.nextInt();

	CosteViaje costeViaje = new CosteViaje();
	int resultado1 = costeViaje.costeHotel(numNoches);
	int sumaCostes = resultado1;
	System.out.println("Coste total: " + sumaCostes);
}

Ejercicio – Coste avión

La función costeAvion() tiene como parámetro de entrada el nombre de la ciudad. El coste corresponderá al indicado en la siguiente tabla.

Los costes por ciudad son los siguientes:
"Oviedo": 15
"Tokyo": 700
"Madrid": 90
"Barcelona": 90

Ejercicio – Coste alquiler coche

La función costeAlquilerCoche() tiene como parámetro de entrada el número de noches y devolverá un coste en función de dicho parámetro, teniendo los siguientes aspectos en cuenta:

  • Cada día de alquiler cuesta 40 €.
  • Si alquilas un coche por 3 días o más, obtienes un descuento de 20€ sobre el total.
  • Si alquilas un coche por 7 días o más, obtienes un descuento de 50€ sobre el total (no acumulable con los 20€ de haber alquilado por más de 3 días).

Colección de ejercicios

Ver colección de ejercicios.

Ver el código fuente de los ejercicios.

Paso de parámetros

  • Por referencia: cuando paso la dirección del dato.
  • Por valor: cuando paso el dato.

En Java se pasa siempre por valor, pero:

  • cuando paso un objeto, paso una dirección de memoria.
  • cuando paso una primitiva, paso directamente su valor.

public class PasoParametros {
    public static void modificaLetra(char letraParam) {
        letraParam = 'A';
    }
    public static void modificaStringBuffer(StringBuffer stringBufferParam) {
        stringBufferParam.append("C");
    }
    public static void modificaLetras(char[] letrasParam) {
        letrasParam[0] = 'A';
    }
    public static void modificaPalabras(String[] palabrasParam) {
        palabrasParam[0] = "B";
    }
    public static void modificaString(String stringParam) {
        stringParam = "B";
    }
    public static void main(String[] args) {
        char letra = 'a';
        StringBuffer stringBuffer = new StringBuffer("c");
        char[] letras = {'a'};
        String[]palabras = {"b"};
        String string = "b";

        modificaLetra(letra);
        modificaStringBuffer(stringBuffer);
        modificaLetras(letras);
        modificaPalabras(palabras);
        modificaString(string);

        System.out.println("La nueva letra vale: " + letra);
        System.out.println("El nuevo stringBuffer vale: " + stringBuffer);
        System.out.println("El nuevo letras vale: " + letras[0]);
        System.out.println("El nuevo palabras vale: " + palabras[0]);
       
        System.out.println("El nuevo String vale: " + string);
    }
}

Output:
La nueva letra vale: a
El nuevo stringBuffer vale: cC
El nuevo letras vale: A
El nuevo palabras vale: B
El nuevo String vale: b

diagrama ejercicio Java diagrama ejercicio Java
icono de mandar un mailPreguntame lo que quieras!
Pablo Monteserín
contacta conmigoPablo Monteserín

El servicio de resolución de dudas técnicas es sólo para los usuarios premium. Si tienes cualquier otra duda, usa el formulario de contacto. ¡Gracias!