Não consigo fazer método sacar no programa

Olá estou com uma dificuldade em cirar um método boolean. Dá erro na parte do metodo sacar .
classe objeto :

package EXFIX1;
public class conta {
    private int numero;
    private String nome_titular;
    private double saldo;

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public String getNome_titular() {
        return nome_titular;
    }

    public void setNome_titular(String nome_titular) {
        this.nome_titular = nome_titular;
    }

    public double getSaldo() {
        return saldo;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
    
   public void depositar(double v1){
        this.saldo=this.saldo+v1;
     }
    
   public boolean sacar(double v2) {
		if(v2 > 0){
			saldo -= v2; 
			return true;
		}else{
			return false;
		}
                
	}
    }
**classe teste:**
package EXFIX1;
import java.util.Scanner;

public class teste_conta {
public static void main(String[] args) {
    Scanner scan= new Scanner(System.in);
        conta c = new conta();
        
        System.out.println("Digite o Numero : ");
        c.setNumero(scan.nextInt());
        System.out.println("Digite o Saldo : ");
        c.setSaldo(scan.nextDouble());
        System.out.println("Digite o Nome do titular : ");
        c.setNome_titular(scan.nextLine());
        System.out.println("Digite o valor do depósito: ");
        c.depositar(scan.nextDouble());
        System.out.println("Digite o valor para ser sacado : ");
        c.sacar(scan.nextDouble());
        if (c.sacar(scan.nextDouble)) {  
       System.out.println("Saque realizado com sucesso");  
    }  
    else {  
        System.out.println("Saldo insuficiene");  
    }
            
        
        
        
        
      
        System.out.println("Valor saquado : ");
        System.out.println("Numero : "+c.getNumero());
        System.out.println("Saldo : "+c.getSaldo());
        System.out.println("Nome : "+c.getNome_titular());
        
        
        
        
   
    }
    
}

Diagrama: CONTA


-numero : int
-nome_titular:String

  • saldo:double

+depositar(v1:double):void
+sacar(v2:double):boolean
+Métodos get(s) e set(s) dos campos

Não é que seu método sacar não funcione. O que está ocorrendo é que da forma como implementou, o método é executado duas vezes consecutivas, pois quando vc chama o sacar dentro do if, o método sc.nextDouble() novamente é chamado e a aplicação espera a entrada de um novo valor no console.

Como não é apresentada mensagem no console, causa a impressão de que não funcionou. Para ver como de fato o seu método sacar funciona, experimenta executar a aplicação e após entrar com o valor do saque, entre novamente com o mesmo ou outro valor e pressione enter. Vai ver que o fluxo da aplicação vai continuar normalmente.

Caso queira manter essa sua estrutura do método sacar, aconselho uma das duas abordagens:

// primeira abordagem

boolean sacou = c.sacar(scan.nextDouble());
if (sacou) {  
   System.out.println("Saque realizado com sucesso");  
}  
else {  
    System.out.println("Saldo insuficiene");  
}

// segunda abordagem

if (c.sacar(scan.nextDouble)) {  
   System.out.println("Saque realizado com sucesso");  
}  
else {  
    System.out.println("Saldo insuficiene");  
}