2A课程笔记分享_StudyJams_2017
课程2A
概述
- 课程2A、2B的内容主要是关于创建交互式应用的基础知识。之前的L1课程主要是Android UI的基础设计知识,基本上没涉及到编程。 2A的讲解主要包括:使用变量来更新欲显示在屏幕上的内容,为按钮添加事件响应(联系XML属性与Java方法)逻辑等。
- 从2A开始,后续的课程会逐步深入地讲解使用Java开发基本Android程序需要掌握的语言知识、数据库知识、编程技巧以及面向对象编程思想等等,大家一起加油!
交互
- 为了在Java方法中与视图布局中的UI对象进行交互,最好在XML文件中定义该对象的id。这样,在Java代码中就可以直接通过访问这些UI对象,非常方便。
变量
- 顾名思义,变量(variables)的作用是存储可变的"量",方便程序员实现开发的目标。作为编程语言中一个十分基本的概念,变量在编程中不可或缺。 与字面值(literals)相比,变量具有灵活的特点,而且很多时候只有变量才能满足正确实现程序逻辑的需要。
- 变量 vs 字面值:当需要更改值的时候,所有相同的字面值都需更改;而对于变量来说,只需在变量赋值处更新该值。
- 执行创建变量的代码后,内存中会开辟出一段空间(视变量的类型而定),用以存储变量中的值,程序员可以在需要的时候更改该值,用以实现正确的程序逻辑。
- 变量的声明与定义。对于强类型的编程语言,声明变量的基本语法为:类型 变量名;声明的同时还可以初始化变量,这两个操作合起来即为变量的定义:
int numberOfCoffees = 2;
注意运算符"="的左右都有空格的细节,这涉及到代码风格的问题。一个良好的代码风格应该具有合适的缩进、运算符左右的空格、适时的换行等,这样可以使得代码更加清晰,可读性更强。在平时编程中,应该注意养成良好的代码风格。清晰的代码对于减少BUGs,降低调试难度也有一定帮助。
练习
选择视图:
1. 列出自己打算使用的所有视图;
2. 确定视图位置(比较关键的是确定使用哪种视图组作为根视图);
3. 设置视图样式(textSize,FontFamily等属性);为按钮添加事件响应函数:对于单击事件,在XML的某个按钮标签中引入属性onClick,属性取值为Java代码中对应的方法的名字。这样,就可以把单击事件处理函数与该按钮绑定,实现交互。
使用伪代码,使自己的思路可以更加清晰。 不至于迷失在代码实现的繁琐细节之中。
调试练习:
1. DEBUG:指消除程序中的BUG的调试过程。
2. Compile Time Error:编译时错误,包括常见的语法错误(代码不符合语言的语法规定,比如未匹配的括号、一条语句的最后缺少分号等等)、语义错误(比如操作符与操作数类型不匹配)等;还包括找不到所引用的文件(C++中的.h文件、lib静态库、dll动态库,Java中的Jar包)的错误。
3. Runtime Time Error:运行时错误,包括由逻辑错误、数组访问越界、空指针等在运行时引起的错误。此类错误一般比编译时错误更难解决,特别是逻辑错误。所以,在写具有较复杂逻辑的代码前,程序员自身必须把整个程序执行的流程想清楚。否则,调试代码的时间会远远超过想清楚之前直接写代码"节省"下的时间。
4. System Log: 系统日志,Android开发中常用logcat这个工具来分层次、分类型地显示不同等级的日志,方便程序员查找感兴趣的信息(错误信息或者更琐碎、更底层的信息)。
5. Stacktrace: 调用栈的追踪,非常有用的一个特性,能够显示函数的调用关系(按照栈的数据结构,最后调用的函数显示在栈顶,即最上方)。 Stacktrace常常用来分析异常链,查找错误的源头,能够直接定位到代码中引起错误的行。全局变量 or 局部变量?:
1. global variable:全局变量,在整个源文件中都有效。
2. local variable:局部变量,在定义该变量的上下文范围内有效;在该范围之外,该变量的生命周期结束,不能够再被引用。
3. variable scope:变量作用域,分为全局的与局部的,具体解释如上。注意:在Android Studio中,默认编辑器设置下,全局变量名会加粗显示,便于程序员区分。了解这一点之,可以减少了使用同名局部变量覆盖(override,hide)全局变量而引入BUG的可能。
2A课程笔记分享_StudyJams_2017的更多相关文章
- 1C课程笔记分享_StudyJams_2017
课程1C 概述 课程1C是创建一个生日贺卡应用的实践课程,所以本篇笔记分享主要记录个人的实践过程,此外分享一些比较零散的知识点. Drawable文件夹 Drawable文件夹是Android项目统一 ...
- 1A课程笔记分享_StudyJams_2017
1A课程 概述 课程1A主要讲解了Android UI的三种基本控件:TextView.ImageView以及Button.笔记的主体内容主要根据课程内容的讲解顺序来组织,此外我对一些个人比较感兴趣的 ...
- 2C课程笔记分享_StudyJams_2017
课程2C-实践:创建交互式应用 概述 课程2C的内容主要是练习巩固2A.2B中讲解的内容,并设计实现一款篮球比赛的计分板应用及其界面的美化. Warm-Up:准备活动 新建项目PracticeSet2 ...
- 2B课程笔记分享_StudyJams_2017
课程2B-创建交互式应用(下) 概述 课程2B的内容主要包括:使用变量来更新欲显示在屏幕上的内容,为按钮添加事件响应(联系XML属性与Java方法)逻辑等. 后续的课程会逐步深入地讲解使用Java开发 ...
- 1B课程笔记分享_StudyJams_2017
课程1B 概述 课程1B主要讲解了Android UI的ViewGroups(视图组).LinearLayout(线性布局).RelativeLayout(相对布局),Portrait Mode(竖屏 ...
- 3A课程笔记分享_StudyJams_2017
课程3A-面向对象编程(上) 概述 面向对象的思想在当今的软件开发中占据着主导地位. Java是一门完全面向对象的语言,是一种天然的分布式互联网软件的开发语言,在当今企业级应用中占据绝对领先地位,也是 ...
- 3B课程笔记分享_StudyJams_2017
昨晚才发现 Study Jams China的官方论坛也支持MarkDown,所以直接发在了那上面.http://www.studyjamscn.com/thread-21807-1-1.html
- L4课程_Firebase_笔记分享_StudyJams_2017
最近才发现Study Jams China的官方论坛也支持MarkDown,所以就直接把笔记发在了那儿. http://www.studyjamscn.com/thread-21855-1-1.htm ...
- 深度学习课程笔记(四)Gradient Descent 梯度下降算法
深度学习课程笔记(四)Gradient Descent 梯度下降算法 2017.10.06 材料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS1 ...
随机推荐
- Linux - VMware和Centos安装
目录 Linux - VMware和Centos安装 选择性 下载centos系统ISO镜像 安装虚拟机VMware虚拟机 1. 准备vmware软件 2. 解压软件包, 当前选择vm12 3. vm ...
- C库的制作
1.库的概念:库是一种可执行的二进制形式: 2.分类: 1>静态库 ①.在程序编译时会被连接到目标代码中: ②.程序运行时不再需要该静态库: ③.体积较大: 2>动态库/共享库 ①.在程序 ...
- OpenStack命令行工具与API
Openstack命令行工具 我们推荐Openstack命令行工具和Openstack的Dashboard两者结合使用.一些用户由于使用过其他云技术背景的,可能会使用EC2兼容的API,相对于我们需要 ...
- Ajax 请求之_请求类型详解
$.ajax({ url: "规定发送请求的 URL.默认是当前页面.", type: "post", // 请求类型,默认get // 在回调函数中,无需将j ...
- noip模拟赛 站军姿
分析:纯数学题.相离和包含关系的可以很容易算出来答案,相交的话要先求出两个圆的面积,然后减掉中间重叠的部分,这一部分并不能直接求出来,但是可以求出两个扇形的面积,和它们围成的一个四边形的面积,加加减减 ...
- hdu 3572 最大流判断满流
#include<stdio.h> #include<string.h> #include<queue> using namespace std; #define ...
- Servlet3.0中使用getPart进行文件上传
这个先进些,简单些,但书上提供的例子不能使用,到处弄了弄才行. servlet代码: package cc.openhome; import java.io.InputStream; import j ...
- 2015 Changchun Regional
弱没机会去长春,但拿了题来做了,加上请教各路大牛,理论AC了一发,但没实现~(感谢各路有形无形的大牛的指导) A题~Too Rich 给你1,5,10,20,50,100,200,500,1000,2 ...
- spring+springmvc+hibernate架构、maven分模块开发样例小项目案例
maven分模块开发样例小项目案例 spring+springmvc+hibernate架构 以用户管理做測试,分dao,sevices,web层,分模块开发測试!因时间关系.仅仅測查询成功.其它的准 ...
- 使用poi读取word2007(.docx)中的复杂表格
使用poi读取word2007(.docx)中的复杂表格 最近工作需要做一个读取word(.docx)中的表格,并以html形式输出.经过上网查询,使用了poi. 对于2007及之后的word文档,需 ...