在 if 语句中创建的对象不起作用
Object created inside if statement not working
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 + "€");
}
}
您好。我制作了两个构造函数,一个没有参数并用 0 初始化 "poson",另一个接受用户输入并用它初始化 "poson"。
在 main() 中,如果用户在询问时未输入任何内容,我想调用第一个构造函数,因此我创建了一个字符串,当用户输入某些内容时,我将字符串转换为浮点数并调用第二个构造函数。
但是当我尝试使用 "koumparas.epistrofiYpoloipou();" 调用我的 "epistrofiYpoloipou" 函数时,我收到 "cannot find symbol" 错误。我在这里做错了什么?
如果您希望在该语句之外使用它,您应该在 if-else 语句之前声明 koumparas
变量:
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();
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 + "€");
}
}
您好。我制作了两个构造函数,一个没有参数并用 0 初始化 "poson",另一个接受用户输入并用它初始化 "poson"。
在 main() 中,如果用户在询问时未输入任何内容,我想调用第一个构造函数,因此我创建了一个字符串,当用户输入某些内容时,我将字符串转换为浮点数并调用第二个构造函数。
但是当我尝试使用 "koumparas.epistrofiYpoloipou();" 调用我的 "epistrofiYpoloipou" 函数时,我收到 "cannot find symbol" 错误。我在这里做错了什么?
如果您希望在该语句之外使用它,您应该在 if-else 语句之前声明 koumparas
变量:
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();