Grazie per rapidità e la precisione della risposta.
Ancora non conosco il significato di "metodo statico" e "lavorazione per oggetti". Mi piacerebbe chiedertelo ma temo di andare fuori dal contesto del thread.
Ho pensato di implentare la prima soluzione, cioè istanzio l'oggetto Scanner nel main e passo il riferimento tastiera agli altri metodi. I warning così non compaiono più e non è stato neanche necessario usare il metodo tastiera.close();
Sotto il codice modificato seguendo la tua indicazione, grazie ancora andbin:


codice:
//import java.io.*;
//import java.util.InputMismatchException;
import java.util.Scanner;

public class prova1 {
    
    static int leggiInt(String messaggio, Scanner tastiera)//lettura numero anni di giacenza
    {
        
        System.out.print(messaggio);
        
        while ( !tastiera.hasNextInt() ) 
        {
           System.out.println("Inserire un *numero INTERO*");
           tastiera.nextLine();  //consumo dato sbagliato
        }
        
        //tastiera.close();
        return tastiera.nextInt();
    }

    
    
     public static double leggiDouble2(String messaggio, double minimo,  double massimo, Scanner tastiera)/*lettura somma iniziale o percentuale  interesse*/
    {
        double num=0;
        //Scanner tastiera = new Scanner(System.in);
        
        do//controllo tipo di input
        {
            System.out.println(messaggio);
            while (!tastiera.hasNextDouble()) 
            {
              System.out.println("Inserire un numero!");
              System.out.println(messaggio);
              tastiera.nextLine();
            }
            
            num = tastiera.nextDouble();
            
            if (num < minimo || num>massimo)/*verifica se il valore inserito ricade all'interno del range prefissato*/
              System.out.println("Valore non accettabile ("+minimo+"-"+massimo+")");  
        } while (num < minimo || num>massimo);
        
        //tastiera.close();
        return num;
    }
    

    
    public static void main(String[] args) {
    Scanner tastiera = new Scanner(System.in);
      // TODO Auto-generated method stub
     
     /* dati input
      *  somma iniziale
      *  percentuale di interesse annuale
      *  numero di anni deposito
      *       
      * */
      
      double sommaIniziale = 0;
      double sommaFinale = 0;
      double percentualeInteresse = 0;
      int anniDeposito = 0;
    
      
      sommaIniziale = leggiDouble2("Inserire somma iniziale: ", 100, 2000, tastiera);/*chiamata a leggiDouble2*/
       percentualeInteresse = leggiDouble2("Inserire percentuale annuale di  interesse: ", 2.5, 10.5, tastiera);/*chiamata a leggiDouble2*/
      anniDeposito = leggiInt("Durata in anni del deposito: ", tastiera);/*Chiamata a leggiInt*/
      
      sommaFinale = sommaIniziale;
      while(anniDeposito>0)
      {
          sommaFinale = sommaFinale+ sommaFinale/100 * percentualeInteresse;/*formula per il calcolo dell'interesse composto*/
          anniDeposito = anniDeposito -1;
      }
      
      System.out.println("Hai ora in banca: " + sommaFinale +" euro :)");
      
      System.out.println("Fine programma ...");
    }

}