Eu procurei alguns casos, mas nenhum me ajudava, acredito que esse é diferente. A variável não foi iniciada em outra classe.
Classe principal
else if ("Multiplication".equals(choice)){
System.out.print("Enther the quantity of the numbers: ");
byte n = sc.nextByte();
int nulo = 0;
System.out.println();
System.out.println("Enter the numbers: ");
for (int i = 0; i<n; i++){
int numbers = sc.nextInt();
int alt = numbers;
int result = numbers * alt;
ent= new entities(result);
}
System.out.println();
System.out.print(ent);
}
Classe secundária
public class entities {
private int result;
public entities(int result){
this.result = result;
}
public int getResult(){
return result;
}
public void setResult(int result){
this.result = result;
}
}
Eu fiquei confuso, pois meu professor fez do mesmo jeito e deu certo (foi feito em outro exercício)
Como ele fez:
Classe secundária
private int number;
private String holder;
private double balance;
public Account(int number, String holder) {
this.number = number;
this.holder = holder;
}
public Account(int number, String holder, double initialDeposit) {
this.number = number;
this.holder = holder;
deposit(initialDeposit);
}
public int getNumber() {
return number;
}
public String getHolder() {
return holder;
}
public void setHolder(String holder) {
this.holder = holder;
}
public double getBalance() {
return balance;
}
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) {
balance -= amount + 5.0;
}
public String toString() {
return "Account "
+ number
+ ", Holder: "
+ holder
+ ", Balance: $ "
+ String.format("%.2f", balance);
}
Scanner sc = new Scanner(System.in);
Locale.setDefault(Locale.US);
entities ent;
System.out.print("U name: ");
String name = sc.next();
System.out.println();
System.out.println("Hi: " + name + "!");
System.out.println();
System.out.println("Sum, Subtraction, Multiplication, Division?");
String choice = sc.next();
System.out.println();
if ("Sum".equals(choice)){
System.out.print("Enther the quantity of the numbers: ");
byte n = sc.nextByte();
System.out.println();
int sum = 0;
System.out.println("Enter the numbers: ");
for (int i = 0; i<n; i++){
int numbers = sc.nextInt();
sum += numbers;
}
System.out.println();
System.out.print(sum);
}
else if ("Multiplication".equals(choice)){
System.out.print("Enther the quantity of the numbers: ");
byte n = sc.nextByte();
int nulo = 0;
System.out.println();
System.out.println("Enter the numbers: ");
for (int i = 0; i<n; i++){
int numbers = sc.nextInt();
int alt = numbers;
int result = numbers * alt;
ent= new entities(result);
}
System.out.println();
System.out.print(ent);
}
else if ("Multiplication".equals(choice)){
System.out.print("Enther the quantity of the numbers: ");
byte n = sc.nextByte();
int nulo = 0;
System.out.println();
System.out.println("Enter the numbers: ");
for (int i = 0; i<n; i++){
int numbers = sc.nextInt();
if (i == 0){
nulo += numbers;
}
else{
nulo -= numbers;
}
}
System.out.println();
System.out.print(nulo);
}
sc.close();
Acredito que você possa começar ajustando a sua classe entities renomeando para Entities.
O que pode estar ocorrendo também, é que a variável ent só está sendo inicializada dentro do else if. Tente inicializar antes das validações e utilizar ent.setResult(result) para setar o result no Objeto.
Isso que você postou não é uma classe, é só um trecho de código.
Todavia o seu problema está aqui:
else if ("Multiplication".equals(choice)) {
System.out.print("Enther the quantity of the numbers: ");
byte n = sc.nextByte();
int nulo = 0;
System.out.println();
System.out.println("Enter the numbers: ");
for (int i = 0; i < n; i++) {
int numbers = sc.nextInt();
int alt = numbers;
int result = numbers * alt;
ent = new entities(result); // você só inuicializa a variável ent aqui dentro desse for
}
System.out.println();
System.out.print(ent); // e aqui você manda imprimir a variável ent, mas se por ventura o código não entrar no for?
}
Variáveis locais precisam ser inicializadas antes de serem utilizadas.
E se Multiplication não for igual a choice, qual será o valor de ent? Você deve responder essa pergunta para o compilador, ou seja, inicializando a variável ent antes de usá-la.
Não, mas você tem que garantir que você só vá usar ou ler sua variável após ela ter sido inicializada.
Você pode inicializar ela com null na declaração por exemplo.
Sobrecarga é quando você tem métodos de mesmo nome mas com parâmetros diferentes.
System.out.println("Enter the numbers: ");
for (int i = 0; i<n; i++){
int numbers = sc.nextInt();
int alt = numbers;
int result = numbers * alt;
ent = new entities(result);
}
System.out.println();
System.out.print(ent);
}
A multiplicação de todos os números que o usuário escreveu
Será que o jeito como eu fiz o result interfere em algo?