ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

blog2

2021-05-02 21:03:21  阅读:160  来源: 互联网

标签:return int blog2 month year date day


Blog作业2

(1)      前言:一:聚合关系:聚合是一种特殊的关联形式。
它是两个类之间的关系,如关联,但它是一个方向关联,并且这意味着它是非常严格地是单向关联的。例如学生和他的地址之间就存在一种聚合关系。
它代表了一种HAS-A关系。补充一下,聚合是一种关联关系,是很强的关联关系。

           二:正则表达式:正则表达式定义了字符串的模式。

正则表达式可以用来搜索、编辑或处理一些文本,这是非常方便的。

正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别,我们这里只聊java.

          java.util.regex 包主要包括以下三个类: (1)Pattern (2) Matcher (3) PatternSyntaxException:这是一种非强制性异常类,用他可以表示Java中的语法错误。

         三:Java的封装性: 成员变量和其中的成员方法的定义都是包装于类定义之中;类的定义可以视为将构成类的成员变量和方法全都封装起来;这就是最宏观的封装。到了这里,我们必须要谈一谈修饰词了,正是有这些修饰词的存在,类与类之间的访问才变得不是随意的。如;private 就是让类有了封装性,他的存在就只允许本类访问他,别的休想。这样就完成了封装性。还有Java的public 这个是都可见的。既然这样,那这样做是否有他的道理呢,是否有一些好处呢?答案是肯定的。封装性可以避免一些不必要的麻烦

           四:Java的继承:

 1.从子类父类之间的关系理解

  子类继承父类可以使用父类中所有的属性和方法,注意是所有哦。

  子类继承父类后可以声明自己的属性和方法,所以严格上说继承是对类功能的补充吧,有错请指正。

 2.继承的单词:extends 如 CLASS A EXTENDS B

 3.一个子类只能继承一个父类,看清楚。但是一个父类却可以同时被多个子类继承

五:接口:接口就是一个约定成俗的规范,就好比于硬件上面的接口,在电脑主板上的PCI插槽的规范就类似于Java接口。接口就是某个事物对外提供的一些功能的一些说明。我们还可以利用接口实现多态功能,同时接口也弥补了Java单一继承的弱点,也就是类可以实现多个接口的功能。接口有点类似抽象类,但却是抽象类的变体。

(2)   设计与分析:重要代码如下;

    public int getYear() {

        return year;

    }

 

    public int getMonth() {

        return month;

    }

 

    public int getDay() {

        return day;

    }

 

  

 

 

 

    public DateUtil getNextNDays(int n)

    {

        int year = this.year;

        int month = this.month;

        int day = this.day;

        for (int i = 0; i < n; i++) {

            day++;

            if (day > getDayOfMonth(year, month)) {

                month++;

                day = 1;

                if (month > 12) {

                    month = 1;

                    year++;

                }

            }

        }

        return new DateUtil(year, month, day);

    }

    //前n 天的日期

    public DateUtil getPreviousNDays(int n)

    {

        int year = this.year;

        int month = this.month;

        int day = this.day;

        for (int i = 0; i < n; i++) {

            day--;

            if(day < 1) {

                month--;

                if (month < 1) {

                    year--;

                    month = 12;

                   

                }

                day += getDayOfMonth(year, month);

            }

        }

        return new DateUtil(year, month, day);

    }

 

    public boolean compareDates(DateUtil date)

    {

        if (this.year > date.year) {

            return true;

        }

        if (this.year == date.year) {

            if (this.month > date.month) return true;

            if (this.month == date.month) {

                if (this.day >= date.day) return true;

            }

        }

        return false;

    }

 

 

   

    private static final int[] mon = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};

    public int getDaysofDates(DateUtil date)

    {

        DateUtil dateUtil1 = this;

        DateUtil dateUtil2 = date;

        if (this.compareDates(date)) {

            dateUtil1 = date;

            dateUtil2 = this;

        }

 

        int days;

        int leapYearNum = 0;

        for (int i = dateUtil1.getYear(); i < dateUtil2.getYear(); i++) {

            if (isLeapYear(i)) {

                leapYearNum++;

            }

        }

 

        days = 365 * (dateUtil2.getYear() - dateUtil1.getYear()) + leapYearNum;

 

        int d1 = mon[dateUtil1.getMonth() - 1] + dateUtil1.getDay() + (dateUtil1.getMonth() > 2 && isLeapYear(dateUtil1.getYear()) ? 1 : 0);

        int d2 = mon[dateUtil2.getMonth() - 1] + dateUtil2.getDay() + (dateUtil2.getMonth() > 2 && isLeapYear(dateUtil2.getYear()) ? 1 : 0);

        return days - d1 + d2;

    }

   

    public String showDate()

    {

        return year + "-" + month + "-" + day;

    }

    public boolean equalTwoDates(DateUtil date)

    {

        if (date != null) {

            if (year == date.year && month == date.month && day == date.day) {

                return true;

            }

        }

        return false;

    }

}

这里:我主要看题目集5日期的类图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

题目集5的聚合的代码复用性更高,提高了效率。

2.题目集4的图形继承分析,用class Ball,class rectangle,class Circle 都是继承shape 类。这里shape是父类,也是抽象类。

题目集6的7-5,7-6的图形的继承类中class Ball,class rectangle,class Circle 都是继承shape 类。这里shape是父类,也是抽象类,没有具体的方法。其中每一个类都对父类的信息做出不同的反应。如在输入数据的个数,判断数据是否合法的方法,求面积的方法各有所不同。

3.正则表达式的技术分析:题目集4的水文检验题:

需要采用分隔合法,。对各数据进行分别进行合法检验,如果返回值为真进行,加入总流量中。

还有字符的操作:

对于输入的字符串我们可以这样处理,第一我们要检验字符串非空,然后才好进行下一步操作,如:通过判断字符串长度是否为0,接下来,可以选择跳出此处循环,或继续执行下一行代码,这就是这道题的主要思路,接下来老老实实的完成代码就行了。

题目集5统计关键字出现的次数:设计好相应的类来统计关键字,还要注意注释部分的不要统计,这里配合循环,利用正则表达式就可以了,我的代码是:

for( int i = 0;i<sk.length;i++)

            {

                for( j=0;j<key.length;j++)

                if(sk[i].equals(key[j]))//sk 是自己设的数组,这里就不详细解释了

                {   flag=map.get(key[j]);

                   map.put(key[j],flag+1);

            }

  4.题目集5(7-4)中Java集合框架应用的分析总结 :Java集合框架应用,使得我们可以翻遍的使用接口与类,这样一来我们的效率就得到大大的提升。

(3)    采坑心得:数据的存入需要注意:如

 

 

还有:

 

 

需要注意语法上的错误,if 语句有错。

(4)    改进建议:题目集5,6的代码复用性还有待提高,但也不必过于追求。

(5)   总结:在这三次题目集的学习过程中,我了解了Java的继承,多态,接口的使用,概念,还有如何调试代码,具体的就是接口的使用:接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误,这个需要特别注意!不足之处就是正则表达式的使用不熟练,存在诸多问题,还需继续学习。接下来的学习,我希望作业,课程难度不要设的那么高,主要是为知识的运用服务。

标签:return,int,blog2,month,year,date,day
来源: https://www.cnblogs.com/fxdcn/p/14726404.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有