ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

7-10周JAVA学习总结

2022-05-01 04:31:21  阅读:163  来源: 互联网

标签:总结 10 Set JAVA 继承 接口 链表 泛型 方法


  7-10周JAVA学习总结

 

  • 前言

这段时间,我们学习了接口、泛型、Builder、Bridge Patte、软件测试技术、Set、Map、链表、Lambda、Stream、JavaFX等内容。

接口: 接口是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

  • 接口不能用于实例化对象。

  • 接口没有构造方法。

  • 接口中所有的方法必须是抽象方法。

  • 接口不能包含成员变量,除了 static 和 final 变量。

  • 接口不是被类继承了,而是要被类实现。

  • 接口支持多继承。

泛型:泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法。

    泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。

    泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型。

建造者(Builder)模式:使用场景:多个部件或者零件,都可以装配到一个对象中,但是产生的运行结果又相同。产品类非常复杂,或者产品类中调用顺序不同产生了不同的作用。初始化一个对象特别复杂,如使用多个构造方法,或者说有很多参数,并且都有默认值时。

Bridge Pattern(桥接模式):将抽象部分与它的实现部分分离,使它们都可以独立地变化。

软件测试技术:

黑盒测试BlackBox Testing

Input-> Process-> Output   (proccess看不见)

测试用例 TestCase

(1) 输入数据

(2) 预期输出结果

  1. 代码开发之后进行测试用例设计,进行测试:UDD UseCase

  2. 先设计测试用例,开发程序,然后测试:TDD

Set:Set是一种叫做集合的数据结构

  • 集合是由一组无序且唯一的项组成的

  • Set,类似于数组,但是成员的值都是唯一的,没有重复的值

  • Set本身是一个构造函数,用来生成Set数据结构的

Map:Map是一种叫做字典的数据结构

集合和字典的区别:
共同点:集合,字典可以存储不重复的值
不同点:集合是以[值,值]的形式存储元素,字典是以[键,值]的形式存储

Lambda表达式:

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。

  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。

  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。

  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。

Stream :是处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。

  • 直接阅读代码的字面意思即可完美展示无关逻辑方式的语义

  • Stream流把真正的函数式编程风格引入到Java中

  • 惰性求值,流在中间处理过程中,只是对操作进行了记录,并不会立即执行,需要等到执行终止操作的时候才会进行实际的计算。

  • 不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。

 

  • 设计与分析

 

在该题目中,需要学会运用抽象类、继承与多态、接口。

其中Circle类、Rectangle类、Trapezoid类、Triangle类继承于Shape类。子类需要继承抽象类中的抽象方法,每个子类的实现方法不同,体现了多态的意义。例如:

Comparable 接口的应用: 

需要实现 Comparable 接口中的 CompareTo()方法

to string方法:

ArrayList的应用:

ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。

 

在图形类的改进题中,需要多定义几个ArrayList对象。

 

链表:

链表是一个线性结构,但是存储的数据可以是非线性的。链表由一个个子节点构成,每个节点有两个部分:数据域和指针域,数据域就是实际存储数据的,指针域可以有一个和两个,单链表就是单个指针域指向后一个节点,双链表就是节点有两个指针域,分别指向前一个和后一个节点。

list方法 遍历思想:从最小不间断的考虑到最大--->链表为0,1,2,3...n个节点分别要做什么

 

点与线(类设计):

在该题目中,需要设计Point类与Line类,体现了JAVA设计原则中的单一职责原则。

其中,输出格式保留两位小数可以用String类中的方法。

 点线面问题重构(继承与多态):

在该题中,需要对上一题中的类设计进行改进,添加抽象类Element,并定义一个Element类的引用,分别使用该引用调用以上四个对象的display()方法,从而实现多态特性。

点线面问题再重构(容器类)

在点线面问题重构(继承与多态)的基础上,本题添加了容器概念ArrayList的应用,添加了GeometryObject类。

 

  • 采坑心得

在这些程序设计题目中,曾遇到了许多困难,例如在图形类设计中,我开始时并未注意to string方法,导致输出结果乱码,后面再对to string方法进行补充,问题才得以解决。

还有Comparable 接口中的 CompareTo()方法,一开始并不清楚Compare To方法的使用,后面查询资料后得以了解。

 

 

  • 总结

在今后的学习中,我应该更自主地学习JAVA内容,并对自己认为较难的部分(如链表)的设计多复习巩固,去搞清楚每一个知识点。并且在上课的过程中,应该更认真地进行学习,课后也要及时进行复习,对课内内容进行练习。 在这几周的学习中,我对JAVA有了更深一步的了解与学习,我学习了接口、泛型、Builder、Bridge Patte、软件测试技术、Set、Map、链表、Lambda、Stream、JavaFX等内容。其中,对于设计模式和链表的设计需要多加复习,并通过练习加深理解,Lambda、Stream、JavaFX部分的内容需要自己在日后学习中更深一步的了解。

 

 

 

 

 

 

标签:总结,10,Set,JAVA,继承,接口,链表,泛型,方法
来源: https://www.cnblogs.com/lhzzz/p/16212111.html

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

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

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

ICode9版权所有