蓝杰学习总结
不知不觉,大二的第一个学期结束了,到蓝杰学习也差不多有2个月了。下面我就讲讲我在蓝杰学到了什么东西吧。
在蓝杰讲究的是项目驱动,成果导向,就是说反正不管你水平如何,先给你个小小的项目给你做,然后在做项目的过程中学习之前不懂的东西,到项目做完了你也学到了那个项目需要的知识。这就注定蓝杰上课的形式跟学校里很不一样,蓝杰上课只给你上你马上就需要用到的课。有一天龙哥教我们队列,之后马上就要我们实现画图板的重绘。在这里上课经常是上1个多小时课,然后自己动手实践。
我到蓝杰以来做的第一个项目是画图板。之前我在学校学习编程从来没做过窗体,而且,我以前也没学过JAVA。我学过C语言和C++,所以这门Java对我来说,有一半新课,一半复习课。前面一两节课都是语法课,而Java的语法格式和C语言大同小异,所以我听课很轻松,但是我又常常感到不满足,我所期待的是编写窗体,那时窗体对我来讲还是个很神秘的东西。之后,龙哥就给我重新安排了课程,将我的进度提前了,我就开始接触新课了。龙哥给我单独讲了一节关于类的课之后我就马上开始讲窗体。看着龙哥做示范的代码,我突然觉得,原来做窗体没有我想象中的那么难。Java中有现成的类模版让你可以新建出窗体,你自己调用就行。那时候还不知道,其实现在想一想,那个时候我编程的思想就已经从原来的面向过程编程开始向面向对象编程转变了。
在我学会创建窗体之后,我就真正开始了画图板的项目。第一次课,龙哥教我让窗体获取画布,(这个是画图板的基础,如果没有获取画布,跟本就没法画图)然后给窗体添加一个鼠标监听器,用于监听鼠标动作,之后我运行程序,发现程序可以画一条直线了(监听器里写个个画直线的方法)。之后我还随便搞了一些画圆形,矩形等画布方法。龙哥说要我们尽量模仿微软画图板,虽然第一次课,我的程序勉强可以画图了,但是和微软的一比,显得太次了。所以第二节课,龙哥教我做了一下美化,给所有的画图按钮添加图片,内容其实很简单,但是工作量蛮大,因为每个图标都有4种状态,你要把所有状态都添加进去就显得代码很长了。后面我还学习了画图时可以选择颜色。一开始,我和画布共用了一个监听器,但是发现有问题,后面我修改了代码,重新创建了一个颜色监听器。但是发现响应时间有问题,反正每次都是选了另外的颜色但是要画一次上一次颜色之后才改变,我百思不得其解。无奈之下请教了斌哥,才发现监听器的触发顺序我没搞清楚。最后,我学习了重绘,重绘方法我知道的有两种,第一种是龙哥教的那种,就是用类封装你要重绘的图形,存在一个队列中,在窗体改变之后调用队列里类的画图方法,实习重绘。第二种重绘是斌哥教的,思想是先把画布图像截取下来(截屏),然后按照像素点,一点一点依次存入一个二维数组中去,在窗体改变后重新画二维数组中的点,以实现重绘。
上面是我在蓝杰所学到的技术方面的东西,但其实我还学到了其他的东西。这些东西包括很多方面,有编程思想,编程习惯,调试程序等。原来我编程从来不写注解,就是在一次程序报错检查时发现,我的代码很混乱,之后我写程序就会自觉的加上代码。这样不仅方便自己修改程序,也方便别人看你的代码。之前我写程序其实很大程度上我用的都是面向过程的编程方式,但是Java用多了之后,我发现其实面向对象更加简单、安全。还有就是以前每当出现程序异常,报错之后我就束手无策,不知道如何才能有效的检查出出错的地方,现在我就知道在出错的地方打印一句话来测试程序是否运行。
虽然我取得了一点点小的进步,但我还是有很多缺点值得改进。有一句话说的好,文人不可能在自己来了灵感之后才写点东西。同样我觉得写程序也是如此,但是有时候我自己还没有做到任何时候都能写程序,每当弄了很久没弄出来的东西我都不能坚持一次性把它做完。有时候我觉得我写程序的时候顾虑太多了,我觉得这不是件好事,因为它很大程度影响了我写代码的方式,我觉得写代码先实现框架,然后去填充这样比较好。看书时,我有自以为是的态度。就比如说吧,原来看书时我看到Java里的值传递和引用传递这里来了,而我在C语言里已经非常了解了,我就随便看了一眼,扫过去了,我不是说非得一字一句的看,但是我那时扫过去却并没有留下任何印象,结果后面还形成了错误的思想,还好后面又重新翻了一下书,发现了错误。不然后果不堪设想。
总的来说我的缺点还是一个编程量的问题,我相信,只要我继续努力下去,量变最终会引发质变!
分享到:
相关推荐
【标题】"蓝杰学习笔记备份1"涵盖了多个IT领域的知识点,主要集中在源码解析和工具使用方面。从标签来看,这些笔记可能包含了对软件源代码的深入理解以及实用工具的介绍和应用。 首先,源码分析是软件开发中的关键...
《蓝杰JavaScript学习笔记》是一份综合性的JavaScript学习资料,主要涵盖了JavaScript在网页动态操作、DOM操作以及事件处理等方面的基础知识。这篇笔记通过多个实例文件,如`dynamicCreateTable.htm`、`...
蓝杰实训课程专注于讲解这一技术,旨在帮助技术人员掌握手机定位背后的业务知识和技术背景。 首先,手机定位技术已经深入人们的日常生活,它既带来了便利,如导航服务、紧急救援定位,也可能引发隐私问题。了解这些...
资源讲了一个使用java socket编写FTP client 的实例,可以学习java socket编程的基本步骤和原理
【蓝杰IBM-robocode平台资料】是一套关于使用IBM-robocode进行机器人开发的教育资源。这个平台基于Java语言,提供了丰富的工具和环境,让学习者可以构建、测试和竞赛虚拟机器人。IBM-robocode是一个开源项目,它为...
蓝杰网关代码可能是一个第三方实现的CMPP服务器,它可以帮助开发者快速搭建CMPP环境进行测试和开发。通常,这样的网关会包含服务器端的处理逻辑,如接收和解析CMPP报文、转发短信、处理状态报告等。开发者可以通过...
做为java分布式计算的基础框架的RMI体系,是javaEE结构的基础技术. 本课件全面讲解了RMI的一般实现,特殊问题解决及与sping的组合应用. 1.分布式计算的起因及基本原理 2.RMI体系结构 3.RMI服务器实现及编码 ...
本文将围绕"微博是这样炼成的:山寨QQ项目源码下载大全"这一主题,深入剖析两个关键文件——蓝杰版QQ客服端.jar和蓝杰版QQ服务器端.jar,揭示其背后的技术原理和实现机制。 首先,我们要理解QQ作为一款即时通讯软件...
- `蓝杰cmpp项目视频说明.txt`:这个文件可能是蓝杰公司关于CMPP项目的视频教程的文字说明,包含了项目实施过程中的指导和最佳实践。 5. **移动通信系统架构**:了解中国移动的网络架构,包括GSM、GPRS、EDGE、...
BlueBlood-OS这是一个类UNIX的64bit操作系统,从0开始完整的实现一个OS本篇README.md面向开发者上手指南以下指南将帮助您在本地机器上安装和运行该项目,...作者邵靳天@蓝杰您也可以在贡献者列表中提到所有参与该项目的