簡體   English   中英

如何在不同的 Java 文件中調用方法?

[英]How to call a method in a different Java File?

因此,我對 Java 很陌生,並且學習了一些編碼。 現在,對於這門課程,我有一本包含理論和練習的書。 現在我被困在某個練習上,但是這本書沒有提供這個練習的理論或答案。

所以我有這個 Class 文件( DateFirstTry.java )和一個運行程序的主文件。

public class DateFirstTry {

    public String month;
    public int day;
    public int year;
    
    public void writeOutput()
    {
        System.out.println(month + " " + day + ", " + year);
    }
    
    public void makeItNewYears()
    {
        month = "January";
        day = 1;
    }
   
    public void yellIfNewYears()
    {
        if ( (month.equalsIgnoreCase("January") ) && (day == 1) ) 
            System.out.println("Hurrah!");
        else 
            System.out.println("Not New Year's Day.");
    }
}

public class DateFirstTryDemo {

    public static void main(String args[]) {
        DateFirstTry date1, date2;
        date1 = new DateFirstTry();
        date2 = new DateFirstTry();
        date1.month = "December";
        date1.day = 31;
        date1.year = 2012;
        System.out.println("date1:");
        date1.writeOutput();
    
        date2.month = "July";
        date2.day = 4;
        date2.year = 1776;
        System.out.println("date2:");
        date2.writeOutput();
    
        DateFirstTry makeItNewYears;
    
        DateFirstTry yellIfNewYears;
}

所以,他們解釋了我應該如何創建makeItNewYearsyellIfNewYears方法,但沒有解釋如何在主代碼中調用它們。 我已經嘗試過一些東西和DateFirstTry makeItNewYears; 是唯一沒有給出錯誤,但也沒有給出任何 output 的東西。

我希望有人可以幫助我!

class 可以具有 state 和行為。 State 是數據。 在您的 class DateFirstTry中,這些是導致 state 的變量:

    public String month;
    public int day;
    public int year;

方法表示特定的行為或一組操作。 class 的行為對數據執行操作。 在執行這些操作時,它可能會或可能不會更改 class 的 state。 例如,

public void makeItNewYears()
{
    month = "January";
    day = 1;
}

makeItNewYears()方法改變了 state,因為它改變了monthday的值。 另一方面,

public void writeOutput()
{
    System.out.println(month + " " + day + ", " + year);
}

該方法會執行一些操作,但不會更改 state。 它只使用數據但不改變其值。

object 是此 class 的一個實例。 如果Person是 class,則John是此 class 的實例。 class 可以有任意數量的實例。 每個實例都有自己的 state 以及 class 中定義的所有行為。 要創建實例,請使用以下語法:

DateFirstTry date1 = new DateFirstTry();
DateFirstTry date2 = new DateFirstTry();

date1date2是此 class 的兩個實例/對象。 它們具有相同的屬性monthdayyear 但是對於每個 object,它們的值可能不同。 要調用方法,您需要在實例上調用它。 我們有兩個實例date1date2 調用writeOutput()使用:

date1.writeOutput()

您也可以在date2上調用相同的方法,它將對其數據執行操作。

每個 object 都能夠執行此行為。

date1.yellIfNewYears()

將檢查date1的月、日和年的值是否為新年。 如果您調用與以下相同的方法:

date2.yellIfNewYears()

它將使用date2中的月份、日期和年份值執行此操作。

由於這些是實例方法,因此您首先需要創建DateFirstTry的實例,例如,您對date1所做的操作:

DateFirstTry someDate = new DateFirstTry();

然后,您可以使用. 語法,后跟方法名稱,括號 ( () ) 包含要傳遞給方法的 arguments (在本例中 - 無):

someDate.makeItNewYears();
someDate.yellIfNewYears();

暫無
暫無

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

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