Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从另一个对象的对象调用变量。_Java_Oop - Fatal编程技术网

Java 从另一个对象的对象调用变量。

Java 从另一个对象的对象调用变量。,java,oop,Java,Oop,当我编写稍微复杂一点的程序时,我总是对如何构建程序感到困惑。我想举个例子,不需要修改代码。但是要理解什么是最好的或最正确的方法 示例程序: 现在,我想用我的程序处理不同的事情(不使用Java日期类或Yoda time) 我想检查一年是否是闰年 我想检查给定日期是哪一天 我想看看哪几年的今天是一样的 比较两个日期,计算月份、天数等 要实现这种功能,需要注意以下几点: 一年是闰年吗 哪一天是一月一日 一年有52周还是53周 创建日期时,将使用日、月和年对象创建新的数据对象。带有日期,例如2002年1

当我编写稍微复杂一点的程序时,我总是对如何构建程序感到困惑。我想举个例子,不需要修改代码。但是要理解什么是最好的或最正确的方法

示例程序:

现在,我想用我的程序处理不同的事情(不使用Java日期类或Yoda time)

  • 我想检查一年是否是闰年
  • 我想检查给定日期是哪一天
  • 我想看看哪几年的今天是一样的
  • 比较两个日期,计算月份、天数等
  • 要实现这种功能,需要注意以下几点:

  • 一年是闰年吗
  • 哪一天是一月一日
  • 一年有52周还是53周
  • 创建日期时,将使用日、月和年对象创建新的数据对象。带有日期,例如2002年11月5日。将创建一个新的日期对象,包括新年对象、新月份对象和新日期对象(holding 2012、11、5)

    我创建了一个新的日期类,它包括:

    public class Date {
        Year year;
        Month month;
        Day day;
    
    对于我的年度课程,我只需以整数表示年份,并检查年份是否为闰年:

    public class Year {
        int year; 
        boolean leapyear; 
    
    到目前为止还不错,没有什么大问题

    在我的月份课上,我只选整数月份

     public class Month {
        int month; 
    
    然而,在我的日间课程中,我需要更多的选择。在我的日间课上,我需要做更多的日间活动

  • 我需要计算出给定月份、日期和年份的总天数(是/否)
  • 检查给定年份的第一个一月
  • 检查给定日期和年份的日期 所以我需要来自其他对象的数据,来自我的年和月对象。这里是我第一点的例子(计算出一年中某一天的数字)

    最好的方法是什么

    我想使用leapYear方法处理Day和Year对象中的变量。在这种情况下,我通常会遇到问题。通常我会反复尝试,但我想知道处理这个问题的最佳方法是什么

    问题:
    1.在这种情况下,最好的方法是什么?我应该创建一个testDate.java,还是其他方式

    leapyear=true
    应该是
    leapyear==true
    Joda时间,请。否则你会说“今天是10月16日。”如果(m==0),试着替换
    。。。如果(m==1)。。。带
    开关的etc
    (m){案例0:…案例1:…
    至于您的问题的其余部分,我建议将其解析下来,并在非常具体的时间处理一点点。您在这里问了很多问题,我不知道从哪里开始。请将您的问题编辑到一个更小的范围,并且非常具体。@peeskillet问题被标记为
    oop
    ,看起来是l比如说,这要么与家庭作业有关,要么提问者只是想自学。如果他想提高自己对
    oop
    的理解,学习
    如何相互作用可能很重要。@SotiriosDelimanolis对于正确命名的布尔变量,你不应该使用等式/不等式测试。如果(leapyear&&m>1),它会更干净。
        public class Day {
    
            int day; 
            int dayTotal;  
            int januaray1st; 
    
    
        public void daytotal(int m, int d, boolean leapyear) {
    
    
            int day = 0; 
    
            if (m == 0) {
                days = 0; 
            }
            if (m == 1) {
                days = 31; 
            }
            if (m == 2) {
                days = 59; 
            }
            if (m == 3) {
                days = 90; 
            }
            if (m == 4) {
                days = 120; 
            }
            if (m == 5) {
                days = 151; 
            }
            if (m == 6) {
                days = 181; 
            }
            if (m == 7) {
                days = 212; 
            }
            if (m == 8) {
                days = 243; 
            }
            if (m == 9) {
                days = 273; 
            }
            if (m == 10) {
                days = 304; 
            }
            if (m == 11) {
                days = 334; 
            }
    
    
    
    
            if (leapyear = true && m > 1) {
            days += 1; 
            } else {
            days = d + days; 
            }
            this.dayTotal = days; 
      }