在if语句无效的情况下创建的对象

时间:2017-11-12 15:02:30

标签: java object find symbols

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 个答案:

答案 0 :(得分:1)

如果您希望在该语句之外使用它,则应在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();