20155225 2006-2007-2 《Java程序设计》第3周学习总结
教材学习内容总结
- 封装对象内部数据:使用private关键字定义类的私有成员
如果不使用private定义的话,用户撰写程序时,就可以自由存取类私有数据,如下:
使用private定义后,直接存取时会编译失败,如下:
- 使用方法重载时,注意自动装箱、拆箱问题。
编译程序在处理重载方法时,会先处理还没有装箱动作前可符合自变量个数与类型的方法。
直接传入参数1,就是上述情况。
其次才会处理装箱动作之后可符合自变量个数与类型的方法。明确指出参数s.someMethod(new Integer(1));
教材学习中的问题和解决过程
- 问题1:不知道P109为什么命令行自变量提供的整数是存入String类型数组的,不知道String数组是什么类型。
- 解决方案:参考了Java数组String []的用法详解。
-
问题2:测试类是什么意思
-
解决方案:查了百度,就是用来测试的类,实用还要进一步学习。
-
问题3:P87建立Scanner对象后为什么取得上一个字符用next,而不是取得下一个字符用next
-
问题4:p93在进行i1,i2比较运算的时候为什么没有自动拆箱
-
比较运算符不会自动拆箱
代码调试中的问题和解决过程
- 问题1:不知道P108示范代码中number=Long.parseLong(scanner.nextLine());什么意思
- 解决方案:参考了java.lang.Long.parseLong(String s, int radix)方法实例scanner对象取得了用户输入的整行文字,再由方法Long.parselong解析字符串为有符号long。那为什么不直接用nextLong()方法呢?尝试了一下发现是可以的。但还存在一个疑问,并没有新建Long实例,怎么用的parselong()方法呢?
代码托管
上周考试错题总结
-
错题1:Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)
-
理解情况:find 命令的路径是作为第一个参数的, 基本命令格式为 find [path] [option] [action]。-atime,最后访问时间;-ctime,创建时间;-mtime最后修改时间。-mtime n:n表示为在n天之前的“一天之内”修改过的文件。
-mtime +n:列出在n天之前(不包含n天本身)被修改过的文件。-mtime -n:列出在n天之内(包含n天本身)被修改过的文件。newer file:file为一个已存在文件,列出比file还要新的文件名。home目录中,当天有改动的文件:find ~ -mtime 0。列出home目录下比Code文件夹新的文件:find ~ -newer /home/shiyanlou/Code -
错题2:~0b1011的十进制值是(-12)
-
理解情况:java里都是有符号数且都是以字节(8位)为单位存的,负数都是以二进制补码存的。
-
错题3:编译p60 Comparison.java的命令为(javac –d xxx Comparison.java )
-
错题4:运行p69 Odd.class的命令为(java cc.openhome.Odd)。
-
理解情况:对于javac命令,sourcepath参数指定寻找原始码文档。cp参数指定寻找使用到的其它类链接库,-d参数指定编译完成的位码文档存放位置,文件名包含从当前工作路径到.java文件的所有路径。对于java命令,只有-cp参数指定要执行的.class文件的存放位置,类名必须指定完全吻合名称。
其他
感悟:这次回过头去复习了第二章,感觉之前完全看不懂的内容,现在居然能理解了。特别是现在越来越熟悉在命令行里的操作(javac,java)完全没有用IDEA了。回过头去也能理解package和import了。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 10/10 | 1/7 | 20/20 | |
第二周 | 120/130 | 1/8 | 8/28 | |
第三周 | 543/673 | 1/9 | 25/53 |
-
计划学习时间:7小时
-
实际学习时间:25小时
-
改进情况:虽然时间还是大大超出预期,但感觉这周学习质量提高了