《移动平台开发与实践》第二周学习总结
20169214 2016-2017-2 《移动平台开发与实践》第二周学习总结
教材学习内容总结
第四章要点:
- 要点1:类的三要素:类名、字段、方法。类名的首字母要大写;字段和方法名遵循骆驼命名法,即每个单词的首字母大写,除了第一个单词之外。例如:receiveSalary(),work()
- 要点2:一个公有类的定义必须保存在一个文件中,且文件名与类名相同,且必须以.java为扩展名。并且,一个源文件只能包括一个public类,但可以包含多个非公有类。
- 要点3:应用程序的入口点——main方法;
允许有可变长度的参数列表——vararg(当参数列表包含固定和可变参数时,可变放后边);
使其值不可以修改的关键字——final;
创建对象最常用的方法——new;
使用其他包或该包的类,需要关键字——import,import语句必须放在package语句之后、类声明之前;在一个类种,import语句可以出现多次;
定义静态成员关键字——static,静态成员不用先实例化就可以被调用。另外,只能在一个类级别中声明一个静态变量,即便方法是静态的,也不能声明局部静态变量。 - 要点4:让多个函数具有相同的名字,在java中是合法的。——方法重载
- 要点5:JVM包括加载、连接、初始化,这些过程均为递归地进行,即先处理父类,才能处理子类。
第七章要点:
- 继承是的代码具有可扩展性,在Java中,所有类都默认的继承了java.lang.Object类。扩展一个类的关键字——extends,在Java中,一个类只能够扩展一个类,与C++中允许多继承不同。但是,在Java中使用接口也能实现多继承的效果。
第十章要点:
- 类、接口、抽象类之间的关系:接口并不只是一个没有实现的类,而是服务提供者及客户之间的一个协议;抽象类是一个不能实例化的类,在某些情况下,它扮演了接口的角色,但又可以提供某些方法的实现。
第十一章要点:
- 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
- 面向对象有三大几属性,可以说,封装和继承都是为多态做准备。
代码调试中的问题和解决过程
- 问题1:从一个静态方法中调用非静态成员
编译运行时会出现以下错误:
原因:main的静态方法中无法访问非静态的字段。 - 解决方法:有两种:一是让b成为静态的,修改如下:
二是创建该类的一个实例,然后使用对象引用对b进行访问。
再次运行后,显示正确结果,如下:
- 问题2:变量作用域
编译运行后会出现以下错误提示:
原因:变量y定义于内层for循序语句中,所以y只能够在内层for语句块中使用。而在其他地方,y都是无法访问或不可见的。当JVM执行内层for语句时,同时创建x,内层for语句执行完后,x便被销毁,之后x便超出了其作用域。 - 解决方法
正确使用变量作用域:
运行结果正确显示:
说明:该代码段说明两点:一、内层的for语句块可以访问外层定义的x。x的正确输出可以证明这一点;二、for语句块可以访问循环语句块外部(之前)定义的变量。y+a的正确输出可以证明这一点。 - 问题3:隐式地调用父类中不存在的构造方法
这将会导致一个编译错误。因为编译器添加了对Parent中的无参构造方法的一个隐式调用,而Parent类只有一个构造方法,它接受一个Srting参数。
- 解决方法:通过从Child类的构造方法中显示地调用父类的构造方法,如下:
- 问题4:当程序编译出现问题时,错误提示会显示混乱,如下:
代码托管
- 项目链接:
http://git.oschina.net/md2017/yj20169214 - 代码提交过程截图:
运行git log --pretty=format:"%h - %an, %cd : %s":
- 代码量截图:
运行find src -name “*.java” | xargs cat | grep -v ^$ | wc -l:
(因项目提交出现了问题,代码量没能正常显示。尝试了linux、Windows两种环境下写Java代码,并且Windows环境中尝试了git下编辑器直接写和记事本转.java两种方式,但目前均未正确显示代码量。在Linux下重新添加little.sh脚本并运行,代码量及代码提交信息得以全部显示出来,如下:)
上周考试错题整理
- javac,java命令找不到,是由于PATH环境变量设置错误
- git init——git库初始化,在某文件夹下执行就是执行该文件夹
git push——将本地分支更新,并推送至远程主机
git log——查看提交历史 - Java中没有“0为假,1为真”的说法,只有TRUE和FALSE
- Java中一个字符占两个字节
- Java中没有goto,可在外层循环设置一个标签break,实现跳转
学习进度条
- 教材学习:教材4/7/10/11,共4章
- 博客量(新增/累积):1/2
- 重要成长:了解了java的对象、类,以及继承、多态等面向对象特点
参考资料
《Java和Android开发学习指南(第二版)(Java forAndroid.2nd)》第4、7、10,11章
《Java程序设计和Android开发》课程
使用码云和博客园学习简易教程