20165226 2017-2018-3 《Java程序设计》第3周学习总结
教材学习内容总结
主要学习了第四章 类与对象
- 类
- 包括两部分:类声明和类体
class 类名 {
类体内容
}
- 成员变量、局部变量
局部变量只在方法内有效。如果局部变量的名字与成员变量的名字相同,那么成员变量被隐藏,即该成员变量在这个方法内暂时失效
- import语句
一个类想要使用的类和它不在一个包里时可以用import语句使用这样的类import java.util.*;
- JRE扩展与jar文件
需要编写一个压缩的文件
Manifest-Version: 1.0
Class: moon.star.TestOne moon.star.TestTwo
Created-By: 1.8
使用jar命令生成一个jar文件需要进入报名的上一层目录
教材学习中的问题和解决过程
- 问题一:不懂如何理解
执行到这的时候:Student s=new Student;类的成员变量都还没定义呢,怎么创建一个对象啊。还是说这个时候程序执行的顺序不是按照书写的顺序执行?
- 问题一解决方案:首先Student s=new Student();
这个Student()是一个类的构造函数,如果没有事先申明的话,那么当加载Student类的时候会自动生成,写的这个类,属性方法都没有初始化好,然后就来实例化该类,这样是会错误的,这个时候还不能调用Student() - 问题二:子类重新定义与父类完全相同的方法这种情况是什么情况?
- 问题二解决方案:这种情况称为覆盖,此时,子类中已找不到父类原来的方法,它的内存位置已经被替代。
- 问题三:什么是抽象类。
- 问题三解决方案:在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
- 问题四:抽象类一般什么时候用到,抽象类有什么好处?
- 问题四解决方案:当有抽象方法时必须用到,抽象类可以包含方法的实现细节,因此可以将子类中公用的逻辑上提,增加的代码的复用。用抽象类及接口最重要的用处还是在于,使代码实现很方便的扩展,最简单的就是在new对象时,将生成对象定义为接口,在以后需要替换时就很方便。
代码调试中的问题和解决过程
-
问题一:在用包语句时,分别
javac 文件名
无法通过编译
-
问题一解决方案:将源文件保存到包目录,然后进入到包内的目录,输入
javac *.java
便迎刃而解了,在回到tomjiafei的上一层目录中运行,结果运行正常
-
问题二:在进行jar文件打包时,无法复制到jrelibext文件夹中,提示
权限不够
-
问题二解决方案:提高用户的权限,使用以下代码
sudo chmod 777 xxxx/xxx/xxx/xxx
- 问题三:已将Jerry.jar文件复制到Java运行环境中,但在Use类中使用import语句引入了Jerry.jar中的TestOne和TestTwo类,编译仍出现了问题
代码托管
上周考试错题总结
- 错题
主要是在循环体中要区别--i
和i--
,并且要在i-1赋值给i后将此时的值作为i的值进行下一项计算。
结对及互评
-
博客中值得学习的或问题:
- 要素全面
- 排版简洁明了
-
代码中值得学习的或问题:
- 认真
其他
Java的学习是一个循序渐进的过程,再不断地获取新知识中也在不断地打开新视野。虽然这章的代码有些多且长,但在敲代码的过程中,在不断地编译、修改再编译的调试中收获了一份更加平和的学习心态。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第三周 | 866/500 | 1/4 | 18/38 |