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
  • 得分情况如下:
  1. 正确使用Markdown语法(加1分)
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程(加2分)
  4. 代码调试中的问题和解决过程(加4分)
  5. 其他加分(加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调试

参考资料

posted @ 2019-09-09 09:44  冷冲  阅读(278)  评论(2编辑  收藏  举报