1
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를();" "기호를 찾을 수 없습니다"오류가 발생합니다. 여기서 내가 뭘 잘못하고 있니?
예이 작동합니다. 고맙습니다. 하지만 내가 왜 그렇게해야하는지 자세히 설명해 줄 수 있니? – user3120283
@ user3120283 변수는 변수가 선언 된 범위에서만 사용할 수 있습니다. '{}'는 범위입니다. 'if' 본문의 범위와'else' 본문의 범위의 두 범위에서'koumparas' 변수를 선언했습니다. 이러한 범위를 벗어나는 변수는 컴파일러가 알지 못합니다. – Eran
아, 알겠습니다. 그래, 나는 바보 같지 않아. 감사합니다 :) – user3120283