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 ...
随机推荐
- mybatis源码阅读-初始化过程(七)
说明 mybatis初始化过程 就是解析xml到封装成Configuration对象 供后续使用 SqlSessionFactoryBuilder 代码例子 SqlSessionFactoryBuil ...
- PatentTips - Substitute virtualized-memory page tables
BACKGROUND Many computer systems utilize virtualized memory for security, stability and/or other pur ...
- SecureCRT的设置和美化
一 . SecureCRT 7.1 的 安装 http://liufei888.blog.51cto.com/2625545/1306231 1.下载注册机SecureCRT.v.6.7. ...
- 64位CentOS6.5下Eclipse用Java连接mysql
1.到官网上下载jdbc驱动,我下载的是mysql-connector-java-5.0.8.tar.gz 2.解压下载到的文件 tar -zxvf mysql-connector-java-5.0. ...
- hdu_1232_畅通工程_201403091018
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- href=#与 href=javascript:void(0) 的区别
<a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="javascript:void(0)" ...
- vs2010+cuda5.0+qt4.8
在进行CUDA处理的时候,总是在控制台程序下,于是就想要通过qt进行界面处理. 一开始先测试一下qt的环境,新建一个qt项目,不过在运行的时候提示平台不对,换成64位 出现 这个是qt的版本问题,在右 ...
- POJ 3311
设dp状态为dp[i][j]为当前访问过的结点状态为i且当前停留点为j时的最短路径.用二进制存存储访问过的状态,访问过为1,否则为0. #include <iostream> #inclu ...
- HBase编程实例
摘要:在前文中安装了Hbase,通过Hbase shell能够进行一些操作.可是和实际的编程实例联系起来不方便,因此本文介绍有关Hbase编程的实例. 一.使用Eclipse开发HBase应用程序 1 ...
- 逆波兰法求解数学表达示(C++)
主要是栈的应用,里面有两个函数deleteSpace(),stringToDouble()在我还有一篇博客其中:对string的一些扩展函数. 本程序仅仅是主要的功能实现,没有差错控制. #inclu ...