Boa noite. Estou com um problema no código e não sei dizer o porquê de isso estar acontecendo. O código sempre dá como false quando ele vai checar se é verdadeiro ou falso. Segue o código abaixo :
import java.util.Scanner;
public class Produto {
private String nome,check;
private double preço;
private int quantidadeEstoque;
//CONSTRUTOR
public Produto(String nome, double preço, int quantidadeEstoque) {
this.nome = nome;
this.preço = preço;
this.quantidadeEstoque = quantidadeEstoque;
}
//METODOS
public void verificarEstoque() {
Scanner ler = new Scanner(System.in);
System.out.println("Verificando estoque, digite o nome do produto: ");
check = ler.nextLine();
if (check == nome) {
System.out.println(true);
}
else{
System.out.println(false);
}
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCheck() {
return check;
}
public void setCheck(String check) {
this.check = check;
}
public double getPreço() {
return preço;
}
public void setPreço(double preço) {
this.preço = preço;
}
public int getQuantidadeEstoque() {
return quantidadeEstoque;
}
public void setQuantidadeEstoque(int quantidadeEstoque) {
this.quantidadeEstoque = quantidadeEstoque;
}
}
Essa é a primeira parte do código, a segunda vem em seguida:
public class Principal {
public static void main(String[] args) {
Pagamento p1 = new Pagamento(); //Esta linha é referente a outra classe, pode ser ignorada.
Produto pr1 = new Produto ("Chocolate",3.40,5); //Aqui é onde ocorre o problema, mesmo digitando ou copiandoo primeiro parametro
//sempre dá como falso
pr1.verificarEstoque();
p1.selecionarTipoPagamento();//referente a outra classe, pode ser ignorada
p1.realizarPagamento(); //referente a outra classe, pode ser ignorada
}
}
Se alguém puder me explicar o porquê de estar dando esse erro eu agradeço.