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
    ihaoExample4_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
原文地址:https://www.cnblogs.com/jhs888/p/8594903.html