Duvida - Método não está retornando um valor correto

Olá estou aprendendo programação orientado à objetos com o Java, e tem um exercício aonde tenho que utilizar um método que calcula e retorna o valor do desconto, só que ele está retornando sempre o desconto sempre como 0. Segue o código-fonte abaixo:

Passagem.java

/*

  • Passagem.java
  • Created on 6 de Abril de 2006, 22:50
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

/**
*

  • @author Ricardo
    */
    public class Passagem {
    private int numero, poltrona;
    private String tipo;
    private double valor;

    public Passagem() {
    }

    /** Construtor que Inicializa o Número e Valor da Passagem */
    public Passagem(int numero, double valor) {
    this.numero = numero;
    this.valor = valor;
    }

    /** Devolve o Número da Passagem */
    public int getNumero() {
    return numero;
    }

    /** Configura o Tipo de Passagem */
    public void setTipo(String tipo) {
    this.tipo = tipo.toUpperCase();
    }

    /** Devolve o Tipo de Passagem */
    public String getTipo() {
    return tipo;
    }

    /** Configura o Número da Poltrona */
    public void setPoltrona( int poltrona) {
    this.poltrona = poltrona;
    }

    /** Devolve o Número da Poltrona */
    public int getPoltrona() {
    return poltrona;
    }

    /** Devolve o Valor da Passagem */
    public double getValor() {
    return valor;
    }

    /** Calcula e Devolve o Valor de Desconto */
    public double obterValDesc() {
    double desconto = 0.0;

     if(getTipo() == "C")
         desconto = 0;
     else if(getTipo() == "E")
         desconto = getValor() * 0.15;
     else if(getTipo() == "I")
         desconto = getValor() * 0.25;
     
     return desconto;
    

    }

    /** Calcula e Devolve o Valor à Pagar */
    public double obterValPagar() {
    return getValor() - obterValDesc();
    }
    }

Aplicativo.java

/*

  • Aplicativo.java
  • Created on 6 de Abril de 2006, 23:18
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

/**
*

  • @author Ricardo
    */
    import java.util.Scanner;

public class Aplicativo {

public static void main(String[] args) {
    /** Cria um Scanner para Obter entrada de dados pelo Usuário */
    Scanner entrada = new Scanner(System.in);
    
    /** Cria um objeto da classe Passagem */ 
    Passagem passagem = new Passagem(154, 18.50);
    
    String tipo; /** Tipo da Passagem */
    int poltrona; /** Número da Poltrona */
    
    /** Entrada de Dados */
    System.out.print("Insira o Tipo da Passagem - (C) Comun, (E) Estudan" +
            "te ou (I) Idoso :");
    passagem.setTipo(tipo = entrada.nextLine());
    
    System.out.print("Insira o Número da Poltrona: ");
    passagem.setPoltrona(poltrona = entrada.nextInt());
    
    /** Exibe o Resultado */
    System.out.printf("\n\n- - - - - DADOS DA PASSAGEM - - - - -\n");
    System.out.printf("Número da Passagem: %d\n", passagem.getNumero());
    System.out.printf("Número da Poltrona: %d\n", passagem.getPoltrona());
    System.out.printf("Tipo: %s\n", passagem.getTipo());
    System.out.printf("Valor: R$ %,.2f\n", passagem.getValor());
    System.out.printf("Desconto: R$ %,.2f\n", passagem.obterValDesc());
    System.out.printf("Valor à Pagar: %,.2f\n", passagem.obterValPagar());
}

}

Olá.
String é um objeto e vc tem que usar o método equals() da String.
Se vc usar “==” e a referencia não for a mesma o resultado vai ser sempre falso.
Substitua nos ifs do seu método obterValDesc()

Valeu, pela ajuda… Vou fazer as mudanças aqui… Muito Obrigado