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
错误
- 问题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 |
第三周 | 702/1109 | 1/7 | 16/45 |