4. Francyne é uma confeiteira que precisa de um sistema para armazenar suas receitas de doces saudáveis. Cada receita é formada por vários ingredientes. Assim, cada ingrediente é formado por um nome de produto (String), uma medida (String), como gramas, mililitros ou unidades, e uma quantidade. O sistema para armazenar as receitas está sendo feito em Java.
A seguir, assinale a alternativa que contém o código correto para a classe Ingrediente, levando em consideração o total encapsulamento dos seus atributos.
A classe deve implementar o método toString para retornar uma String no seguinte formato:
Nome do Produto X Quantidade Unidade
Por exemplo:
Ovo X 1.0 unidade Farinha de Arroz X 400.0 gramas Leite de Coco X 500.0 ml
é a opção correta, pois declara os atributos da classe como private, impedindo o acesso direto a eles, o que é esperado do encapsulamento. O acesso aos atributos é feito por meio de métodos de acesso get e set para realizar a leitura e escrita do valor de cada atributo. O método toString foi implementado conforme solicitado.
está incorreto, pois não encapsula os atributos, uma vez que não declara os atributos como private, permitindo que eles possam ser acessados de modo direto, independentemente dos métodos get e set implementados.
está incorreto, pois, apesar de declarar os atributos como private, ele fornece apenas métodos get para os atributos, não permitindo que seus valores sejam alterados fora da classe Ingrediente.
está incorreto, pois, apesar de declarar os atributos como private, ele fornece apenas métodos set para os atributos, não permitindo que seus valores sejam lidos fora da classe Ingrediente.
O código
public class Ingrediente {
private String nomeProduto;
private String unidade;
private double quantidade;
public String getNomeProduto() {
return this.nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public String getUnidade() {
return this.unidade;
}
public void setUnidade(String unidade) {
this.unidade = unidade;
}
public double getQuantidade() {
return this.quantidade;
}
public void setQuantidade(double quantidade) {
this.quantidade = quantidade;
}
}
está incorreto, pois não implementa o método toString conforme solicitado.
Lista de comentários
Resposta: A
Explicação:
O código
public class Ingrediente {
private String nomeProduto;
private String unidade;
private double quantidade;
public String getNomeProduto() {
return this.nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public String getUnidade() {
return this.unidade;
}
public void setUnidade(String unidade) {
this.unidade = unidade;
}
public double getQuantidade() {
return this.quantidade;
}
public void setQuantidade(double quantidade) {
this.quantidade = quantidade;
}
public String toString() {
return nomeProduto + " X " + quantidade + " " + unidade;
}
}
é a opção correta, pois declara os atributos da classe como private, impedindo o acesso direto a eles, o que é esperado do encapsulamento. O acesso aos atributos é feito por meio de métodos de acesso get e set para realizar a leitura e escrita do valor de cada atributo. O método toString foi implementado conforme solicitado.
O código
public class Ingrediente {
String nomeProduto;
String unidade;
double quantidade;
public String getNomeProduto() {
return this.nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public String getUnidade() {
return this.unidade;
}
public void setUnidade(String unidade) {
this.unidade = unidade;
}
public double getQuantidade() {
return this.quantidade;
}
public void setQuantidade(double quantidade) {
this.quantidade = quantidade;
} public String toString() {
return nomeProduto + " X " + quantidade + " " + unidade;
}
}
está incorreto, pois não encapsula os atributos, uma vez que não declara os atributos como private, permitindo que eles possam ser acessados de modo direto, independentemente dos métodos get e set implementados.
O código
public class Ingrediente {
private String nomeProduto;
private String unidade;
private double quantidade;
public String getNomeProduto() {
return this.nomeProduto;
}
public String getUnidade() {
return this.unidade;
}
public double getQuantidade() {
return this.quantidade;
}
public String toString() {
return nomeProduto + " X " + quantidade + " " + unidade;
}
}
está incorreto, pois, apesar de declarar os atributos como private, ele fornece apenas métodos get para os atributos, não permitindo que seus valores sejam alterados fora da classe Ingrediente.
O código
public class Ingrediente {
private String nomeProduto;
private String unidade;
private double quantidade;
public String setNomeProduto() {
return this.nomeProduto;
}
public String setUnidade() {
return this.unidade;
}
public double setQuantidade() {
return this.quantidade;
}
public String toString() {
return nomeProduto + " X " + quantidade + " " + unidade;
}
}
está incorreto, pois, apesar de declarar os atributos como private, ele fornece apenas métodos set para os atributos, não permitindo que seus valores sejam lidos fora da classe Ingrediente.
O código
public class Ingrediente {
private String nomeProduto;
private String unidade;
private double quantidade;
public String getNomeProduto() {
return this.nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public String getUnidade() {
return this.unidade;
}
public void setUnidade(String unidade) {
this.unidade = unidade;
}
public double getQuantidade() {
return this.quantidade;
}
public void setQuantidade(double quantidade) {
this.quantidade = quantidade;
}
}
está incorreto, pois não implementa o método toString conforme solicitado.