20155203 2016-2017-3 《Java程序设计》第三周学习总结
教材知识要点总结
第四章
- 文档主文档名必须与公开类名称相同。一个原始码中可以定义多个类,但是只能有一个公开类。但编译以后产生的*.class的文件个数和类的个数是相同的。
- 使用java.util.Scanner时,可以使用next***()扫描下一个字符串。同时也可以使用next()直接获取下一个字符串。
- java语言中Java SE提供的标准类使一些在c语言中不方便的情况有了更快的解决。直接通过一个类来避免再编写一个或重复编写多个含义相同的函数。
- ‘=’是用子啊制定参考名称参考某个对象,‘==’使用在比较两个参考名称是否参考同一个对象,实际上就是并不对对象本身进行比较,当然这个特点的前提是必须要有对象,而不是简单的定义赋值。同时,以“”包括的字符串只要内容相同,就只建立一个实例。使用equals()可以比较两对象内涵值。
- 打包的目的是为了实现将基本变量转化为对象,使用面向对象的操作方法,方便操作。但输出是以变量原本的形式输出,可以在运算时进行自动拆箱。
- 用new关键词来新建对象时,应注意到的是,新建的只是标签并未绑定任何对象之前不算建立了对象。
- 字符串在java中是对象。若已存在字符型数组,则可以用new关键字将其创建为String实例。
scanner的基本方法 | 表示含义 |
---|---|
read() | 以int类型返回读入的字符 |
nextInt() | 将标准输入中的下一个字符串剖析为int型 |
next() | 直接取得上一个字符串 |
nextLine() | 取得用户输入的整行文字 |
BigDecimal的基本方法 | 表示含义 |
---|---|
plus() | 加 |
substract() | 减 |
multiply() | 乘 |
divide() | 除 |
equals() | 比较两个对象是否相等 |
Integer的基本方法 | 表示含义 |
---|---|
compareTo() | 小于传入对象返回-1,否则返回1 |
intValue() | 把Integer类型转化为Int类型 |
valueOf() | 将参数给的值转化成方法前标识的类型 |
数组的基本方法 | 表示含义 |
---|---|
a[].length | 表示数组a的长度 |
Arrays.copyOf() | 复制传入数组 |
第五章
- 使用自定义封装类编译程序时:
javac -sourcepath <源文件地址> -cp <类的地址> -d <位码文档存放地址> 文件名
2.封装对象后,用户端将无法访问private声明下的对象,使用前一定要将类的声明改为public.
部分课后题:
教材学习中的问题和解决过程
- 问题1:教材P89的代码阐明了‘=’与‘==’的区别,但是应该如何区别对象和普通变量,或者说二者在定义中有什么样的区别?
- 解决方案:我们定义类的对象的时候,对象就会有那些属性和方法,哪些都是对人的抽象,通过对象我们可以访问属性和方法,但是我们无法看到对象的内部细节即封装性。而在定义普通变量时就不会有这么多的方法和属性
- 问题2:在java语言中定义一维数组在既不知道数组长度且对数组中具体有哪些元素也未知的情况下如何定义。例如 ,教材课后题中的斐波那契数列,需要用户输入长度再输出。
- 未解决
- 问题3:教材137页this()所代表的另一个构造函数为什么只能出现在构造函数的第一行?
-this()指的是 构造器, 构造器是没有返回值的
this 是指对当前对向的引用,是一个引用变量 注意区别
代码调试中的问题和解决过程
- 问题1:
错误:
改正:
- 问题2:(重复定义,Java语言中可以在使用时定义变量)
错误:
改正:
问题三:(已经在Some.java中声明过了为什么还会出现这样的错误提示)
未解决问题四:第五章课后操作题:迷宫
程序可以编译,可以运行,但是没有输出;
未解决
代码托管
-
代码提交过程截图:(由于我最后一次上传时反复上传不成功,为了防止覆盖,我就将几天的代码重新都放在一个文件夹里,删除了git文件夹,再用-f参数强推了代码,所以只有一次上传记录,但是每个文件夹我都标记了时间。)
-
-
代码量截图:
上周考试错题总结
- 填空:Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)
原因:忘记了具体的命令细节
- 0x10%9 的结果是( 7 )
- 0x10&9 的结果是(0)
原因:看错了题,x看成了*也是因为基础知识不扎实的原因
- ~0b1011的十进制值是(-12)
原因:不认真看书,按过去的理解做题。
其他(感悟、思考等,可选)
java语言在各方面的应用都更为灵活,定义变量可以在用的地方直接定义;对于对象的方法省去了许多重复步骤。
第五章的学习很多都用到了之前的打包管理的知识:当自定义一个类的时候,必须打包才能在下一个程序的编译中使用。同时让我明白了扎实的基础知识对于后面的学习真的至关重要。
在敲代码的过程中确实感觉到了使用命令提示符和记事本编译程序的不便之处,所以在下周的编程中一定要尽快学会在IDEA中的编程。
因为一直以来只使用C语言编程,所以总是会将思路先转化成C语言的描述方法。对Java语言的特点还有待进一步的熟悉和把握。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 2500行 | 30篇 | 400小时 | |
第一周 | 80/100 | 1/1 | 20/20 | |
第二周 | 180/250 | 2/2 | 30/38 | 可以用Java语言独立的编写一些具有基本结构的程序 |
第三周 | 504/500 | 3/3 | 22/60 | |
第四周 |
计划学习时间:38小时
实际学习时间:30小时