20165202 第3周学习总结
20165202 2017-2018-2 《程序设计与数据结构》第3周学习总结#
教材学习内容总结
Ch4
-
面向机器语言、面向过程语言、面向对象语言
-
类:“驼峰习惯”、类体的定义、成员变量、方法
-
构造方法与对象的创建:构造方法没有类型、使用对象
-
类与程序基本结构
-
参数传值:引用类型传值中传递的是变量中存放的“引用”、可变参数
-
对象的组合:复用方法
-
实例成员与类成员:实例变量与类变量、实例方法与类方法的区别 是否有“static”修饰
-
方法重载:一个类中可以有多个方法具有相同的名字,但参数必须不同
-
this关键字:在构造方法、实例方法中的使用
-
包:有包名的类的存储目录、运行有包名的主类
-
import语句:引用库中的类、自定义包中的类
-
访问权限:对象是否可以通过“.”运算符操作变量或调用类中方法
-
基本类型的类封装
-
对象数组:数组的元素是对象
-
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
错误 -
问题6解决方案:参考git pull 报错
使用
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 |
第三周 | 792/1215 | 1/7 | 16/45 |