20165202 第3周学习总结

Posted jhs888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165202 第3周学习总结相关的知识,希望对你有一定的参考价值。

20165202 2017-2018-2 《程序设计与数据结构》第3周学习总结

教材学习内容总结

Ch4

  • 面向机器语言、面向过程语言、面向对象语言
  • 类:“驼峰习惯”、类体的定义、成员变量、方法
  • 构造方法与对象的创建:构造方法没有类型、使用对象
  • 类与程序基本结构
  • 参数传值:引用类型传值中传递的是变量中存放的“引用”、可变参数
  • 对象的组合:复用方法
  • 实例成员与类成员:实例变量与类变量、实例方法与类方法的区别 是否有“static”修饰
  • 方法重载:一个类中可以有多个方法具有相同的名字,但参数必须不同
  • this关键字:在构造方法、实例方法中的使用
  • 包:有包名的类的存储目录、运行有包名的主类
  • import语句:引用库中的类、自定义包中的类
  • 访问权限:对象是否可以通过“.”运算符操作变量或调用类中方法
  • [ ] rivate:可修饰变量或者方法(不能修饰类)
  • [ ] public:可修饰变量或者方法(可以修饰类),可通过对象或者类名访问
  • [ ] protected:可修饰变量和方法(不能修饰类),在同一包内可通过对象和类名访问。
  • [ ] 友好变量/友好方法:不用public、private、protected修饰的变量

  • 基本类型的类封装
  • 对象数组:数组的元素是对象
  • JRE扩展与jar文件

教材学习中的问题和解决过程

  • 问题1:import语句使用不太懂
  • 问题1解决方案:通过对教材代码的深入理解,我发现import主要分为引入类库中的类和引入自定义包中的类

import java.util.类名为引入类库中的类的基本格式,一般写在较靠前位置。
package 主类包名; import sohu.com.自定义包中的类名;
编译和运行的方式有所区别
\\ch4>javac hello\\nihao\\Example4_8,java \\ch4>java hello.nihao.Example4_8

代码调试中的问题和解决过程

  • 问题1:vim编辑器无行数显示、换行自动空格等功能,效率较低
  • 问题1解决方案:我百度了一下,参考如何设置vim自动对齐为vim添加部分功能,好用多了。
    代码如下

    cd /  //返回最上层目录//
    cd etc
    cd vim
    ls   //显示所有文件//
    sudo gedit vimrc   //使用gedit编辑文件(只输入gedit权限不够)//

技术分享图片

打开之后,我们在文件最下面进行修改,将相应的指令添加到文件末尾;

【显示行号】--->【set number】;

【检测文件的类型】--->【filetype on】;

【自动对齐】--->【set autoindent】

【智能选择对齐方式】--->【set smartindent】

【设置Tab键为4个空格】--->【set tabstop=4】

【设置当行之间交错时使用4个空格】--->【set shiftwidth=4】

【设置匹配模式】--->【set showmatch】;

设置完后,点击save按钮,进行保存。重启ubuntu即可使用。

  • 问题2:4_3编译提示不兼容的类型

技术分享图片

  • 问题2解决方案:错将zhubajie.head中head输入为height,head被定义为String型变量,提醒了我一定要注意变量所定义的类型,不同类型间转换可能造成精度损失。
  • 问题3:4_5运行编译提示找不到符号

技术分享图片

  • 问题3解决方案:
    将Rect、Lader、Example4_5放在同一目录下,使用javac *.java编译目录下全部源文件,问题原因在于4_5的编译需要Rect、Lader产生的字节码文件,必须将Rect.class、Lader.class与4_5.java放在同一目录中。
  • 问题4:4_9编译显示方法声明无效:需要返回类型

技术分享图片

  • 问题4解决方案:SIM.java中错将类名写为class STM提醒了我在输入代码时注意相近字符,防止弄混。
  • 问题5:4_18编译显示找不到或无法加载主类

技术分享图片

  • 问题5解决方案:通过检查代码,发现包名hello误输入为hell,主类包名错误导致无法加载。
  • 问题6:使用git commit -m "注释"过程中提示error: insufficient permission for adding an object to repository database ./objects错误

技术分享图片

使用sudo chmod 777 -R .git/objects命令添加权限后commit可正常使用

技术分享图片

但在随后运行脚本statistics.sh时出现另外一个问题:无法显示最近的commit操作内容

技术分享图片

参考 三分钟教你学Git(二十四) error: insufficient permission
在git创建仓库目录20165202jhs下使用sudo chown -R current_user .git/objects修改权限为当前用户可写后,该目录下脚本运行正常。

技术分享图片

但根目录下仍显示权限问题,所以本问题有待继续求教老师同学。

代码托管

技术分享图片

上周考试错题总结

本周未进行考试

感悟

本周的教材代码量明显上升,week2的内容很多还是C语言的基础,而这周开始的教材内容多了很多新知识,需要更多的实践去理解学习。这周自己增加了vim的几个小功能,使编译工具更加方便顺手,还是很开心的。在代码问题6的求解过程中慢慢对git和linux的一些命令有了更多的认识。两周过后起码从最初上手的一头雾水,到现在可以去借助网络不断解决问题。最近的一些错误更加提醒我要注意编辑代码时的准确性,一些出在语法上的编译问题都是可以尽量避免的。同时,还是要尽量科学地分配敲代码的时间,把平时时间分配出来分块练习,不能等周末两天突击。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 24/24 1/4 15/15
第二周 423/423 2/6 14/29
第三周 702/1109 1/7 16/45






以上是关于20165202 第3周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

20165202 第2周学习总结

20165202 第4周学习总结

20165202 2017-2018-2 《Java程序设计》第1周学习总结

20165202 2017-2018-2 《Java程序设计》第6周学习总结

20165202 2017-2018-2 《程序设计与数据结构》第5周学习总结

2018-2019-1 20165202 《信息安全系统设计基础》第一周学习总结