写bug的菜鸡 2022-10-03 10:50 采纳率: 100%
浏览 40
已结题

java中的方法调用——直接调用和类名调用的区别

java中的方法调用——直接调用和类名调用的区别


     public static void main(String[] args)//static必须带上
     {Date d1 =new Date(2022,10,1);
      Date d2 =new Date(2020,3,4);
      Date.dateCompare(d1, d2);
      //dateCompare(d1, d2);     
      dateDifference(d1,d2);
      //Date.dateDifference(d1,d2);
     }

直接调用 dateDifference(d1,d2)和类名调用Date.dateDifference(d1,d2);有何区别(都可以运行)

public class Date {
    //成员变量
    int year;
    int mouth;
    int day;
    //构造方法
    Date(int a,int b,int c)
        {year=a;
         mouth=b;
         day=c;}
    //判断闰年,0是润,1是平
    public int LeapYearJudgment(int a)
        {
            if(a%400==0) return 0;
            if(a%4==0&&a%100!=0)return 0;
            return 1;
         }
    public int LeapYearJudgment()
    {int a=year;
        if(a%400==0) return 0;
        if(a%4==0&&a%100!=0)return 0;
        return 1;
     }
    public int MouthJudgment(int b)
        {switch(b)
                {case 1: case 3:case 5:case 7:case 8:case 10:case 12: return 0;
                 case 4:case 6:case 9:case 11:  return 1;
                 case 2: {int a=LeapYearJudgment();
                             if(a==0)  return 2;
                            if(a!=0)  return 3;
                          }
                 default:return 4;
                }
        }
    int convert()
        {int a=year-1;
         int sum=0;
         int b=mouth-1;
         for(int i=a;i>0;i--) 
             {
             if(LeapYearJudgment(i)==0)   sum+=366; 
              if(LeapYearJudgment(i)==1)   sum+=365;
             }
        
         for(int j=b;j>0;j--)
             {
             if(MouthJudgment(j)==0) sum+=31;
                if(MouthJudgment(j)==1) sum+=30;
                if(MouthJudgment(j)==2) sum+=29;
                if(MouthJudgment(j)==3) sum+=28;
               }
         sum+=day;
        return sum;
        }
    static void  dateCompare(Date m,Date n)
         {int a=m.convert();
          int b=n.convert();
          if(a>b)
              System.out.println(m.year+"年"+m.mouth+"月"+m.day+"日"+"大于"+n.year+"年"+n.mouth+"月"+n.day+"日");
         if(a<b)
             System.out.println(m.year+"年"+m.mouth+"月"+m.day+"日"+"小于"+n.year+"年"+n.mouth+"月"+n.day+"日");
         if(a==b)
             System.out.println(m.year+"年"+m.mouth+"月"+m.day+"日"+"等于"+n.year+"年"+n.mouth+"月"+n.day+"日");
         }
    static void dateDifference(Date m,Date n)
        {int a=m.convert();
          int b=n.convert();
         int c=Math.abs(a-b);
         System.out.println("相差"+c+"天");
        }
     public static void main(String[] args)//static必须带上
     {Date d1 =new Date(2022,10,1);
      Date d2 =new Date(2020,3,4);
      Date.dateCompare(d1, d2);
      //dateCompare(d1, d2);     
      dateDifference(d1,d2);
      //Date.dateDifference(d1,d2);
     }
}

以上是全部源码

  • 写回答

3条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 10月11日
      • 已采纳回答 10月3日
      • 创建了问题 10月3日

      悬赏问题

      • ¥30 关于#网络安全#的问题:非对称加密验证
      • ¥20 关于线性代数里施密特正交化和QR分解的疑问
      • ¥15 matlab超类包含解析错误
      • ¥15 python拖拽文件问题
      • ¥15 执行import paddle代码出现错误如何解决?
      • ¥15 hisat2align exited with value 137
      • ¥15 寻找大学生合作开发软件(Delphi)
      • ¥30 AndroidBench&eMMC内存测试速度&Android
      • ¥15 W10 文件共享失败 怎么解决
      • ¥20 b站私信完整导出的方法