在java方法定义中遇到的问题

问题遇到的现象和发生背景

java中有关方法中定义变量的问题

问题相关代码,请勿粘贴截图

public class buy_ticket {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;

    System.out.println("请输入您购买机票的月份 : ");
    int month = sc.nextInt();

    System.out.println("请输入您购买机票的价格 : ");
    double money = sc.nextDouble();

    System.out.println("请输入您购买机票的类型(头等舱或经济舱) : ");
    String type = sc.next();

    double finish_ticket = buy_ticket1(month, type, money);

    System.out.println("您购买的机票经优惠为" + finish_ticket + "元");
}

public static double buy_ticket1 (int month , String type , double money){
    double finish_ticket = 0.0 ;

    if(month >= 5 && month <= 10){ //旺季
        if(type == "头等舱")  finish_ticket = money * 0.9 ; //头等舱9else if (type == "经济舱")    finish_ticket = money * 0.85 ; //经济舱85折
    }else if((month >= 1 && month <=4) || month == 11 || month == 12 ){ //淡季
        if(type == "头等舱")  finish_ticket = money * 0.7 ; //头等舱7else if (type == "经济舱")    finish_ticket = money * 0.65 ; //经济舱65折
    }
    return finish_ticket ;
}

}

运行结果及报错内容

最后结果为0.0

我的解答思路和尝试过的方法

直接对money进行操作再返回money就可行

我想要达到的结果

我想知道为什么finish_ticket一直是0.0 , 感谢各位解惑

if(type == "头等舱")这个有问题,在java里面,字符串比较有用equals,type.equals("头等舱")

你把所有的else if改为else试过吗
你这种写法完全是多余的
本来就只有两种情况,要么进if,要么进else
而你else里额外进行了判断,会导致你输入错误的数据会进不到分支里,比如多输入了个空格什么的