java课程第二次总结

Java课程第二次总结

  1. 作业过程总结

我对最近三次pta作业的总结是:类与类之间的关系有四种,分别是关联,依赖,聚合,组合。以及使用Java中的字符串处理类以及正则表达式对输入字符串数据进行合法性校验及计算。说起正则表达式,正则表达式(通常称为模式)是用于指定特定目的所需的一组字符串的表达式。指定有限字符串集的简单方法是列出其元素或成员。但是,通常有更简洁的方法来指定所需的字符串集。例如,包含三个字符串“Handel”,“Händel”和“Haendel”的集合可以由模式 指定H(ä|ae?)ndel; 我们说这种模式匹配三个字符串中的每一个。在大多数形式主义中,如果存在至少一个与特定集匹配的正则表达式,则存在无限数量的其他正则表达式也与其匹配 - 规范不是唯一的。大多数形式主义提供了以下操作来构造正则表达式。

 

字符类是文字匹配后最基本的正则表达式概念。它使一个小的字符序列匹配更大的字符集。例如,可以代表大写字母,可以表示任何数字

指定字符范围(例如小写到大写)时,计算机的区域设置通过字符编码的数字排序来确定内容。它们可以存储该序列中的数字,或者排序可以是abc ... zABC ... ZaAbBcC ... zZ

 

总结:  在用逻辑符或连接正则表达式时, 千万不要为了好看而在左右添加空格!! (其他符号也是一样! 如^、$、*、.........不一而足...)

 

我对聚合和组合的区别不是很清楚,所以在这里特别指出。

聚合(Aggregation) : 表示has-a的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。如公司和员工的关系,公司包含员工,但如果公司倒闭,员工依然可以换公司。在类图使用空心的菱形表示,菱形从局部指向整体。

 

组合(Composition) : 表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。如公司和部门的关系,没有了公司,部门也不能存在了;调查问卷中问题和选项的关系;订单和订单选项的关系。在类图使用实心的菱形表示,菱形从局部指向整体。

 

 

聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

 

像在类的继承中,当类的继承方式为公有继承时,基类的公有和保护成员的访问属性在派生类中不变,而基类的私有成员不可访问。即基类的公有成员和保护成员被继承到派生类中仍作为派生类的公有成员和保护成员。有public修饰符。而当类的继承方式为私有继承时,基类中的公有成员和保护成员都以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可访问。基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问它们,但是在类外部通过派生类的对象无法访问,其中的变量也是无法访问的,有private修饰符。

     这部分内容比较复杂,光听老师讲解肯定是不够的,关键还是靠自己努力去钻研,去搞懂它,每次写这些题目,我都会花费两三个小时写一道题,要去找那些具体的知识点,往往都是很小的知识点,很具体,不能略过,不能省略,因为可能错过了这些点,测试点就过不了了,所以会花费很多时间,比如如何将字符串转成正则表达式,如何使用接口等等。

 

继承是由已有类创建新类的机制。子类继承了父类原有的属性与方法,也可以增加新得属性与方法,也可以重写父类中的某些方法。系统默认Object类为所有类的父类。

 

Java中类没有多继承,接口有多继承。

子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法)。

封装是面向对象的三大特性(封装、继承、多态)之一,封装简单来讲就是将自己的数据隐藏起来。

 

举个例子:别人向你借钱,传统的面向过程的做法是别人去你家拿,拿多少有时候你也不知道。面向对象的做法是别人向你发出请求:我要借多少钱,至于你借给他多少,如何借这些都是由你自己内部的机制自己完成。用户不需要知道你的内部结构(实现细节)是怎样的,他只需要拿到钱。

 

  1. OO设计心得

 单一职责原则

      单一职责:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。

    类的职责要单一,不能将太多的职责放在一个类中,不能使一个类太累。

    单一职责原则是实现高内聚、低耦合的指导方针。

    类的职责主要包括两个方面:数据职责和行为职责,数据职责通过属性来体现,而行为职责通过方法来体现。如果一个类的职责太多,将导致系统非常脆弱,一个职责可能会影响其他职责,因此要职责分类,比如负责获取数据库连接的职责就可以单独作为类,负责对数据库层CRUD操作可以做成一个类。

开闭原则

开闭原则是面向对象的可复用设计的第一块基石,是面向对象设计的目标。一个软件实体应该对扩展开放对修改封闭,也就是说再设计一个模块的时候,应当使得这个模块可以在不被修改的情况下进行扩展,即实现再不修改源代码的情况下通过实现或者继承扩展系统。为了满足开闭原则,我们需要对系统进行抽象化设计,抽象化是实现开闭原则的关键。开闭原则也是实现组件化编程的基础。

  1. 课程收获及建议

通过这次作业我学习到了类与类之间的关系,类没有多继承,接口可以多继承。通过方法重写使得代码更加简洁,容易debug,查找漏洞。老师讲课也很有趣,生动,会举一些具体的例子来帮助我们更好的理解知识点。

 

posted @ 2020-05-01 16:08  王同学23333  阅读(180)  评论(0)    收藏  举报