簡體   English   中英

無法解析getter方法

[英]unable to resolve getter method

我正在學習Java作為初學者,並且正在嘗試創建一個程序來計算您的未來年齡。

我有以下問題:

錯誤:(14,64)Java:找不到符號符號:方法getYear()位置:類ageProgram

我似乎無法讓我的getter方法被聲明為公共方法。

ageProgram.java:

import java.util.Scanner;

public class ageProgram {
    public static void main(String[]args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("enter your birth year");
        int yearBirth = keyboard.nextInt();
        System.out.println("enter a (future) year");
        int yearTo = keyboard.nextInt();

        ageCalculator agecalculator = new ageCalculator(yearBirth, yearTo);

        if (yearBirth > yearTo) {
            System.out.println("You will be born in %s years", getYear());
        } else {
            System.out.println("You are %s years old", getYear());
        }
    }
}

ageCalculator.java:

public class ageCalculator {
        public ageCalculator(int yearBirth, int yearTo) {
            if (yearBirth > yearTo) {
                int year = (yearBirth - yearTo);
                year = year.toString();
            } else {
                int year = (yearTo - yearBirth);
                year = year.toString();
            }
        }
        public String getYear() {
            return year;
        }
        }

我不確定自己在做什么錯...我嘗試檢查關於stackoverflow的類似/其他問題的解決方案,但似乎沒有任何效果。

謝謝您的幫助!

您必須告訴您getYear方法所指的對象。 在您的示例中,您必須將getYear調用為agecalculator.getYear()並且一切都應該沒問題。

嘗試這個

ageProgram.java

import java.util.Scanner;

public class ageProgram {
    public static void main(String[]args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("enter your birth year");
        int yearBirth = keyboard.nextInt();
        System.out.println("enter a (future) year");
        int yearTo = keyboard.nextInt();

        ageCalculator agecalculator = new ageCalculator(yearBirth, yearTo);

        if (yearBirth > yearTo) {
            System.out.format("You will be born in %s years", agecalculator.getYear());
        } else {
            System.out.format("You are %s years old", agecalculator.getYear());
        }
    }
}

ageCalculator.java

public class ageCalculator {
    String yearText;
    public ageCalculator(int yearBirth, int yearTo) {
        if (yearBirth > yearTo) {
            int year = (yearBirth - yearTo);
            yearText = String.valueOf(year);
        } else {
            int year = (yearTo - yearBirth);
            yearText = String.valueOf(year);
        }
    }
    public String getYear() {
        return yearText;
    }
}

如果你不明白,我可以解釋

編輯:我一開始沒有得到,但以上答案也是正確的。 您應該使用agecalculater.getYear()來調用方法edit:您應該使用大寫字母開頭一個類名。 你可以使用

yearText = String.valueOf(yearBirth - yearTo);

代替

int year = (yearTo - yearBirth);
yearText = String.valueOf(year);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM