繁体   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