本周事情比较多,大家的时间总是不太好凑,所以到了周五才开了2A的课,不过也由于开课较晚的缘故大家有了更多时间进行预习,本课信息量颇大,涉及到一些真正与java代码相关的内容,有了前面的预习感觉对大家在课上的理解更有帮助。

类&方法

在布局内容结束之后,终于开始介绍按钮以及让点击按钮触发一些事件的方法,本视频介绍的是利用button自带的“onclik”属性

android:onClick="theButtonIsCliked"

其中“theButtonIsCliked”就是对应的方法名称(当然视频中用的并不是这个名字),而这个方法需要我们在对应的java文件中进行创建,这个文件在哪呢,其实在xml文件中也已经告诉了我们,看当前布局xml文件的根视图(root view)的属性中有一条这样的内容

tools:context="com.example.justjavacal.MainActivity"

后面那串“com.example.justjavacal.MainActivity”就是对应的文件了,至于他的位置可以在左侧导航栏中找到

马老师TIPS时间:
视频中context后面只有“.MainActivity”前面省略了包名“com.example.justjavacal”,这种写法和完整的写法都是可以的,这一行内容代表当前XML所对应的java文件是哪一个,但在实际使用过程中有时候没有这一行也不影响使用,原因下面还会讲到

找到对应的java文件打开后看到的就是货真价实的程序代码了,大多数人应该都会像视频中所说的那样一头雾水吧😂

package com.example.justjavacal;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

虽然视频里告诉我们不用慌,并且也确实没有在解释这些代码具体是什么意思上着墨太多,不过我们马老师还是在此处大概介绍了一下类和方法的

马老师TIPS时间:
java
public class MainActivity extends AppCompatActivity

大致可以翻译为
"套用(继承)‘AppCompatActivity的基础属性然后新建一个叫‘MainActivity’的类"
花括号内的 "@Override" 表示接下来的这个方法原本的“AppComatActivity”中就具备了这样一个方法,而我们所创建的这个类需要做一些不一样的操作,所以需要重写这个方法,写 "@Override" 就是通知编译器这个方法要调用我们写的新方法而不是去用原本自带的同名方法
在类里面那些都是方法,声明方法的那句话理解起来跟创建类的十分相似,这里用视频中的“display”方法举例比较好理解
java
private void display(int number)

大致就是说“创建一个叫做“display”的方法,然后在调用这个方法的时候应该带一个参数过来,这个参数应该是int整数类型的(integer缩写),然后给这个参数起了一个方法内部使用的名字叫number,这样就方便在方法中使用这个从外部带进来的参数(类似下面会说到的本地变量),另外void表示这个方法不会返回任何特定的内容(同理可知另外还有有返回内容的方法不过暂时没提到)
还有public和private这些东西叫做访问修饰符,意思是当前这个类/方法允许被访问的权限开放等级
* public——允许所有其他类访问并调用
* private——仅支持当前类内访问调用
* protected——仅允许同一包内的类访问并调用
* default——允许同一包内类以及其子类访问调用

变量

当某个数值有变化的需求时,应当将这个值定义成变量,这样使用起来更方便(尤其是在引用较多又频繁需要变化时),视频中用了比喻的手法十分形象地表现了定义变量以及给变量赋值的过程。
变量本身并没有太多难以理解的地方,主要要注意以下一些东西:

  • 声明变量时必须声明其类型,但初始值可以不设置而用默认值
  • 在类中声明的变量才能被类中所有的方法共用——也就是通常所说的全局变量(相对当前的类而言)
  • 方法中声明的变量叫做本地变量,只有在当前方法中可以使用,无法被其他方法调用
  • 本地变量可以与全局变量同名,如果同名,在方法体内调用该变量时会默认使用本地变量(本地变量与全局变量在IDE中会显示不同的颜色便于区分)
  • 没有声明过的变量是不能使用的,IDE会报错
  • 声明以后没有使用的变量在IDE中也会有提示,如果确定没用可以删掉也无妨

Debug

写程序过程中各种BUG一定将会如影随形,伴随整个生涯,而遇到各种BUG以后找到问题所在并通过思考解决则是程序员基础生存技能
视频讲述了如何通过打断点的方式来定位程序的运行情况并定位出错节点

  • 在需要设置断点的代码前点一下,看到红色小圆点出现就说明已经成功了
  • 运行的时候不要直接按小三角“run”键,而要点右边那个像一直小虫子的按键
  • Debug模式运行以后会根据代码的运行顺序在断点处停止运行,然后在下方log窗口可以查看当前的信息,并可以点击下一步逐渐查看不同断点的信息,用来了解运行的顺序及实时状态

其他

注释

视频中说明的是多行注释的方法格式如下:

/**
前面加一个'/**'
中间就可以这里可以写注释
而且可以自由换行
最后一行来一个'*/'
*/

另外马老师也给我们介绍了常用的单行注释的格式

// 这样前面放两个“/”号就可以在后面写注释啦,通常这种注释会写在需要注释的代码上一行,也有跟在需要注释的代码后的

写好注释是非常重要的一件事,可以方便别人以及自己日后查看代码时可以更快理解代码的意图

伪代码

伪代码是相对于真正的代码而言的,是指并没有使用计算机语言,但是完全按照写代码的逻辑去描述代码需要处理的步骤和过程。
在写代码之前先通过伪代码来整理思路,可以更好地理清逻辑之间的相互关系,这样在后期编码时可以更快更有效率

Comments
Write a Comment

Tags

生活   碎碎念   思考   电影   Android   工作   ubuntu   记录   牢骚   游戏   StudyJam   产品   感慨   α-d0βe   代理   知乎   目标   手机阅读   产品设计   外卖   设计   学习   回忆   翻译   漫画   读书   吐槽   腾讯   kindle   小妇人   抱怨   分析   做事   输入法   游戏制作   诺基亚   阅读   零号线   iPhone   MAC   教育   GameMaker   兔年   模拟器   英语学习   流水   swift   刷机   旋转屏幕   SIM卡   随笔   背单词   小男人   需求   生命   平板   gnome   ipad   扯淡   fcitx   爱情   孩子   电子阅读   dezire z   老游戏   SSH   编程   GameMaker Studio 2   乔的男孩们   降级   光棍节   愤怒的小鸟   翻页效果   BUT   淘宝   touch   手机   apple   总结   正义   gtd   博客   皮克斯   公开课   反思   gSTM   2011   2010   播放器   WEB   服务   浮躁   暖暖内含光   修理   家庭   九把刀   imei   游泳   奥尔科特   宜家   storyboard   GMS手札   移动阅读   态度   dbus   平凡之路   协作   object-c   拓词   露易莎梅奥尔科特   操作   泄露   但是   无线网卡   白箱   蔡康永   快压   盗梦空间   mindmap   朴树   饥饿游戏   断网   iOS5   switchy   韩寒   成功   水位开关   知识整理   计划   文档   体验   物流   点子   360   myentunnel   动画   后会无期   xoom   触摸板   动漫   懒   将爱情进行到底   安达充   HTC   命运   校准   年度总结   随感   东野圭吾   惰性   HD6770   自私   周国平   tomboy   娱乐   plink   扇贝   洗衣机   情怀   触摸屏   麦当劳   patreon   人人   小米   evernote   chrome   职场   信息安全   营销   进度显示   爱发电   安全   公平   闲扯   twitter   锤子   DND   手机上网   Oculus   mars   流量   责任   N9   godaddy   tx2000   s-off   Lion   Nintendo Switch   心智图   电子辞典   用户资料   软团   自省   blogilo   魔法空间   垂直服务   生日   root   ubuntuone   电子书   塞尔达   笔记   老罗   肯德基   rhythmbox   win7   UCD   互联网   虚拟实境   废话   拖延   多看   显卡驱动   装13   用户   跨平台   angry bird   局域网   桌游   wireless   串号   联通   锤子科技   评论   失控   妥协   产品经理   百阅   众筹   wine