Объект создан внутри, если оператор не работает
import java.util.Scanner;
public class Piggy {
float poson;
public Piggy() {
this.poson = 0;
System.out.println("Dimiourgithike koumparas me diathesimo ipoloipo: " + poson + "€");
}
public Piggy(float poso) {
if (poso >= 0) {
this.poson = poso;
System.out.println("Dimiourgithike koumparas me diathesimo ipoloipo: " + poso + "€");
} else {
this.poson = 0;
System.out.println("Dimiourgithike koumparas me diathesimo ipoloipo: " + poso + "€");
}
}
public float epistrofiYpoloipou() {
return poson;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String arxiko_poso;
System.out.println("Doste to arxiko poso pou tha periexei o koumparas: ");
arxiko_poso = input.nextLine();
if (arxiko_poso.equals("")) {
Piggy koumparas = new Piggy();
} else {
float init_value = Float.parseFloat(arxiko_poso);
Piggy koumparas = new Piggy(init_value);
}
float upoloipo = koumparas.epistrofiYpoloipou();
System.out.println("To upoloipo einai: " + upoloipo + "€");
}
}
Привет. Я сделал два конструктора, один не имеет аргументов и инициализирует "poson" с 0, а другой принимает пользовательский ввод и инициализирует "poson" с этим.
В main() я хочу вызвать первый конструктор, если пользователь ничего не вводит при запросе, поэтому я создал строку, а когда пользователь вводит что-то, я конвертирую строку в float и вызываю второй конструктор.
Но потом, когда я пытаюсь вызвать мою функцию "epistrofiYpoloipou", используя "koumparas.epistrofiYpoloipou();" я получаю ошибку "не могу найти символ". Что я здесь не так делаю?
1 ответ
Решение
Вы должны объявить koumparas
переменная перед оператором if-else, если вы хотите использовать его вне этого оператора:
Piggy koumparas;
if (arxiko_poso.equals("")) {
koumparas = new Piggy();
} else {
float init_value = Float.parseFloat(arxiko_poso);
koumparas = new Piggy(init_value);
}
float upoloipo = koumparas.epistrofiYpoloipou();