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 ...
随机推荐
- 使用scrapy爬取的数据保存到CSV文件中,不使用命令
pipelines.py文件中 import codecs import csv # 保存到CSV文件中 class CsvPipeline(object): def __init__(self): ...
- Linux下源码安装Peach-2.3.8教程
在peach文件夹下运行 python peach.py ./samples/HelloWorld.xml 提示先安装4Suite-XML. 根据提示在dependences文件夹下安装,出现两次错误 ...
- Thesis Viva checklist
This list gives you suggestions helpful in preparing to defend your thesis: I know my thesis thoroug ...
- Maven学习总结(27)——Maven自定义打包插件maven-assembly-plugin详解
Assembly插件会生成 "assemblies", 此特性等同于的Maven 1 distribution plug-in..该插件不仅支持创建二进制归档文件,也支持创建源码归 ...
- hdu 4971 多校10最大权闭合图
/* 很明显的最大权闭合图题 */ #include<stdio.h> #include<string.h> #include<queue> using names ...
- Bitnami LNMP集成包安装简单总结
前言发送图文消息时间点,访问量大,请求并发多,业务web机处理不过来,新增加了2台web机应对.搞过Linux软件安装的都知道,各种库的依赖会把人搞崩溃,尤其是服务器不能访问外网的情况下,会非常的蛋疼 ...
- rac_grid自检无法正常进行报PRVF-4007
原创作品,出自 "深蓝的blog" 博客.欢迎转载,转载时请务必注明下面出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...
- 2015 年度新增开源软件排名TOP100
本榜单包括 2015 年开源中国新收录的 5977 款开源软件中,依据软件本身的关注度.活跃程度进行排名前 100 名的软件.从这份榜单中也许能够了解到最新业界的趋势. 1.SwitchyOmega ...
- T4语法
阅读目录 阅读目录 1.什么是T4? 2.vs插件的安装 3.T4初体验 4.T4语法 其实对于“T4模板”的学习,讲得最详细的还是MSDN,下面给出对应的链接,可以点开深入的了解. 回到顶部 1 ...
- USACO money packageDP
裸0/1背包,就是从各种币种里面拿来凑足N元,求最多有多种方案.用dp[i][j]表示选前i个币种凑成j的方案数量 状态转移方程: dp[i][j] = dp[i- 1][j] j < c ...