20182311 2019-2020-1 《数据结构与面向对象程序设计》第1周学习总结
正文
20182311 2019-2020-1 《数据结构与面向对象程序设计》第1周学习总结 |
教材学习内容总结(教材第一章)
1.计算机系统组成。
2.Java程序基本结构,包括注释、类、保留字及命名规范等。
3.程序开发的具体过程、环境及错误分析。
4.解决问题或软件开发的基本步骤,包括理解需求、做出设计、实现设计、调试。
5.理解面向对象程序设计,包括属性、方法、封装等概念。
教材学习中的问题和解决过程
-
问题1:面向对象与面向过程的区别?
-
问题1解决方案:百度搜索
-
个人理解:面向过程侧重于解决问题过程的步骤,用函数实现;面向对象侧重于通过建立对象描述解题步骤,以功能来划分问题而不是步骤,实现同一功能的部分用一个类定义。
-
问题2:类和对象的不同?
-
问题2解决方案:参考《head first java》
类是对象的蓝图,会告诉虚拟机如何创建各种类型的对象。根据某类创建出的对象都会有自己的实例变量(书中定义是对象本身已知的事物,我觉得这是属性的另一种说法)。
举例来说,你可以使用按钮类来创建出许多大小、颜色、文字等不同的按钮。
对象就好像通讯簿中的一笔数据。通讯簿的每张卡片都有相同的空白片段(实例变量)。填入新的联络人就如同创建新的示例变量,填入卡片的数据代表联络人的状态。
这个卡片类上的方法就是你会对卡片做的事情:gettel()、changeAddress()等。
所以每张卡片可以执行相同的动作,取出的结果应该是每张卡片各自独立的。 -
个人理解:类是一种模板,对象是基于这个模板、框架搭出的实体。类应该是包含多种同一类对象的共同之处,对象在类之外还有自己的衍生。
代码调试中的问题和解决过程
-
问题1:出现
E212错误:can't open file for writing
-
问题1解决方案:错误原因是没有权限保存修改文件
sudo vim files
反思:使用root权限修改配置文件或在配置文件夹内创建文件并编辑 -
问题2:
git push
没有配置推送目标导致的问题
-
问题2解决方案:
1.在码云创建仓库,linux中git clone
建立连接
2.注意在clone出来的文件夹内创建目录放置代码,否则无法上传
3.输入正确的码云用户名(cold_impact)及密码
git命令理解:
git init
创建本地版本库;
git clone
与远程仓库建立联系;
git add .
将当前目录下文件添加到暂存区;
git commit
将文件从暂存区提到仓库;
git push
上传到远程仓库。 -
问题3:升级vim出现
E:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
-
问题3解决方案:源的问题
-
问题4:
jdb -classpath .:./bin HelloJDB
的含义? -
问题4解决方案:百度搜索
jdb -classpath [目录]:[搜索路径]
:classpath是含有命令搜索路径的变量选项
代码托管
上周考试错题总结
- 错题1:Linux Bash中,(cheat find )命令可以查年find命令的使用示例。
- cheat能够查询命令的使用实例,man虽然更为详细,可查询的命令更全,但是没有实例。
- 反思:学习过程中有偷懒,觉得help、info和man命令足够了,没有深入思考每个命令独特之处。
结对及互评
点评
- 博客中值得学习的:
- 教材学习内容简要明了;
- 针对自己的问题与错题写反思;
- 问题:
教材学习内容部分希望能写出自己的理解与学习侧重点。 - 基于评分标准,我给本博客打分:14
- 得分情况如下:
- 正确使用Markdown语法(加1分)
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程(加2分)
- 代码调试中的问题和解决过程(加4分)
- 其他加分(加6分)
- 进度条中记录学习时间与改进情况(1)
- 感想,体会不假大空(1)
- 有动手写新代码(1)
- 错题学习深入(1)
- 点评认真,能指出博客和代码中的问题(1)
- 结对学习情况真实可信(1)
点评过的同学博客和代码
-
本周结对学习情况
-
结对照片
-
结对学习内容
- 讨论字节码在Java程序编译执行过程中的作用。机器码是电脑CPU可直接读取的数据,但不同CPU有不同机器码与之对应。字节码是源代码转换为机器码的中间状态,在运行时通过JVM(JAVA虚拟机)做一次转换生成机器指令,因此能使Java程序更好的跨平台运行。
- 互帮互助完成vim配置,互对讨论教材课后练习答案。
其他
感悟:
1.java和c语法细节还是有不同之处,本身也是不同类型的语言,两者的理解方式不同,不能因为学过c而大意。学习高级语言的基本知识,同时弥补了一些学c留下的知识漏洞,比如高级、汇编、机器语言的不同,了解了大多数编译器把java编译成字节码而非直接译成机器语言的原因等。
2.学c是在集成开发环境下,我们只需要操心代码怎么写,编译器会帮我们做好其他。但是这学期学java,要学会在linux环境下自己学会写代码,编译和调试代码,感觉学到了更底层的知识,对程序设计有了更直观的感受。
3.学习Java一定要细心,该按照博客步骤来的地方不能随意,注意区分大小写等规范。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 246/200 | 2/2 | 30/30 | 初步掌握linux命令、java小程序和jdb调试 |