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

如何在不同的Java文件中调用方法?,java,Java,因此,我对Java非常陌生,并学习了一些编码课程。关于这门课,我有一本关于理论和练习的书。现在我被某个练习困住了,但这本书没有提供这个练习的理论或答案 我有一个类文件DateFirstTry.java和一个主文件,它运行程序 public class DateFirstTry { public String month; public int day; public int year; public void writeOutput() {

因此,我对Java非常陌生,并学习了一些编码课程。关于这门课,我有一本关于理论和练习的书。现在我被某个练习困住了,但这本书没有提供这个练习的理论或答案

我有一个类文件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.");
    }
}

所以,他们解释了我应该如何创建makeItNewYears和yellIfNewYears方法,但没有解释如何在主代码中调用它们。我尝试过一些事情,并在新的几年里第一次尝试;是唯一不会给出错误,但也不会给出任何输出的东西


我希望有人能帮我

由于这些是实例方法,您首先需要创建DateFirstTry的实例,例如,您使用date1:

DateFirstTry someDate=新的DateFirstTry; 然后可以使用调用此实例上的方法。语法,后跟方法的名称,以及包含在本例中要传递给方法的参数的括号-无:

someDate.makeItNewYears; someDate.yellIfNewYears;
类可以具有状态和行为。状态是数据。在类DateFirstTry中,以下是构成状态的变量:

    public String month;
    public int day;
    public int year;
方法表示特定的行为或一组操作。类的行为对数据执行操作。在执行这些操作时,它可能会更改类的状态,也可能不会更改。 比如说,

public void makeItNewYears()
{
    month = "January";
    day = 1;
}
方法makeItNewYears会更改状态,因为它会更改月和日的值。另一方面,

public void writeOutput()
{
    System.out.println(month + " " + day + ", " + year);
}
该方法执行某些操作,但不更改状态。它只使用数据,但不更改其值

对象是此类的实例。如果Person是一个类,那么John就是这个类的一个实例。一个类可以有任意数量的实例。每个实例都有自己的状态和类中定义的所有行为。 要创建实例,请使用以下语法:

DateFirstTry date1 = new DateFirstTry();
DateFirstTry date2 = new DateFirstTry();
date1和date2是此类的两个实例/对象。它们具有相同的月、日和年属性。但每个对象的值可能不同。 要调用方法,需要在实例上调用它。我们有两个实例date1和date2。要调用writeOutput,请使用:

您也可以在date2上调用相同的方法,它将对其数据执行操作

每个对象都能够执行此行为

date1.yellIfNewYears()
将检查date1的月、日和年的值是否为新年。如果调用与以下相同的方法:

date2.yellIfNewYears()

它将使用date2中的月、日和年值执行此操作。

好的,这很有帮助!例如,如何将月份或日期更改为makeItNewYears方法中的月份或日期?@DamianEickhoff您可以使用。运算符也引用数据成员,就像您在共享的main中所做的那样:someDate.day=1。对不起,我不懂。在方法上,我已经放弃了一个月和一天。但是,如果我尝试date1.day=date1.makeItNewYears.month;它不会接受的。如果我在main中更改了日期和月份,它可以正常工作,但是我想使用该方法来更改这两个变量。@DamianEickhoff makeItNewYears更新DateFirst的成员并尝试调用它。如果你想得到新年的日期,你必须提取一个方法或者一个返回itAh的常数,对吧。我现在明白了。如果我运行date1.makeItNewYears;首先,然后是date1.writeOutput;它给我1月1日,即使主要的日期和月份设置为不同的日期和月份。谢谢你的帮助!
date1.yellIfNewYears()
date2.yellIfNewYears()